【问题标题】:IAM Role policy for cross account access to S3 bucket in a specific AWS account跨账户访问特定 AWS 账户中的 S3 存储桶的 IAM 角色策略
【发布时间】:2021-04-25 10:44:03
【问题描述】:

仅当 AWS AccountB 中存在给定的 S3 存储桶时才允许从 AccountA 中的 IAM 角色访问(使用帐号)。

这是我在 AccountA 中的角色政策,目前拥有以下权限。如何将其更新为仅访问 AccountB 中的 S3 存储桶。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*",
                "s3:Put*"
            ],
            "Resource": [
                "arn:aws:s3:::kul-my-bucket/my-dir/*"
            ]
        },
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::kul-my-bucket"
            ]
        }
    ]
}

想知道是否可行,或者我应该尝试不同的方式吗?

通过在政策中提供条件,我的情况是否可能与此类似:

"Condition": {
                "StringLike": {
                    "aws:accountId": [
                        "111111111111"
                    ]
                }
            }

我需要这个,因为在 AccountB 中的 S3 存储桶上,它允许 root 访问 AccountA。因此,我想限制 AccountA 中的角色政策。

【问题讨论】:

  • 通过跨账户 IAM 角色执行此操作。账户 B 创建一个角色,可由账户 A 代入或由账户 A 中的 IAM 用户具体代入,该角色允许访问相关账户 B 存储桶。账户 A 中的管理员修改账户 A IAM 用户的权限以允许 IAM 用户代入账户 B 中的特定 IAM 角色。
  • 感谢您的建议@jarmod。这将需要在 Account B 中添加一个额外的角色,是否可以通过 Account A 中的角色策略来避免它?
  • 如果您修改目标账户 A 角色的信任关系以包含账户 B IAM 用户的 ARN,那么您应该不需要账户 B 中的额外角色。
  • 谢谢,我现在不完全按照它。所以,如果我对尝试有任何疑问,可能会伸出援手。

标签: amazon-web-services amazon-s3 amazon-iam


【解决方案1】:

我认为不可能根据 AWS 帐号授予/拒绝对 Amazon S3 存储桶的访问权限。这是因为 Amazon S3 ARN 不包括账户 ID,而是使用唯一的存储桶名称。

您需要按名称专门授予允许访问每个存储桶的权限。

我之前见过这种情况,要求授予 S3 访问存储桶的权限仅在其他账户中,而不是拥有 IAM 用户自己的账户。如果不授予访问“相同帐户”S3 存储桶的权限,我们无法确定执行此操作的方法。

【讨论】:

猜你喜欢
  • 2020-06-24
  • 1970-01-01
  • 2019-04-23
  • 2021-04-19
  • 2023-03-17
  • 2021-12-07
  • 2016-03-17
  • 2021-06-28
  • 1970-01-01
相关资源
最近更新 更多