相互 TLS (ビューワー) 検証用の CloudFront Connection Functions を作成する - Amazon CloudFront

相互 TLS (ビューワー) 検証用の CloudFront Connection Functions を作成する

CloudFront Connection Function は、2 つのステージで作成します。

  1. 関数コードを JavaScript として作成します。CloudFront コンソールのデフォルトの例を使用することも、独自に記述することもできます。詳細については、以下の各トピックを参照してください。

    • mTLS 検証用の CloudFront Connection Function コードを記述する

    • CloudFront Connection Function のイベント構造とレスポンス形式

    • 接続関数のコード例

  2. CloudFront を使用して Connection Function を作成し、コードを含めます。コードは関数内にあります (リファレンスとしてではありません)。

CloudFront コントロール

Connection Function を作成するには
  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

  2. [関数の作成] を選択してください。

  3. AWS アカウント内で一意の関数名を入力し、関数タイプとして [接続関数] を選択し、[続行] を選択します。

  4. 新しい Connection Function の詳細ページが表示されます。

    注記

    接続関数は JavaScript ランタイム 2.0 のみをサポートします。関数で CloudFront Connection Function KeyValueStore 統合を使用するには、このランタイムバージョンを使用する必要があります。

  5. [関数コード] セクションで、[ビルド] タブを選択し、関数コードを入力します。[ビルド] タブに含まれるサンプルコードは、Connection Function コードの基本的な構文を示しています。

  6. [Save changes] (変更の保存) をクリックします。

  7. Connection Function コードが証明書失効チェックまたはデバイス検証に KeyValueStore を使用する場合、KeyValueStore を関連付ける必要があります。

    KeyValueStore は、関数を最初に作成する時に関連付けることができます。または、後で Connection Functions を関連付けることで関連付けることができます。

    KeyValueStore を今すぐ関連付けるには、次の手順に従います。

    • [KeyValueStore を関連付け] セクションに移動して、[既存の KeyValueStore を関連付け] を選択します。

    • Connection Function の証明書データを含む KeyValueStore を選択し、次に [KeyValueStore を関連付ける] を選択します。

    CloudFront はストアを直ちに関数に関連付けます。関数を保存する必要はありません。

AWS CLI

AWS CLI を使用する場合、通常は最初に Connection Function コードをファイルに作成し、次に AWS CLI を使用して関数を作成します。

Connection Function を作成するには
  1. Connection Function コードをファイルに作成し、コンピュータが接続できるディレクトリに保存します。

  2. 次の例に示すようにコマンドを実行します。この例では、fileb:// 表記を使用してファイルを渡します。コマンドを読みやすくするために改行も含まれています。

    aws cloudfront create-connection-function \ --name CertificateValidator \ --connection-function-config '{ "Comment":"Device certificate validation", "Runtime":"cloudfront-js-2.0", "KeyValueStoreAssociations":{ "Quantity":1, "Items":[{ "KeyValueStoreARN":"arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }] } }' \ --connection-function-code fileb://certificate-validator.js
    注記
    • ランタイム - 接続関数は JavaScript ランタイム 2.0 (cloudfront-js-2.0) のみをサポートします。

    • KeyValueStoreAssociations - Connection Function が証明書の検証に KeyValueStore を使用する場合、関数の初回作成時に KeyValueStore を関連付けることができます。または、後で update-connection-function を使用して関連付けることもできます。各 Connection Function に関連付けることができる KeyValueStore は 1 つだけのため、Quantity は常に 1 です。

  3. コマンドが成功した場合は、以下のような出力が表示されます。

    ETag: ETVABCEXAMPLE ConnectionFunctionSummary: ConnectionFunctionConfig: Comment: Device certificate validation Runtime: cloudfront-js-2.0 KeyValueStoreAssociations: Quantity: 1 Items: - KeyValueStoreARN: arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 ConnectionFunctionMetadata: CreatedTime: '2024-09-04T16:32:54.292000+00:00' ConnectionFunctionARN: arn:aws:cloudfront::111122223333:connection-function/CertificateValidator LastModifiedTime: '2024-09-04T16:32:54.292000+00:00' Stage: DEVELOPMENT Name: CertificateValidator Status: UNPUBLISHED Location: https://cloudfront.amazonaws.com/2020-05-31/connection-function/arn:aws:cloudfront:::connection-function/CertificateValidator

    ほとんどの情報はリクエストから繰り返されます。その他の情報は CloudFront によって追加されます。

    注記
    • ETag - この値は、Connection Function を変更するたびに変わります。関数を更新または公開するには、この値が必要です。

    • ステージ - 新しい接続関数は開発ステージで開始されます。関数をディストリビューションに関連付ける前に発行してライブステージに移行する必要があります。

    • ステータス - 関数のステータスは、ライブステージに発行するまで未発行です。