使用 IAM 角色限制对 s3 存储桶的访问

Limiting Access to s3 Buckets using IAM roles

我正在尝试为用户创建 访问权限,以便能够 上传下载 到亚马逊 AWS 控制台上 s3 中的特定存储桶。目前我的代码限制了对 s3 中其他存储桶的访问,但他们仍然可以查看 其他存储桶。我想限制这些其他存储桶的查看访问,以便他们只能查看和访问我允许的存储桶。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListAllMyBuckets"
        ],
        "Resource": "arn:aws:s3:::*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation"
        ],
        "Resource": [
            "arn:aws:s3:::My_Bucket",
            "arn:aws:s3:::My_Bucket_Uploaded"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject"
        ],
        "Resource": [
            "arn:aws:s3:::My_Bucket/*",
            "arn:aws:s3:::My_Bucket_uploaded/*"
        ]
    }
]
}

您的问题似乎已经得到解答here

TLDR; 您不能将列表限制为您存储桶的一个子集。您要么使用 API 并提前知道您的存储桶名称,要么允许用户在控制台上查看所有存储桶名称,尽管他们在每个存储桶中的权限可能会根据您的意愿受到限制。