オリジンに転送されるキャッシュポリシーの mTLS ヘッダービューワー - Amazon CloudFront

オリジンに転送されるキャッシュポリシーの mTLS ヘッダービューワー

相互 TLS 認証を使用する場合、CloudFront はクライアント証明書から情報を抽出し、HTTP ヘッダーとしてオリジンに転送できます。これにより、オリジンサーバーは証明書の検証ロジックを実装せずに証明書の詳細にアクセスできます。

キャッシュ動作を作成するために、次のヘッダーを使用できます。

ヘッダー名 説明 値の例
CloudFront-Viewer-Cert-Serial-Number 証明書のシリアル番号の 16 進数表現 4a:3f:5c:92:d1:e8:7b:6c
CloudFront-Viewer-Cert-Issuer 発行者の識別名 (DN) の RFC2253 文字列表現 CN=rootcamtls.com、OU=rootCA、O=mTLS、L=Seattle、ST=Washington、C=US
CloudFront-Viewer-Cert-Subject サブジェクトの識別名 (DN) の RFC2253 文字列表現 CN=client_.com、OU=client-3、O=mTLS、ST=Washington、C=US
CloudFront-Viewer-Cert-Present 証明書が存在するかどうかを示す 1 (存在する) または 0 (存在しない)。この値は、必須モードでは常に 1 です。 1
CloudFront-Viewer-Cert-Sha256 クライアント証明書の SHA256 ハッシュ 01fbf94fef5569753420c349f49adbfd80af5275377816e3ab1fb371b29cb586

オリジンリクエストの場合、キャッシュ動作に使用できる上記のヘッダーに加えて、2 つのヘッダーが追加されます。

ヘッダー名 説明 値の例
CloudFront-Viewer-Cert-Validity notBefore および notAfter date の ISO8601 形式 CloudFront-Viewer-Cert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z
CloudFront-Viewer-Cert-Pem リーフ証明書の URL エンコードされた PEM 形式 CloudFront-Viewer-Cert-Pem: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

ヘッダー転送を設定する

コンソール

検証モードでは、CloudFront はすべてのビューワーリクエストに CloudFront-Viewer-Cert-* ヘッダーを自動的に追加します。これらのヘッダーをオリジンに転送するには

  1. メインリストのディストリビューションページから、ビューワー mTLS が有効なディストリビューションを選択し、[動作] タブに移動します。

  2. キャッシュ動作を選択し、[編集] を選択します。

  3. [オリジンのリクエストポリシー] セクションで、[ポリシーを作成] を選択するか、既存のポリシーを選択します。

  4. オリジンリクエストポリシーに次のヘッダーが含まれていることを確認します。

    • CloudFront-Viewer-Cert-Serial-Number

    • CloudFront-Viewer-Cert-Issuer

    • CloudFront-Viewer-Cert-Subject

    • CloudFront-Viewer-Cert-Present

    • Cloudfront-Viewer-Cert-Sha256

    • CloudFront-Viewer-Cert-Validity

    • CloudFront-Viewer-Cert-Pem

  5. [作成] (新しいポリシーの場合) または [保存] (既存のポリシーの場合) を選択します。

  6. キャッシュ動作内のポリシーを選択し、変更を保存する

AWS CLI を使用する

次の例は、検証モード用の mTLS ヘッダーを含むオリジンリクエストポリシーの作成方法を示しています。

aws cloudfront create-origin-request-policy \ --origin-request-policy-config '{ "Name": "MTLSHeadersPolicy", "HeadersConfig": { "HeaderBehavior": "whitelist", "Headers": { "Quantity": 5, "Items": [ "CloudFront-Viewer-Cert-Serial-Number", "CloudFront-Viewer-Cert-Issuer", "CloudFront-Viewer-Cert-Subject", "CloudFront-Viewer-Cert-Validity", "CloudFront-Viewer-Cert-Pem" ] } }, "CookiesConfig": { "CookieBehavior": "none" }, "QueryStringsConfig": { "QueryStringBehavior": "none" } }'

ヘッダー処理に関する考慮事項

証明書ヘッダーを使用する場合、次のベストプラクティスを検討してください。

  • ヘッダーの検証: オリジンの証明書ヘッダー値を追加のセキュリティ対策として検証する

  • ヘッダーサイズの制限: PEM 証明書ヘッダーを大きくすることができます。オリジンサーバーが処理できることを確認してください

  • キャッシュに関する考慮事項: キャッシュキーで証明書ヘッダーを使用すると、キャッシュのフラグメント化が進みます

  • クロスオリジンリクエスト: アプリケーションが CORS を使用している場合、証明書ヘッダーを許可するように設定する必要がある場合があります

次のステップ

ヘッダー転送を設定したら、CloudFront Connection Functions と KeyValueStore を使用して証明書失効チェックを実装できます。失効チェックの実装の詳細については、「CloudFront 接続Connection Function と KVS を使用した取り消し」を参照してください。