我很难过。
我有帐户A的凭证:arn:aws:iam::<ACCOUNT>:user/<USER>
帐号B中有一个存储桶:arn:aws:s3:::bucket-name
帐户B中存储桶的策略设置为:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:*"
],
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::<ACCOUNT>:user/<USER>"},
"Resource": [
"arn:aws:s3:::bucket-name/*",
"arn:aws:s3:::bucket-name"
]
}
]
}
aws --profile <PROFILE> s3 ls s3://bucket-name
失败了:
An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied
我已尝试过1001个政策变体。我错过了什么?
答案 0 :(得分:0)
secured_area
在这里仔细检查您的aws --profile <PROFILE> s3 ls s3://bucket-name
,也许您使用的是错误的个人资料。
这是一篇很好的文章:Reference
答案 1 :(得分:0)
访问AWS控制台中的IAM选项卡 - 创建组 - 创建组时 - 使用以下信息创建策略:
{
"Statement":{
"Effect":"Allow",
"Action":"s3:Get*",
"Resource":"arn:aws:s3:::your-bucket name/*"
}
}
让您的IAM用户成为您创建的群组的成员 - 他们现在可以在单独的AWS账户中访问您的S3存储桶。
修改:在评论中指出我想添加解释为了使其正常工作,您需要获得Bucket Owner和用户自己的帐户的许可才能允许跨帐户访问。
因此,您可能缺少的是用户自己的帐户的许可。