S3 ListBucket限于可用前缀

时间:2019-06-15 05:48:58

标签: amazon-s3 amazon-iam

我正在尝试设置S3存储桶,一些客户将能够在其自己的前缀内列出,读取,删除和上传文件。上传,下载和删除都很容易,但是我在列表时遇到了问题...

我创建了一个测试用户,并用customer-name=foo标记了他。然后,我在其中创建了一个存储桶和一个文件夹foo。用户位于正确的组中,因此该策略适用,但是当我打开AWS控制台列出文件时,出现访问被拒绝错误。这是我目前的政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersionForReplication",
                "s3:DeleteObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::company-customers-data/${aws:PrincipalTag/customer-name}/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::company-customers-data",
            "Condition": {
                "ForAnyValue:StringEqualsIgnoreCase": {
                    "s3:prefix": "${aws:PrincipalTag/customer-name}"
                }
            }
        }
    ]
}

所以我的想法是,当标签为customer-name的用户尝试列出整个存储桶时,他确实应该被拒绝访问(尽管我更喜欢他可以使用的目录/文件列表),但是当他进入自己的目录时目录(甚至通过外部提供给他的url),他也应该看到所有内容的列表,但是我仍然无法访问...

0 个答案:

没有答案