限制特定用户的存储桶列表

ran*_*ame 12 policy amazon-s3

我已经能够生成一个只提供对特定存储桶的访问权限的用户策略,但是在尝试了所有内容之后(包括这篇文章:是否有限制访问的S3策略只能查看/访问一个存储桶?).

问题:我无法将桶的列表限制为只有一个桶.出于各种原因,我不希望列表显示除指定的桶之外的任何桶.

我尝试了各种政策,但无济于事.这是我的最新策略JSON,它正在限制操作,但没有列出:

{
    "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListAllMyBuckets",
            "s3:ListBucket",
            "s3:GetBucketLocation"
        ],
        "Resource": "arn:aws:s3:::*"
    },
    {
        "Effect": "Deny",
        "Action": [
            "s3:ListBucket"
        ],
        "NotResource": [
            "arn:aws:s3:::acgbu-acg",
            "arn:aws:s3:::acgbu-acg/*"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::acgbu-acg",
            "arn:aws:s3:::acgbu-acg/*"
        ]
    }
]
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.我开始怀疑它是否可能.

dcr*_*cro 31

目前无法限制存储桶列表仅显示一个存储桶.

在AWS控制台依赖于ListAllMyBuckets动作来获得用户所拥有的水桶名单,但返回的列表无法通过使用亚马逊资源名称(ARN或;这是允许的唯一的ARN限制ListAllMyBucketsarn:aws:s3:::*).

这个限制在官方AWS文档中没有明确解释,但是ListAllMyBuckets是服务级API调用(在REST API中也称为GET服务),而不是桶级API调用,其在IAM策略中的关联ARN是指S3服务于特定的桶.

有关可能的解决方法,请参阅StackOverflow上的以下答案: