本页面介绍了如何使用客户管理的加密密钥 (CMEK) 保护 Dataproc Metastore 服务。CMEK 使用您可以通过 Cloud Key Management Service 控制的密钥提供存储中的数据(静态数据)加密。您可以将密钥作为软件密钥存储在 HSM 集群中或外部。
准备工作
如果您希望 Dataproc Metastore 服务在 VPC Service Controls 边界内运行,则必须将 Cloud Key Management Service (Cloud KMS) API 添加到边界。
为 Dataproc Metastore 配置 CMEK 支持
如需为 Dataproc Metastore 配置 CMEK 支持,您必须先向 Dataproc Metastore 和 Cloud Storage 服务账号授予 Cloud KMS 密钥权限。然后,您可以创建使用 CMEK 密钥的 Dataproc Metastore 服务。
授予 Cloud KMS 密钥权限
使用以下命令为 Dataproc Metastore 授予 Cloud KMS 密钥权限:
gcloud
在 Cloud KMS 中创建 CMEK 密钥(如果尚无密钥)。以下命令展示了如何创建软件密钥:
gcloud config set project PROJECT_ID gcloud kms keyrings create KEY_RING \ --project KEY_PROJECT \ --location=LOCATION gcloud kms keys create KEY_NAME \ --project KEY_PROJECT \ --location=LOCATION \ --keyring=KEY_RING \ --purpose=encryption
向 Dataproc Metastore Service Agent 服务账号授予权限:
gcloud kms keys add-iam-policy-binding KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --member=serviceAccount:$(gcloud beta services identity create \ --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
向 Cloud Storage 服务账号授予权限:
gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
使用 CMEK 密钥创建 Dataproc Metastore 服务
在创建服务期间,您可以按照以下步骤配置 CMEK 加密:
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc Metastore 页面顶部,点击创建。
此时会打开创建服务页面。
根据需要配置服务。
在加密下,点击使用客户管理的加密密钥 (CMEK)。
选择客户管理的密钥。
点击提交。
验证服务的加密配置:
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc Metastore 页面上,点击您要查看的服务的名称。
该服务的服务详细信息页面会打开。
在配置标签页下,验证详细信息是否将 CMEK 显示为已启用。
gcloud
运行
gcloud metastore services create
命令创建具有 CMEK 加密的服务:gcloud metastore services create SERVICE \ --encryption-kms-key=KMS_KEY
替换以下内容:
SERVICE
:新服务的名称。KMS_KEY
:引用密钥资源 ID。
验证创建操作是否成功。
受 Google 提供的加密密钥保护的 Dataproc Metastore 数据
Cloud Monitoring 数据库不支持 CMEK 加密。Google Cloud 会改用 Google 加密密钥来保护 Dataproc Metastore 服务的名称和服务配置。
从启用了 CMEK 的服务导入数据以及将数据导出到启用了 CMEK 的服务
如果您希望在导入期间仍使用客户管理的密钥加密数据,则必须先在 Cloud Storage 存储桶上设置 CMEK,然后再从中导入数据。
您可以从不受 CMEK 保护的 Cloud Storage 存储桶导入。导入后,Dataproc Metastore 中存储的数据会根据目标服务的 CMEK 设置进行保护。
导出时,系统会根据目标存储桶的 CMEK 设置保护导出的数据库转储。
Dataproc Metastore 的 CMEK 注意事项
为启用了 CMEK 的服务停用或删除 CMEK 会导致服务无法使用且无法恢复。
- 数据会永久丢失。
您无法在现有服务上启用 CMEK。
您无法轮替启用了 CMEK 的服务使用的密钥。
启用了 CMEK 的服务不支持 Data Catalog 同步。更新启用了 CMEK 的服务以启用 Data Catalog 同步失败。您无法创建同时启用这两项功能的新服务。
您无法使用 CMEK 来加密传输中的用户数据,例如用户查询和响应。
当您使用 Cloud EKM 密钥时,Google 无法控制外部管理的密钥的可用性。如果密钥在 Dataproc Metastore 服务创建期间不可用,则服务创建将失败。创建 Dataproc Metastore 服务后,如果密钥不可用,则该服务也不可用,直到密钥可用为止。如需了解使用外部密钥的更多注意事项,请参阅 Cloud EKM 注意事项。