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

问题描述 投票:0回答:2

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

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

(顺便说一句,我担心我会不小心上传 .git 文件,或者类似的我不想向世界展示的文件;设置安全策略来防止此类文件被显示似乎比相信自己更安全以免意外上传错误的文件)。

amazon-s3
2个回答
16
投票

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

您的政策将类似于:

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

这将拒绝访问 buket

jpg
的所有
bucket
文件。


0
投票

这仅接受 .png 文件,例如,不会触发禁止公共访问限制。

{
  "Version": "2012-10-17",
  "Statement": [
    {
        "Sid": "auniqueid",
        "Effect": "Deny",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "NotResource": [
          "arn:aws:s3:::bucket/*.png"
        ]
    }
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.