CloudFront HTTP ヘッダーの追加 - Amazon CloudFront

CloudFront HTTP ヘッダーの追加

CloudFront がビューワーから受け取るリクエストに特定の HTTP ヘッダーを追加するように CloudFront を設定できます。これらの HTTP ヘッダーの値は、ビューワーリクエストの特性に基づいています。ヘッダーでは、ビューワーのデバイスタイプ、IP アドレス、地理的位置、リクエストプロトコル (HTTP または HTTPS)、HTTP バージョン、および TLS 接続の詳細に関する情報が提供されます。

これらのヘッダーを使用すると、オリジンまたはエッジ関数でビューワーに関する情報を受け取ることができ、この情報を特定するための独自のコードを記述する必要はありません。オリジンが、これらのヘッダーの情報に基づいてレスポンスを返す場合は、CloudFront が別のレスポンスを別々にキャッシュするように、それらをキャッシュキーに含めることができます。例えば、オリジンは、ビューワーが居住する国に基づく特定の言語のコンテンツや、特定のデバイスタイプに合わせたコンテンツで応答する場合があります。オリジンは、これらのヘッダーをログファイルに書き込むこともあります。ログファイルを使用して、ビューワーの場所、ビューワーのデバイスの種類などの情報を判断できます。

キャッシュキーにこれらのヘッダーを含めるには、キャッシュポリシーを使用します。詳細については、「キャッシュキーの管理」および「キャッシュキーについて」を参照してください。

オリジンでヘッダーを受信するが、キャッシュキーに含めないようにするには、オリジンリクエストポリシーを使用します。詳細については、「オリジンリクエストの制御」を参照してください。

ビューワーのデバイスタイプを特定するためのヘッダー

ビューワーのデバイスタイプを特定するために、次のヘッダーが追加できます。User-Agent ヘッダーの値に基づいて、CloudFront はこれらのヘッダーの値を true または false に設定します。デバイスが複数のカテゴリに属していると、複数の値が true になる場合があります。例えば、一部のタブレットデバイスに対して、CloudFront が CloudFront-Is-Mobile-ViewerCloudFront-Is-Tablet-Viewer の両方を true に設定します。

  • CloudFront-Is-Android-Viewer - ビューワーが Android オペレーティングシステム搭載のデバイスであると CloudFront が判断すると、true に設定します。

  • CloudFront-Is-Desktop-Viewer - ビューワーがデスクトップデバイスであると CloudFront が判断すると、true に設定します。

  • CloudFront-Is-IOS-Viewer – ビューワーが iPhone、iPod touch、その他の iPad デバイスなど、Apple モバイルオペレーティングシステム搭載のデバイスであると CloudFront が判断すると、true に設定します。

  • CloudFront-Is-Mobile-Viewer - ビューワーがモバイルデバイスであると CloudFront が判断すると、true に設定します。

  • CloudFront-Is-SmartTV-Viewer - ビューワーがスマートテレビであると CloudFront が判断すると、true に設定します。

  • CloudFront-Is-Tablet-Viewer - ビューワーがタブレットであると CloudFront が判断すると、true に設定します。

ビューワーの場所を特定するためのヘッダー

ビューワーの場所を特定するために、以下のヘッダーが追加できます。CloudFront は、ビューワーの IP アドレスに基づいてこれらのヘッダーの値を決定します。これらのヘッダーの値が ASCII 以外の文字の場合、CloudFront パーセントは RFC 3986 のセクション 1.2 に従って文字をエンコードします。

  • CloudFront-Viewer-Address – CloudFront にリクエストを送信したビューワーの IP アドレスと、リクエストのソースポートが含まれます。例えば、198.51.100.10:46532 のヘッダー値は、ビューワーの IP アドレスが 198.51.100.10 で、リクエストのソースポートが 46532 であることを意味します。

    注記

    オリジンリクエストポリシーで CloudFront-Viewer-Address が追加できますが、キャッシュポリシーではできません。

  • CloudFront-Viewer-Country - ビューワーの国の 2 文字の国コードが含まれています。国コードの一覧については、「ISO 3166-1 alpha-2」を参照してください。

以下のヘッダーを追加すると、CloudFrontは、AWS ネットワークから発信されたリクエストを除くすべてのリクエストにそれらを適用します。

  • CloudFront-Viewer-City - ビューワーの市区町村名が含まれています。

  • CloudFront-Viewer-Country-Name - ビューワーの国名が含まれています。

  • CloudFront-Viewer-Country-Region - ビューワーのリージョンを表すコード (最大 3 文字) が含まれています。地域は、ISO 3166-2コードの第 1 レベルのサブディビジョン (最も広いまたは狭い) です。

  • CloudFront-Viewer-Country-Region-Name - ビューワーのリージョン名が含まれています。地域は、ISO 3166-2コードの第 1 レベルのサブディビジョン (最も広いまたは狭い) です。

  • CloudFront-Viewer-Latitude - ビューワーのおよその緯度が含まれています。

  • CloudFront-Viewer-Longitude - ビューワーのおよその経度が含まれています。

  • CloudFront-Viewer-Metro-Code - ビューワーのメトロコードが含まれています。これは、ビューワーが米国にいる場合にのみ表示されます。

  • CloudFront-Viewer-Postal-Code - ビューワーの郵便番号が含まれています。

  • CloudFront-Viewer-Time-Zone IANA タイムゾーンデータベース形式 (例: America/Los_Angeles) で、ビューワーのタイムゾーンが含まれています。

その他の CloudFront ヘッダー

ビューワーのリクエストのプロトコルおよび HTTP バージョンを特定するために、次のヘッダーが追加できます。

  • CloudFront-Forwarded-Proto - ビューワーのリクエストのプロトコル (HTTP または HTTPS) が含まれています。

  • CloudFront-Viewer-Http-Version - ビューワーのリクエストの HTTP バージョンが含まれています。

  • CloudFront-Viewer-TLS – SSL/TLS バージョン、暗号、およびビューアと CloudFront 間の接続に使用された SSL/TLS ハンドシェイクに関する情報が含まれています。ヘッダー値は次の形式です。

    SSL/TLS_version:cipher:handshake_information

    handshake_information の場合、ヘッダーには以下のいずれかの値が含まれます。

    • fullHandshake – SSL/TLS セッションに対して完全なハンドシェイクが実行された。

    • sessionResumed – 前の SSL/TLS セッションが再開された。

    • connectionReused – 前の SSL/TLS 接続が再利用された。

    以下に示しているのは、このヘッダーの値の例です。

    TLSv1.3:TLS_AES_128_GCM_SHA256:sessionResumed
    TLSv1.2:ECDHE-ECDSA-AES128-GCM-SHA256:connectionReused
    TLSv1.1:ECDHE-RSA-AES128-SHA256:fullHandshake
    TLSv1:ECDHE-RSA-AES256-SHA:fullHandshake

    このヘッダー値に含まれる SSL/TLS バージョンと暗号の完全なリストについては、「ビューワーと CloudFront との間でサポートされているプロトコルと暗号」を参照してください。

    注記

    オリジンリクエストポリシーで CloudFront-Viewer-TLS が追加できますが、キャッシュポリシーではできません。