メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

カスタムヘッダーをオリジン(ウェブディストリビューションのみ)へ転送する

CloudFront がリクエストをオリジンに転送するときに、常にカスタムヘッダーを含めるように設定できます。オリジンごとに、カスタムオリジン用と Amazon S3 バケット用にカスタムヘッダーの名前と値を指定できます。カスタムヘッダーには、以下のようなさまざまな用途があります。

  • CloudFront によってカスタムオリジンに転送されたリクエストを特定できます。これは、ユーザーが CloudFront をバイパスするかどうかを知りたい場合、または複数の CDN を使用してどのリクエストが CDN から来ているのかを知りたい場合に便利です。(Amazon S3 オリジンを使用して、Amazon S3 サーバーアクセスログを有効にした場合、ログにヘッダー情報は含まれません。

  • 同じオリジンを使用するように複数の CloudFront ディストリビューションを設定した場合は、各ディストリビューションのオリジンに異なるカスタムヘッダーを指定し、ウェブサーバーのログを使用して、CloudFront が各ディストリビューションに転送するリクエストを区別できます。

  • ユーザーの一部が Cross-Origin Resource Sharing(CORS)をサポートしていないビューアを使用する場合は、CloudFront が Origin ヘッダーをお使いのオリジンに転送するように設定できます。これにより、オリジンはリクエストごとに Access-Control-Allow-Origin ヘッダーをオリジンに返します。

  • カスタムヘッダーと、必要に応じて署名付き URL または署名付き cookie を併用して、カスタムオリジンのコンテンツへのアクセスを制御できます。カスタムヘッダーが含まれる場合のみリクエストに応答するようカスタムオリジンを設定している場合は、ユーザーが CloudFront をバイパスしてリクエストをオリジンに直接送信することを防ぐことができます。

カスタムヘッダーをオリジン転送するよう CloudFront を設定する

オリジンにカスタムヘッダーを転送するようウェブディストリビューションを設定するには、次の方法の 1 つを使用して該当するオリジンの設定を更新します。

CloudFront コンソール

ディストリビューションを作成または更新する場合、[Origin Custom Headers] 設定にヘッダー名と値を指定します。詳細については、「CloudFront コンソールを使用したウェブディストリビューションの作成または更新」を参照してください。

CloudFront API

カスタム ヘッダーを転送するオリジンごとに、DistributionConfig 複合型の CustomHeaders セクションにヘッダー名と値を追加します。詳細については、「POST Distribution」(新しいディストリビューションを作成する場合)または「PUT Distribution Config」(既存のディストリビューションを更新する場合)を参照してください。

指定するヘッダーの名前と値が既にビューアのリクエストに存在しない場合、CloudFront がそれらを追加します。ヘッダーが存在する場合、CloudFront はリクエストをオリジンに転送する前にヘッダー値を上書きします。

オリジンへのカスタムヘッダーの転送に関する現在の制限については、「制限」を参照してください。

CloudFront がオリジンに転送できないカスタムヘッダー

オリジンに以下のカスタムヘッダーを転送するように CloudFront を設定することはできません。

Accept-Encoding

Proxy-Authenticate

Cache-Control

Proxy-Authorization

接続

Proxy-Connection

Content-Length

範囲

Cookie

Request-Range

ホスト

TE

If-Match

Trailer

If-Modified-Since

Transfer-Encoding

If-None-Match

アップグレード

If-Range

Via

If-Unmodified-Since

X-Amz-* で始まるヘッダー

Max-Forwards

X-Edge-* で始まるヘッダー

Pragma

X-Real-Ip

Cross-Origin Resource Sharing(CORS)でカスタム ヘッダーを使用する

常に適切なヘッダーをオリジンに転送して、これらのヘッダーをリクエストに自動的に含めないビューアに対応するように CloudFront を設定できます。CORS 設定を優先するように CloudFront 設定する必要があります。詳細については、「Cross-Origin Resource Sharing (CORS) 設定を優先するように CloudFront を設定する」を参照してください。

カスタムヘッダーを使用してカスタムオリジンのコンテンツへのアクセスを制限する

カスタムオリジンを使用する場合、カスタム ヘッダーを使用して、ユーザーが CloudFront をバイパスしてオリジンから直接コンテンツをリクエストするのを防ぐことができます。オプションで、署名付き URL または署名付き cookie を使用してユーザーがオブジェクトにアクセスする際に必要になるコンテンツへのアクセスを制限することもできます。プライベートコンテンツの詳細については、「CloudFront を使用してプライベートコンテンツを供給する」を参照してください。

ユーザーに CloudFront を経由してコンテンツにアクセスするよう要求するには、CloudFront ディストリビューションで次の設定を変更します。

オリジンのカスタムヘッダー

カスタムヘッダーをオリジンに転送するよう CloudFront を設定します。「カスタムヘッダーをオリジン転送するよう CloudFront を設定する」を参照してください。

ビューアプロトコルポリシー

ビューアが CloudFront にアクセスするのに HTTPS を使用しなければならないようにディストリビューションを設定します。「ビューアプロトコルポリシー」を参照してください。

オリジンプロトコルポリシー

CloudFront がビューアと同じプロトコルを使用してリクエストをオリジンに転送するように、ディストリビューションを設定します。「オリジンプロトコルポリシー (Amazon EC2、Elastic Load Balancing、および他のカスタムオリジンのみ)」を参照してください。

[Viewer Protocol Policy] と [Origin Protocol Policy] を組み合わせると、カスタムヘッダーがビューアとオリジン間で暗号化されます。ただし、定期的に以下のタスクを実行して、CloudFront がオリジンに転送するカスタムヘッダーをローテーションすることをお勧めします。

  1. CloudFront ディストリビューションを更新して、新しいヘッダーのカスタムオリジンへの転送を開始します。

  2. アプリケーションを更新して、リクエストが CloudFront からのものであることの確認として新しいヘッダーを受け入れます。

  3. ビューアで置き換えているヘッダーが含まれていない必要がある場合は、アプリケーションを更新して、リクエストが CloudFront からのものであることの確認として古いヘッダーを受け入れないようにします。