AWS IAM 组策略限制对单个 S3 存储桶的可见性和访问

AWS IAM Group Policy to limit visibility & access to only one signle S3 bucket

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

为此,我在 IAM 中创建了一个 "test" 用户,将该用户添加到一个组并分配了一个组策略,如下所示:

{
    "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 时,我可以看到所有其他存储桶,当我单击另一个存储桶时,出现 "Sorry, no permission" 错误。这有点管用,但理想情况下,用户甚至不能列出任何其他存储桶。

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

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

非常感谢您的帮助。

使用此策略它会起作用。它说 example bucket put you bucket name

{
    "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/*"
            ]
        }
    ]
}