从另一个 AWS 账户使用 IAM 角色访问 S3 存储桶

问题描述 投票:0回答:1

场景: 我们的基础设施上有 3 个 AWS 账户。 仅在 1 个账户中创建了 IAM 用户。他们使用切换角色登录其他帐户。

现在创建 IAM 用户的账户中有一个 S3 存储桶,但当 IAM 用户使用切换角色登录其他账户时,他们看不到 S3 存储桶。

以下是 S3 存储桶策略内部: 正如您所看到的,我们已向其他帐户中存在的角色授予权限。

        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::975062884610:role/dev-switch-role",             
                    "arn:aws:iam::243225358771:role/prod-switch-role"
                   
                ]
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::logs-s3-bucket"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::975062884610:role/dev-switch-role",             
                    "arn:aws:iam::243225358771:role/prod-switch-role"
                   
                ]
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::logs-s3-bucket/*"
        }

并且在角色策略中,他们具有 AdministratorAccess 策略,但在切换到其他帐户后仍然无法查看存储桶。

amazon-web-services amazon-s3
1个回答
0
投票

假设您有:

  • 账户 A 中的用户或角色
  • 账户B中的A桶

授予对 Amazon S3 存储桶的跨账户访问权限时,您需要授予以下两项:

  • 针对账户 A 中的 IAM 用户/IAM 角色的 IAM 策略,用于访问账户 B 中的存储桶,AND
  • 账户 B 中存储桶上的存储桶策略允许账户 A 中的用户/角色进行访问——我认为您在问题中显示的策略可以很好地做到这一点

因此,我的猜测是,非功能角色尚未获得访问账户 B 中的 S3 存储桶的权限。

您可能想知道为什么需要BOTH 组权限。这是因为:

  • 默认情况下,Account-A 中的用户无法使用任何服务。他们必须被授予使用 S3 的权限——无论是专门用于账户 B 中的存储桶,还是 AWS 中的所有存储桶。
  • 其他账户中的 IAM 实体无法访问您自己的存储桶(例如,即使我拥有管理员权限,我也无法访问
  • your 账户中的存储桶)。存储桶策略是一种向其他账户中的 IAM 实体授予访问权限的方法。
© www.soinside.com 2019 - 2024. All rights reserved.