S3存储桶策略,仅使某些文件类型公开可读

时间:2018-11-05 13:21:34

标签: amazon-web-services amazon-s3

我们经营一家可以下载音乐的商店。

在存储桶中,我们有代表每个曲调的文件夹,并带有一定数量;在文件夹中,我们具有各种文件格式。

要预先收听,文件以mp3格式存储。

当前,我们手动选择mp3文件,并向任何人(世界)授予他们读取权限。

但这也可以通过存储桶策略来实现,即每个上传的mp3都将被所有人读取。

但是我们使用策略生成器创建的策略不起作用...

有什么想法吗?

{
    "Id": "Policy1541353430646",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1541353373980",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::examplebucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": "mp3"
                }
            },
            "Principal": "*"
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

prefix表示名称的开头,因此该名称无效。

相反,更改Resource以匹配您的结尾:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::examplebucket/*.mp3"
        }
    ]
}

这也适用于子目录中的对象。