用于限制可见性的AWS IAM组策略&只访问一个信号S3桶

时间:2016-06-28 15:47:51

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

我创建了一个存储桶,其中包含一些Web小网页和一些文档,只有在IAM中具有特定登录权限的用户才能读取这些文档。这些用户应该只能(读取)访问此特定存储桶而不能访问其他存储桶。理想情况下,这些用户甚至不应该知道还有其他存储桶。

为此我在IAM中创建了一个“测试”用户,将用户添加到一个组并分配了一个组策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "AllowS3GetActionsInPrivateFolder",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::my.web.page/*"
            ]
        }
    ]
}
  1. 当我使用测试用户登录并导航到S3时,我可以看到所有其他存储桶,当我点击另一个存储桶时,我收到“抱歉,没有权限”错误。这种方式有效但理想情况下用户甚至不能列出任何其他桶。

  2. 当我转到https://s3.amazonaws.com/my.web.page/index.html时,我收到了一条AccessDenied XML消息。如何修改策略以便能够使用浏览器在此存储桶中打开html页面。

  3. 用户仍具有对存储桶的写入权限。我怎样才能授予读取权限?

  4. 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用此政策可行。在哪里说示例桶把你的桶名称

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::examplebucket/*"
            ]
        },
        {
            "Sid": "AllowS3GetActionsInPrivateFolder",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::my.web.page/*"
            ]
        }
    ]
}