CloudFront + S3 で「This XML file does not appear to have any style information associated with it.」エラー
はじめに
静的ファイルをS3に保存し、Cloudfront経由で公開しようとした際に、下記のエラーに出くわしました。
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
<AWSAccessKeyId>*******</AWSAccessKeyId>
原因
結論から言うと、CloudFrontのオリジンリクエストのキャッシュキーにHost
ヘッダーを追加していたことが原因でした。
Host
ヘッダーを追加すると、OriginにHost
ヘッダーが転送されます。
OriginにS3を設定した場合、S3バケットの特定にはHOSTヘッダーが使われます。
CloudFrontからS3へリクエストする際のHOSTヘッダーが、クライアントリクエストのHOSTヘッダーで上書きされてしまい
、その結果として、S3バケットが見つからず、エラーになったというわけです。
他にもオリジンリクエストポリシーのAllViewer
やヘッダーのAuthorization
が追加されると同様に上書きされてしまい、エラーになります。
同様に、CloudFront → ELB → EC2
の構成の場合、
abcd.cloudfront.net
でアクセスすると、同様のエラーが起きますね。
Author And Source
この問題について(CloudFront + S3 で「This XML file does not appear to have any style information associated with it.」エラー), 我々は、より多くの情報をここで見つけました https://qiita.com/holdout0521/items/822621826d5cde49a493著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .