由客戶管理的加密金鑰 (CMEK)

根據預設,Agent Assist 會加密靜態儲存的客戶內容。Agent Assist 會為您處理加密作業,您不必採取任何其他動作。這項做法稱為「Google 預設加密」

如要控管加密金鑰,您可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),搭配整合 CMEK 的服務 (包括 Agent Assist)。使用 Cloud KMS 金鑰可讓您控管保護等級、位置、輪換時間表、使用權限和存取權,以及加密範圍。使用 Cloud KMS 也能查看稽核記錄,以及控管金鑰生命週期。您可以在 Cloud KMS 中控制及管理這些金鑰,而不是由 Google 擁有及管理用來保護您資料的對稱金鑰加密金鑰 (KEK)

使用 CMEK 設定資源後,存取 Agent Assist 資源的體驗與使用 Google 預設加密類似。如要進一步瞭解加密選項,請參閱「客戶管理的加密金鑰 (CMEK)」。

受保護的資料

只有支援位置的「靜態」對話資料可透過 CMEK 保護。

支援的地區和功能

CMEK 適用於所有 Agent Assist 位置,以及支援位置的所有 Agent Assist 功能,包括生成式 AI 功能。

限制

如果 Agent Assist 地點和智慧回覆功能已停用,就無法使用 CMEK。

建立金鑰

如要建立金鑰,請使用 KMS 服務。 如需操作說明,請參閱「建立對稱金鑰」。建立或選擇金鑰時,必須設定下列項目:

  • 請務必選取用於 Agent Assist 資料的位置,否則要求會失敗。

在 Agent Assist 中啟用 CMEK

在特定位置建立 Agent Assist 資料前,您可以指定該位置的資料是否要受到客戶管理的金鑰保護。請立即設定金鑰。

必要條件

  1. 使用 Google Cloud CLI 為專案建立 CCAI CMEK 服務帳戶。詳情請參閱 gcloud 服務身分說明文件

    gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID

    系統會建立服務帳戶。不會在建立回應中傳回,但格式如下:

    service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
  2. Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 CCAI CMEK 服務帳戶,確保服務有權使用您的金鑰加密及解密。

    gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
    --project=PROJECT_ID \
    --location=LOCATION_ID \
    --keyring=KMS_KEY_RING \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

設定 Agent Assist 位置的金鑰

  1. 使用 InitializeEncryptionSpec API 設定金鑰。

    您需要提供下列變數:

    • PROJECT_ID:您的 Google Cloud 專案 ID。
    • LOCATION_ID:您選擇在 Agent Assist 中啟用 CMEK 的位置。
    • KMS_KEY_RING:建立 KMS 金鑰的金鑰環。(金鑰環中的位置 (例如 projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING) 必須與啟用 CMEK 的位置相符)。
    • KMS_KEY_ID:用於加密及解密所選位置中 Agent Assist 資料的 KMS 金鑰名稱。

    例如:

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        -d "{ encryption_spec: { kms_key: 'projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_ID' } }" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec:initialize"

    您應該會收到如下的 JSON 回應:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
    }
  2. 使用 GetOperation API 檢查長時間執行的作業結果。

    例如:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"

檢查 CMEK 設定

使用 GetEncryptionSpec API 檢查為位置設定的加密金鑰。

例如:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec"
  

撤銷金鑰

如要撤銷 Agent Assist 的金鑰存取權,可以停用 KMS 金鑰版本,或是從 KMS 金鑰移除服務帳戶的「Cloud KMS CryptoKey 加密者/解密者」角色。

金鑰撤銷後,Agent Assist 將無法存取加密資料,且服務會停止運作,直到金鑰權限恢復為止。