小编Jos*_*exy的帖子

私有内容CORS与S3有关

问题

我一直在试图浏览围绕AWS生态系统的许多3个字母的缩写词服务.

我要做的是在网站上显示内容(pdf,图像,视频),其中该内容只能在网站上显示给经过身份验证的用户,而不能下载或公开访问.

我的问题是,无论我尝试什么,不允许完全公开访问存储桶,在从前端请求图像内容时给出403错误.

该应用程序的体系结构是一个前端JS应用程序,通过在S3上托管的CloudFront分发服务.这与EC2上托管的后端进行通信.

到目前为止我尝试过的

CORS配置

关于该主题的文档似乎暗示简单地创建CORS规则以允许从我的网站访问存储桶中的对象.

我创建了一个CORS策略,类似于桶的以下内容,它应允许访问存储桶中的对象:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>http://*.websitename.com</AllowedOrigin>
    <AllowedOrigin>https://*.websitename.com</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

这里没有运气,403错误.作为测试它是否可能不是CORS配置的测试,我打开了CORS策略以尝试允许公共CORS访问存储桶,如下所示:

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
  </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

这里没有运气,stackoverflow上的其他人提到有一个记录的问题AllowedOrigin: *,并尝试以下:

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <CORSRule>
    <AllowedOrigin>http://*</AllowedOrigin>
    <AllowedOrigin>https://*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
  </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

一个用户指出stackoverflow,Origin默认情况下直接链接的内容不发送标头,这意味着S3会将其解释为内部请求并发送403禁止错误.对此的解决方案是添加crossorigin="anonymous"到图像标记.

将此属性添加到img标记后,将确认标题已正确发送.它正在Origin: mywebsitename.com请求标题中发送正确的,我甚至收到response包括我的网站在内的允许来源的正确标题.

Cloudfront分发问题

根据答案,默认情况下,cloudfront不会将标头转发到S3.我已经采取了转发所有标头的步骤,包括Access-Control-Allow-MethodsAccess-Control-Allow-Origin. …

amazon-s3 amazon-web-services cors

10
推荐指数
1
解决办法
367
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1

cors ×1