如何根据扩展名限制S3中的文件?

时间:2012-10-31 23:58:11

标签: amazon-s3

我正在使用Amazon S3存储桶提供静态网站服务。我知道我可以限制对某些“文件夹”的读访问权(真正的密钥,因为S3没有文件夹)但我真正想做的是通过文件扩展名来限制访问。

换句话说,我想说“只要该文件以htm / css / js / png结尾”,“为此桶中的任何文件提供每个人的读取权限”;那可能吗?

(顺便说一句,我担心的是我会不小心上传一个.git文件,或类似我不想向世界展示的东西;设置安全策略以防止显示这些文件似乎比相信自己永远不会意外地上传错误的文件。)

1 个答案:

答案 0 :(得分:15)

是的,这是可能的。你可以写一个Bucket Policy。您可以使用正则表达式来定义哪些对象受策略影响(examples)。

您的政策将类似于:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "auniqueid",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*.jpg"
        }
    ]
}

这将拒绝访问商家jpg的所有bucket个文件。