Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 使用不带签名URL的CloudFront/S3设置内容处置_Amazon S3_Amazon Cloudfront - Fatal编程技术网

Amazon s3 使用不带签名URL的CloudFront/S3设置内容处置

Amazon s3 使用不带签名URL的CloudFront/S3设置内容处置,amazon-s3,amazon-cloudfront,Amazon S3,Amazon Cloudfront,我有一些具有公共读取权限的对象,这些对象仅限于通过CloudFront提供服务。当我尝试将响应内容处置参数传递到我的CloudFront URL时,我得到了S3错误: 特定于请求的响应头不能用于匿名GET请求。 我已经读到,S3不允许您设置内容配置,除非您使用的是签名URL,但这不是一个选项。CloudFront请求不应被认为是匿名的,因为它们使用bucket策略进行身份验证。有没有一种方法可以将其配置为工作 如何在不使用签名URL的情况下设置内容处置?匿名请求不支持请求选项,如响应内容处置,因

我有一些具有公共读取权限的对象,这些对象仅限于通过CloudFront提供服务。当我尝试将
响应内容处置
参数传递到我的CloudFront URL时,我得到了S3错误:

特定于请求的响应头不能用于匿名GET请求。

我已经读到,S3不允许您设置内容配置,除非您使用的是签名URL,但这不是一个选项。CloudFront请求不应被认为是匿名的,因为它们使用bucket策略进行身份验证。有没有一种方法可以将其配置为工作


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

匿名请求不支持请求选项,如
响应内容处置
,因此错误表明S3未看到任何身份验证信息

为了让CloudFront向S3源进行身份验证,必须将
Restrict Bucket Access
origin设置设置为
Yes

该选项的名称非常糟糕,因为该选项实际上没有限制对bucket的访问。它应该被称为“发送到Bucket时对请求进行身份验证”,因为这是该选项实际启用的功能——使用源访问标识(OAI)对发送到Bucket的请求进行身份验证


请注意,您的设置允许请求以匿名方式通过,这可能意味着您的bucket策略或对象ACL没有足够的限制。

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