DEV Community

CloudFront経由のアクセスでプロトコルを識別する

主にWordpress向けのネタになると思うが、ALB経由でのアクセスでプロトコルを識別する場合には、ターゲットに対してX-Forwarded-Proto リクエストヘッダーを使用してアクセスされるため、HTTP_X_FORWARDED_PROTOの環境変数で識別できる一方、CloudFront経由のアクセスでプロトコルを識別するする場合には、CloudFront-Forwarded-Protoヘッダをオリジンアクセス時に付加することで、HTTP_CLOUDFRONT_FORWARDED_PROTOの環境変数で識別できる。

しかしながら、CloudFrontのオリジンリクエストポリシー名がマネージドポリシーを使っている場合、AllViewerではCloudFront-Forwarded-Protoヘッダがオリジンに送られることはなく、HTTP_CLOUDFRONT_FORWARDED_PROTOの環境変数で識別することができない。

Managed-AllViewerAndCloudFrontHeaders-2022-06というマネージドポリシーが用意されているので、これを設定することで要件を満たすようになる。

CloudFront のリクエストヘッダーの追加には以下の記述が冒頭あるが、どのように設定できるのかが同一ページに記載されていないので、紹介してみた。

CloudFront がビューワーから受け取り、オリジンまたはエッジ関数に転送するリクエストに特定の HTTP ヘッダーを追加するように CloudFront を設定できます。

Top comments (0)