オリジンリクエストへのカスタムヘッダーの追加 - Amazon CloudFront

オリジンリクエストへのカスタムヘッダーの追加

オリジンに送信するリクエストにカスタムヘッダーを追加するように CloudFront を設定できます。これらのカスタムヘッダーを使用すると、一般的なビューワーリクエストでは得られない情報をオリジンから送信および収集できます。これらのヘッダーは、オリジンごとにカスタマイズすることもできます。CloudFront は、カスタムおよび Amazon S3 オリジンの両方でカスタムヘッダーをサポートします。

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

カスタムヘッダーは、次のようなさまざまな用途に使用できます。

CloudFront からのリクエストの識別

オリジンが CloudFront から受け取るリクエストを識別できます。これは、ユーザーが CloudFront をバイパスするかどうかを知りたい場合、または複数の CDN を使用してどのリクエストが CDN から来ているのかを知りたい場合に役立つ可能性があります。

注記

Amazon S3 オリジンを使用して、Amazon S3 サーバーアクセスログを有効にした場合、ログにヘッダー情報は含まれません。

特定のディストリビューションから送信されたリクエストの判断

同じオリジンを使用するように複数の CloudFront ディストリビューションを設定する場合は、ディストリビューションごとに異なるカスタムヘッダーを追加できます。その後、オリジンからのログを使用して、どのリクエストがどの CloudFront ディストリビューションから来たのかを判断できます。

Cross-Origin Resource Sharing (CORS) の有効化

ビューワーの一部が Cross-Origin Resource Sharing (CORS) をサポートしていない場合は、オリジンに送信されるリクエストに Origin ヘッダーを常に追加するように CloudFront を設定できます。次に、リクエストごとに Access-Control-Allow-Origin ヘッダーを返すようにオリジンを設定できます。CORS 設定を適用するように CloudFront を設定する必要もあります。

コンテンツへのアクセス制御

カスタムヘッダーを使用して、コンテンツへのアクセスを制御できます。CloudFront によって追加されたカスタムヘッダーが含まれている場合にのみリクエストに応答するようオリジンを設定することで、ユーザーが CloudFront をバイパスして、オリジンで直接コンテンツにアクセスすることを防ぐことができます。詳細については、「 カスタムオリジン上のファイルへのアクセス制限」 を参照してください。

オリジンリクエストにカスタムヘッダーを追加するための CloudFront の設定

オリジンに送信されるリクエストにカスタムヘッダーを追加するようディストリビューションを設定するには、次のいずれかの方法を使用してオリジン設定を更新します。

  • CloudFront コンソール – ディストリビューションを作成または更新する場合、[Origin Custom Headers (オリジナルカスタムヘッダー)] 設定にヘッダー名と値を指定します。詳細については、「ディストリビューションの作成」または「ディストリビューションの更新」を参照してください。

  • CloudFront API – カスタムヘッダーを追加するオリジンごとに、Origin 内の CustomHeaders フィールドでヘッダー名と値を指定します。詳細については、「CreateDistribution」または「UpdateDistribution」を参照してください。

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

オリジンカスタムヘッダーに適用されるクォータについては、「カスタムヘッダーのクォータ」を参照してください。

CloudFront でオリジンリクエストに追加できないカスタムヘッダー

オリジンに送信されるリクエストに以下のヘッダーを追加するように CloudFront を設定することはできません。

  • Cache-Control

  • Connection

  • Content-Length

  • Cookie

  • Host

  • If-Match

  • If-Modified-Since

  • If-None-Match

  • If-Range

  • If-Unmodified-Since

  • Max-Forwards

  • Pragma

  • Proxy-Authorization

  • Proxy-Connection

  • Range

  • Request-Range

  • TE

  • Trailer

  • Transfer-Encoding

  • Upgrade

  • Via

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

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

  • X-Real-Ip

Authorization ヘッダーを転送するための CloudFront の設定

ビューワーリクエストをオリジンに転送する際、CloudFront はデフォルトで一部のビューワーヘッダー (Authorization ヘッダーを含む) を削除します。オリジンがオリジンリクエストの Authorization ヘッダーを常に受け取るようにするには、次のオプションがあります。

  • キャッシュポリシーを使用して、Authorization ヘッダーをキャッシュキーに追加します。キャッシュキー内のすべてのヘッダーは、オリジンリクエストに自動的に含まれます。詳細については、「キャッシュキーの管理」を参照してください。

  • オリジンリクエストポリシーを使用し、すべてのビューワーヘッダーをオリジンに転送します。オリジンリクエストポリシーで Authorization ヘッダーを個別に転送することはできません。ただし、ビューワーヘッダーをすべて転送する場合には、Authorization ヘッダーが CloudFront によりビューワーリクエストに含められます。CloudFront では、このユースケースのために、Managed-AllViewer と呼ばれるマネージド型のオリジンリクエストポリシーが提供されています。詳細については、「管理オリジンリクエストポリシーの使用」 を参照してください。