【问题标题】:AWS S3: How to restrict document uploads by Content-Type?AWS S3:如何通过 Content-Type 限制文档上传?
【发布时间】:2021-09-06 08:53:35
【问题描述】:

任何人都知道如何编写 S3 存储桶策略以按内容类型限制文件上传?另外,有没有办法在 AWS 中查看失败的上传尝试?

我们为什么要这样做?

我们正在从我们的一项服务生成预签名 URL。然后,我们的 UI 负责通过提供的 URL 上传文档。我们有 UI 文件类型验证,但也希望在有人持有预签名 URL 的情况下保护存储桶(允许他们回避 UI 文件类型验证)。需要注意的重要一点是,我们的桶只是一个临时存放桶。在我们的系统之外处理更深入的文件验证。

这是我们目前的声明。这会在我们上传 PDF 文档时导致上传错误。

这是不是写错了?除了检查文件扩展名之外,还有其他方法吗?

JSON

{
            ...
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "Resource": [ "..." ],
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:ContentType": "application/pdf"
                }
            }
}

【问题讨论】:

  • 您确实意识到 content-type 标头可以任意填充,您仍然可以上传 zip 并声称它是 pdf。是的,我认为您可以在 cloudwatch 中查看失败的上传尝试,但开启该功能会产生相当大的成本。

标签: amazon-web-services amazon-s3 bucket


【解决方案1】:

您可以使用Content-Type POST 策略条件来实现此目的。详情请见https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html#sigv4-ConditionMatching

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 2018-08-28
    • 2015-01-10
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    相关资源
    最近更新 更多