[英]Intermittent 403 CORS Errors (Access-Control-Allow-Origin) With Cloudfront Using Signed URLs To GET S3 Objects
[英]AWS CloudFront Access-Control-Allow-Origin and Signed Cookie/Urls
我在S3 + Cloudfront + Signed Urls遇到了CORS。
我的用例是:
第一個故事(成功):
我有一個帶Cloudfront的Amazon S3存儲桶。 可以通過DOMAIN1/file
鏈接訪問DOMAIN1/file
我編寫了一個簡單的測試JS腳本來從DOMAIN1中獲取文件,並將其放在DOMAIN2/test.html
第二種情況(也成功):
第三種情況(失敗)
DOMAIN2/test.html
情況開始)放到DOMAIN2/test.html
測試腳本中 No 'Access-Control-Allow-Origin' header
錯誤。 因此,在分配受限的情況下,Cloudfront不會發送標頭。
CORS xml是:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>10</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
CloudFront / S3 / IAM設置中一定有問題。 我該如何解決?
似乎一種解決方案是為S3存儲桶設置正確的訪問權限。 取而代之的是“所有人”訪問,需要“任何經AWS身份驗證的用戶”或“適合Cloudfront的用戶”。
我去了Cloudfront Distributions -> MYPRIVATECLOUDFRONTID -> Behaviors
並添加了以下內容:
Path Pattern = path/to/my/file.ext
Forward Headers = Whitelist
並添加到Whitelist Header: Origin
不要忘記取消選中“ Restrict Viewer Access (Use Signed URLs or Signed Cookies)
-對我來說,即使我已將整個緩存標記為受限,它也被標記為不受限。
我的下一步是根據需要自動設置此白名單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.