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

mac*_*ost 7 amazon-s3

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

换句话说,我想说"只要该文件以htm/css/js/png结尾","为这个桶中的任何文件提供对每个人的读访问权"; 那可能吗?

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

lst*_*ern 15

是的,这是可能的.您可以编写Bucket Policy.您可以使用正则表达式来定义哪些对象受策略影响(示例).

您的政策将类似于:

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

这将拒绝访问jpgbuket的所有文件bucket.