【问题标题】:Setting Content Disposition with CloudFront/S3 without Signed URLs使用没有签名 URL 的 CloudFront/S3 设置内容处置
【发布时间】:2019-09-08 23:51:55
【问题描述】:

我有具有公共读取访问权限的对象,这些对象仅限于通过 CloudFront 提供服务。当我尝试将 response-content-disposition 参数传递给我的 CloudFront URL 时,我收到 S3 错误:

Request specific response headers cannot be used for anonymous GET requests.

我了解到 S3 不允许您设置内容处置,除非您使用签名的 URL,但这不是一个选项。 CloudFront 请求不应被视为匿名,因为它们使用存储桶策略进行身份验证。有没有办法可以配置它来工作?

如何在不使用签名 URL 的情况下设置内容处置?

【问题讨论】:

  • “CloudFront 请求不应被视为匿名,因为它们使用存储桶策略进行身份验证。” 对,听起来您实际上并没有这样做,而且对象是可公开访问的,并且可以匿名访问,而不是使用原始访问身份 (OAI)。
  • @Michael-sqlbot 你叫它!答案是您可以这样做,但 CF 发行版必须选择限制访问的选项。发表,我会接受答案!

标签: amazon-s3 amazon-cloudfront


【解决方案1】:

匿名请求不支持response-content-disposition 之类的请求选项,因此该错误表明 S3 没有看到任何身份验证信息。

为了让 CloudFront 向 S3 源验证自己,Restrict Bucket Access 源设置必须设置为 Yes

该选项的命名非常糟糕,因为该选项实际上并没有做任何事情来限制对存储桶的访问。它应该被称为“发送到存储桶时验证请求”之类的东西,因为这是该选项实际启用的功能 - 使用源访问身份 (OAI) 来验证发送到存储桶的请求。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html#private-content-creating-oai-console

请注意,您的设置允许匿名通过请求这一事实可能意味着您的存储桶策略或对象 ACL 限制不够。

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2015-05-20
    • 2020-04-28
    • 2023-03-03
    • 2020-08-05
    • 2014-04-17
    • 2015-10-10
    • 2018-12-25
    • 2017-02-26
    相关资源
    最近更新 更多