を使用しているとき、私はS3の私のバケットのカスタムリダイレクションルールを持って返します。カスタムリダイレクションルール403 CloudFrontの
<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>
をそして、私のバケットは、適切なポリシーを持っています
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example.com/*"
}
]
}
これは正常に動作します内部のURLであるhttp://example.com.s3-website-us-east-1.amazonaws.com
を使ってアクセスすると、別のサーバーに適切にリダイレクトされます。
ただし、CloudFrontの設定では機能しません。直接アクセスしようとすると(http://example.com/images/dummy.jpg
)、403 AccessDeniedが届きます。
正しい。 [*] [配布の作成]ページの[Origin Settings]セクションで、[Origin Domain Name]にバケツのAmazon S3静的Webサイトホスティングエンドポイントを入力します(例:* example.com.s3-website-us-east-1)。 amazonaws.com。 **注** *バケットの名前ではなく、静的なWebサイトのホスティングエンドポイントを指定してください。 "*](http://docs.aws.amazon.com/AmazonS3/latest/ dev/website-hosting-cloudfront-walkthrough.html)リストからバケットを選択すると、CloudFrontはWebサイトのエンドポイントではなくバケットのRESTエンドポイントに接続します。 –