【问题标题】:AWS S3: Setting a bucket policy for multiple users in an accountAWS S3:为账户中的多个用户设置存储桶策略
【发布时间】:2017-11-20 23:20:33
【问题描述】:

我有一个 S3 存储桶。我在这个账户中有几个 IAM 用户。我想设置一个存储桶政策,让多个用户可以访问此存储桶。

对于单个用户的访问,我的存储桶策略如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::8474632:user/personA"
            },
            "Action": [
                "s3:getObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:getObjectAcl",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::thisbucket/*"
        }
    ]
}

我试图改变这一行:

"AWS": "arn:aws:iam::8474632:user/personA"

"AWS": "arn:aws:iam::8474632:user/*"

允许所有用户访问,但这不起作用。

我可以一一列出所有/部分用户:

  "Principal": {
    "AWS": ["arn:aws:iam::111122223333:user/PersonA",
            "arn:aws:iam::111122223333:user/PersonB"]
  },

是否有更好的方法允许一组用户或所有用户访问存储桶?

【问题讨论】:

  • 是否有理由需要存储桶策略而不是附加到 IAM 用户所属组的 IAM 策略?一个 IAM 政策将使它变得微不足道
  • 我想知道这个。我应该限制用户还是存储桶?我的想法是不对用户施加任何限制,而是精细控制对存储桶的访问。
  • 这真的取决于您的组织和您的要求。最佳实践是使用定义特定存储桶权限的 IAM 策略,然后将这些策略分配给组和角色,然后将用户分配给组或允许用户担任特定角色。您可以在存储桶策略级别进行限制(请参阅aws blog post),但这变得更加难以维护

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


【解决方案1】:

执行此操作的另一种方法可能是使用附加到所有用户的 IAM 策略。您将创建如下策略:

    "Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:GetObjectVersion",
            "s3:GetObjectVersionAcl",
            "s3:GetObjectVersionTagging",
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:PutObjectVersionAcl"
        ],
        "Resource": [
            "arn:aws:s3:::bucket_name/*"
        ]
    }
]

}

然后将该策略添加到新角色,然后将该角色与您要访问的用户相关联。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2019-04-23
    • 2021-04-25
    • 1970-01-01
    • 2012-11-23
    • 2021-08-04
    • 2019-06-28
    • 1970-01-01
    相关资源
    最近更新 更多