客户管理的加密密钥 (CMEK)

默认情况下,Google Cloud 会使用 Google 管理的加密密钥自动加密数据。如果您有与保护数据的密钥相关的合规性或监管要求,则可以使用客户管理的加密密钥 (CMEK)。

如需详细了解 CMEK,请参阅 Cloud Key Management Service (KMS) 文档中的 CMEK 指南

受保护数据

所有 Dialogflow CX 代理 静态数据 可以使用 CMEK 进行保护。

限制

  • 对于启用了 CMEK 的代理,系统会停用 Analytics
  • 数据存储区代理 不支持密钥轮替。没有数据存储区的 Dialogflow CX 代理 支持密钥轮替,即使用新密钥加密新数据 版本。不支持使用新密钥版本重新加密之前加密的数据 支持。
  • global 位置 支持。
  • 每个项目位置应使用一个密钥。
  • 为此, 恢复代理 启用 CMEK 后, 您必须选择 Cloud Storage 选项
  • 未集成 CMEK 的项目中的现有资源无法追溯集成 CMEK。建议改为在新项目中为 CMEK 导出和恢复资源。

创建密钥

如需创建密钥,请使用 KMS 服务。如需相关说明,请参阅创建对称密钥。创建或选择密钥时,您必须配置以下内容:

  • 确保选择要用于代理的位置,否则请求将失败。
  • Dialogflow 不支持数据存储区代理的密钥轮替。如果您 使用此类型的代理,轮替周期必须设置为永不

配置代理以使用密钥

创建代理时 您可以指定 位置以及代理是否会使用 该营业地点由 Google 管理的密钥或已配置的客户管理的密钥。 此时即可进行选择。

配置您的服务账号或用户账号

  1. 使用 Google Cloud CLI 为您的项目创建 CCAI CMEK 服务账号。如需更多信息 请参阅 gcloud 服务身份文档

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

    系统将创建服务账号。它不会在 create 响应中返回,但会采用以下格式:

    service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
    
  2. 向 CCAI CMEK 服务账号授予 Cloud KMS CryptoKey Encrypter/Decrypter 角色,以确保该服务有权使用您的密钥进行加密和解密。

    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