【发布时间】:2017-09-06 21:24:29
【问题描述】:
我有 2 个 AWS 账户。账户 A 有 S3 存储桶“BUCKET”,我使用 Java api 将文件放入其中。我已将我的“BUCKET”策略配置为允许跨账户文件发布。
但是,当我尝试从帐户 A 打开此文件时,它显示 AccessDeniedAccess Denied with hostId 和 requestId。
这个文件是通过账户B使用java api发布的,这个文件和通过api发布的文件大小相同。我尝试更改文件大小,新大小显示在 AWS S3 控制台上。 这是我的存储桶政策:
{
"Version": "2008-10-17",
"Id": "Policy1357935677554",
"Statement": [
{
"Sid": "Stmt1357935647218",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNTB:user/accountb-user"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::bucket-name"
},
{
"Sid": "Stmt1357935676138",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNTB:user/accountb-user"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket-name/*"
},
{
"Sid": "Stmt1357935676138",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNTB:user/accountb-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket-name/*"
},
{
"Sid": "Stmt1357935647218",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNTA:user/accounta-user"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::bucket-name"
},
{
"Sid": "Stmt1357935676138",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNTA:user/accounta-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket-name/*"
},
{
"Sid": "Stmt1357935676138",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNTA:root"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
问题是当我尝试从帐户 A 下载/打开此文件时,我无法打开它。
【问题讨论】:
-
您解决了这个问题吗?我也遇到了这个问题。
-
是的,你需要使用's3Client.putObject(new PutObjectRequest(bucket, key, inputFile).withAccessControlList(acl))'
标签: amazon-web-services amazon-s3