限制访问帐户中的AWS存储桶,同时仍允许访问其他帐户中的公共存储桶

时间:2019-10-15 15:44:52

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

对于给定的IAM用户,我只允许该用户访问我们帐户中的一个特定存储桶(称为foo-bucket)。

但是,这似乎会导致无法访问我们帐户之外的任何公共存储桶,这不是我想要的。我希望用户仍然可以访问另一个帐户(例如broad-references)中的任何公共存储桶。我当然可以明确地授予对特定公共存储桶的访问权限,但是世界上有无数公共存储桶,我不想限制对其中任何一个的访问。

这是现有政策。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "economycloud",
            "Action": [
                "s3:List*",
                "s3:Get*",
                "s3:DeleteObject*",
                "s3:Abort*",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectTagging",
                "s3:RestoreObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::foo-bucket/*",
                "arn:aws:s3:::foo-bucket"
            ]
        },
        {
            "Sid": "AllowListing",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        }
    ]
}

有人可以建议执行以下操作的IAM策略:

  • 限制访问权限,以便用户只能按照上述策略访问帐户中的该特定存储桶,但
  • 可以访问任何其他帐户中的任何公共存储桶。

1 个答案:

答案 0 :(得分:0)

丹,

这是您将能够实现的方式:

  • 明确拒绝用户访问specific account中的所有存储桶,但特定的存储桶(foo-bucket)除外。
  • 明确允许用户访问该特定存储桶(foo-bucket)。
  • 显式允许所有帐户的存储桶。