相关疑难解决方法(0)

使用CloudFront时,S3上的自定义重定向规则返回403

我对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

amazon-s3 amazon-web-services amazon-cloudfront

5
推荐指数
1
解决办法
1528
查看次数