[CloudFront] API Gateway 利用時にオリジンリクエストポリシーに AllViewer を選択できない

CloudFront 経由で API Gateway を利用する場合、オリジンリクエストのポリシーに AllViewer を選択できないことがあります。AllViewer のポリシーには、このように記載されておりグレーアウトされてしまっています。

This policy forwards the host header.
API Gateway expects the origin’s host and cannot resolve the distribution’s host.

選択できない原因

API Gateway は xxxxxxx.execute-api.ap-northeast-1.amazonaws.com といった API Gateway のアドレスでリクエストされてくることを期待しています。そこに yyyyyyy.cloudfront.net といった CloudFront のアドレスでリクエストが来てしまうと、エラーとなる可能性があります。

AllViewerExpectHostHeader のポリシーでは、yyyyyyy.cloudfront.net 宛てのリクエストに含まれている host ヘッダを、API Gateway のアドレスである xxxxxxx.execute-api.ap-northeast-1.amazonaws.com に置き換えます。

この動作をさせるために AllViewer を選択できないようになっています。
(AllViewer では、yyyyyyy.cloudfront.net で API Gateway にリクエストが行われてしまいます)

AWSAWS,CloudFront

Posted by kidatti