S3存储桶策略,如何允许来自其他帐户的IAM组?

Dan*_*k82 9 policy amazon-s3 bucket amazon-web-services

我在一个AWS账户中有一个S3存储桶(比如说arn:aws:s3:::my-test-bucket),需要由另一个AWS账户中定义的IAM组访问(比方说arn:aws:iam::1111222333444:group/mygroup).以下访问策略拒绝保存,并告知该主体arn:aws:s3:::my-test-bucket无效的.

{
    "Statement": [
        {
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:List*",
                "s3:Get*"
            ],
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::1111222333444:group/mygroup"
            },
            "Resource": [
                "arn:aws:s3:::my-test-bucket",
                "arn:aws:s3:::my-test-bucket/*"
            ],
            "Sid": "allow-put-for-dedicated-group"
        }
    ],
}
Run Code Online (Sandbox Code Playgroud)

我已经通过用另一个帐户的一个用户替换该组来进行测试,这样可行:

{
    "Statement": [
        {
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:List*",
                "s3:Get*"
            ],
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::1111222333444:user/me"
            },
            "Resource": [
                "arn:aws:s3:::my-test-bucket",
                "arn:aws:s3:::my-test-bucket/*"
            ],
            "Sid": "allow-put-for-dedicated-user"
        }
    ],
}
Run Code Online (Sandbox Code Playgroud)

该小组存在,我不明白为什么它说这是一个无效的校长.实际上它不接受我的其他帐户的任何组.

有没有人对这种行为有解释(可能还有解决方案)?

提前谢谢,干杯

jar*_*mod 8

IAM组在S3存储桶策略中不是有效的主体.有关更多讨论,请参阅此AWS论坛帖子此SO帖子.

这是一个可能的想法:在帐户#1(具有S3存储桶的帐户)中创建IAM角色(例如"cross-account-s3").该角色应该具有允许适当的S3存储桶访问的策略,并且它应该具有信任关系,该关系表明帐户#2中的root用户具有sts:AssumeRole.然后在帐户#2中为相关IAM组提供一个策略,允许该组中的用户从帐户#1承担跨帐户-s3角色.我想这需要您相信第二个帐户中的IAM管理员不允许错误的用户承担跨帐户-s3角色.