Javascript AmazonS3-访问预先指定的URL

Javascript AmazonS3-访问预先指定的URL,javascript,amazon-web-services,amazon-s3,Javascript,Amazon Web Services,Amazon S3,我已经生成了一个预先签名的S3URL。当尝试从JS代码访问它时,我得到错误“请求的资源上不存在“access Control Allow Origin”头”,并且我的bucket cors配置被禁用 <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <

我已经生成了一个预先签名的S3URL。当尝试从JS代码访问它时,我得到错误“请求的资源上不存在“access Control Allow Origin”头”,并且我的bucket cors配置被禁用

<CORSConfiguration>
  <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
   <MaxAgeSeconds>3000</MaxAgeSeconds>
   <AllowedHeader>Authorization</AllowedHeader>
  </CORSRule>
</CORSConfiguration>

等
我已将cors配置更改为

    <CORSConfiguration>
      <CORSRule>
       <AllowedOrigin>*</AllowedOrigin>
       <AllowedMethod>GET</AllowedMethod>
       <MaxAgeSeconds>3000</MaxAgeSeconds>
       <AllowedHeader>*</AllowedHeader>
      </CORSRule>
    </CORSConfiguration>

*
得到
3000
*
它成功了,我可以通过js代码访问url。但我试图了解将此标记从授权更改为*,是否有任何安全隐患


请让我知道。

这将取决于您计划如何使用预签名的url

  • 如果web应用程序/服务器将使用它临时访问s3资源,则CORS
    AllowedOrigin
    应限制在将请求资源的应用程序的域内。通常,此CORS配置(
    访问控制允许源站
    )具有最大的安全影响。看到或看到

    您可以使用通配符或特定域对其进行限制:

    <AllowedOrigin>https://*.mydomain.s3.amazonaws.com</AllowedOrigin>
    
    https://*.mydomain.s3.amazonaws.com
    
  • 如果多个客户端(即最终用户web浏览器)将请求它,则您别无选择,只能设置
    *
    ,因此这不是推荐的方法

如果您仅对您信任的允许域进行了访问限制,则将
allowedHeader
设置为
*
的安全影响最小。

这是一个类似的问题: