Gil*_*vik 5 amazon-s3 amazon-web-services amazon-cloudfront
我对S3上的存储桶有一个自定义重定向规则:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals/>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>https</Protocol>
<HostName>example2.com</HostName>
<ReplaceKeyPrefixWith>services/create?key=</ReplaceKeyPrefixWith>
<HttpRedirectCode>307</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)
我的水桶有一个正确的政策:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example.com/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我通过其内部URL访问它时http://example.com.s3-website-us-east-1.amazonaws.com,它可以正常工作,并将其正确重定向到其他服务器。
但是,它不适用于我的CloudFront设置。当我尝试直接访问它(http://example.com/images/dummy.jpg)时,我收到403 AccessDenied。
显然,当使用默认的S3存储桶作为源时-它不会遵守重定向规则。
默认情况下,它尝试使用:
example.com.s3.amazonaws.com,但您应将其强制为自定义来源:
example.com.s3-website-us-east-1.amazonaws.com 代替。
一旦我强迫它,它就开始起作用。
| 归档时间: |
|
| 查看次数: |
1528 次 |
| 最近记录: |