建立 CloudFront 連線函數以進行交互 TLS (檢視器) 驗證 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立 CloudFront 連線函數以進行交互 TLS (檢視器) 驗證

您會分兩個階段建立 CloudFront Connection Function:

  1. 建立函數程式碼做為 JavaScript。您可以從 CloudFront 主控台使用預設範例或自行撰寫。如需詳細資訊,請參閱下列主題:

    • 寫入 mTLS 驗證的 CloudFront 連線函數程式碼

    • CloudFront Connection Function 事件結構和回應格式

    • 連線函數程式碼範例

  2. 使用 CloudFront 建立連線函數並包含您的程式碼。程式碼存在於函數內部 (而不是引用形式)。

CloudFront 主控台

建立連線函數
  1. 登入 AWS 管理主控台 並開啟位於 的 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home

  2. 選擇 Create function (建立函數)

  3. 輸入 中唯一的函數名稱 AWS 帳戶,選擇連線函數做為函數類型,然後選擇繼續

  4. 新連線函數的詳細資訊頁面隨即出現。

    注意

    連線函數僅支援 JavaScript 執行期 2.0。若要在函數中使用 CloudFront Connection Function KeyValueStore 整合,您必須使用此執行時間版本。

  5. 函數程式碼區段中,選擇建置索引標籤,然後輸入您的連線函數程式碼。建置索引標籤中包含的範例程式碼說明 Connection Function 程式碼的基本語法。

  6. 選擇儲存變更

  7. 如果連線函數程式碼使用 KeyValueStore 進行憑證撤銷檢查或裝置驗證,您必須建立 KeyValueStore 的關聯。

    您可以在第一次建立函數時關聯 KeyValueStore。或者,您可以稍後透過關聯連線函數來建立關聯。

    若要立即建立 KeyValueStore 的關聯,請遵循下列步驟:

    • 前往關聯 KeyValueStore 區段,然後選擇關聯現有的 KeyValueStore

    • 選取包含連線函數憑證資料的 KeyValueStore,然後選擇關聯 KeyValueStore

    CloudFront 會立即將存放區與該函數建立關聯。您無需儲存函數。

AWS CLI

如果您使用 AWS CLI,通常會先在 檔案中建立連線函數程式碼,然後使用 建立函數 AWS CLI。

建立連線函數
  1. 在 檔案中建立連線函數程式碼,並將其存放在電腦可連線的目錄中。

  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 – 如果您的連線函數使用 KeyValueStore 進行憑證驗證,您可以在第一次建立函數時關聯 KeyValueStore。或者,您可以稍後使用 update-connection-function 建立關聯。數量一律為 1,因為每個連線函數只能有一個與其相關聯的 KeyValueStore。

  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 – 每次修改連線函數時,此值都會變更。您需要此值才能更新或發佈函數。

    • 階段 – 新的連線函數會在 DEVELOPMENT 階段啟動。您必須先發佈函數,才能將其移至 LIVE 階段,再將其與分佈建立關聯。

    • 狀態 – 函數狀態為未發佈,直到您將其發佈至 LIVE 階段為止。