跨帐户同步无法正常工作

时间:2017-10-11 08:48:57

标签: amazon-web-services amazon-s3

我很难过。

我有帐户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个政策变体。我错过了什么?

2 个答案:

答案 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和用户自己的帐户的许可才能允许跨帐户访问。

因此,您可能缺少的是用户自己的帐户的许可。