仅授予对 S3 中一个存储桶的访问权限

Grant access to only one bucket in S3

我正在尝试编写一项策略来授予特定用户仅访问一个存储桶的权限

这是我目前所拥有的:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::MYBUCKET",
                "arn:aws:s3:::MYBUCKET/*"
            ]
        }
    ]
}

我不希望该用户列出所有其他存储桶 所以我改变了 "Resource":"arn:aws:s3:::*""Resource":"arn:aws:s3:::MYBUCKET" 但它没有用。我不需要这个用户以编程方式访问控制台就可以了。谢谢!!

无法限制 ListAllMyBuckets 命令的结果。他们要么看到 所有桶的列表 ,要么他们根本看到 none。

如果他们知道他们希望使用哪个存储桶,那么您可以简单地删除列出存储桶的权限。他们仍将能够列出 MYBUCKET 和 upload/download 对象的 内容 。他们只是无法请求存储桶列表。 (并且 S3 管理控制台将无法运行,因为它希望能够列出帐户中的所有存储桶)