默认情况下,Google Cloud 会使用 Google 管理的加密密钥自动加密数据。如果您有与保护数据的密钥相关的合规性或监管要求,则可以使用客户管理的加密密钥 (CMEK)。
如需详细了解 CMEK,请参阅 Cloud Key Management Service (KMS) 文档中的 CMEK 指南。
受保护数据
所有对话式客服 (Dialogflow CX) 代理存储中的数据(数据静态)均可通过 CMEK 进行保护。
限制
- 对于启用 CMEK 的代理,分析功能处于停用状态。
- 数据存储代理不支持密钥轮替。没有数据存储区的对话代理 (Dialogflow CX) 代理 支持密钥轮替,从而使用新密钥加密新数据 版本。不支持使用新密钥版本重新加密之前加密的数据 支持。
- global 位置 支持。
- 每个项目位置应使用一个密钥。
- 若要恢复已启用 CMEK 的代理,您必须选择 Cloud Storage 选项。
- 非 CMEK 集成项目中的现有资源无法回溯性地集成 CMEK。建议您改为在新的项目中导出和恢复资源,以便使用 CMEK。
创建密钥
如需创建密钥,请使用 KMS 服务。如需相关说明,请参阅创建对称密钥。创建或选择密钥时,您必须配置以下内容:
- 确保选择要用于代理的位置,否则请求将失败。
- 对话代理 (Dialogflow CX) 不支持数据存储区代理的密钥轮替。如果您使用的是此类代理,则在创建密钥时必须将轮替周期设置为永不。
配置代理以使用密钥
创建代理时 您可以指定 位置以及代理是否会使用 该营业地点由 Google 管理的密钥或已配置的客户管理的密钥。 请在此时进行选择。
配置您的服务账号或用户账号
使用 Google Cloud CLI 为您的项目创建 CCAI CMEK 服务账号。如需了解详情,请参阅 gcloud services identity 文档。
gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID
系统将创建服务账号。系统不会在创建响应中返回此 ID,但其格式如下:
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