默认情况下,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 管理的密钥还是客户管理的密钥。此时请选择您的密钥。
配置您的服务帐号或用户账号
使用 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
向 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