使用客户管理的加密密钥

本页面介绍了如何使用客户管理的加密密钥 (CMEK) 保护 Dataproc Metastore 服务。CMEK 使用您可以通过 Cloud KMS 控制的密钥提供存储中的数据(静态数据)加密。

前提条件

如果您希望服务在 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

  1. 在 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
    

    您必须在服务所在的同一区域中创建 CMEK 密钥。

  2. 向 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
    
  3. 向 Cloud Storage 服务帐号授予权限:

    gsutil kms authorize -k projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

使用 CMEK 密钥创建 Dataproc Metastore 服务

在创建服务期间,您可以按照以下步骤配置 CMEK 加密:

控制台

  1. 在 Cloud Console 中,打开 Dataproc Metastore 页面:

    在 Cloud Console 中打开 Dataproc Metastore

  2. Dataproc Metastore 页面顶部,点击创建按钮。此时会打开创建服务页面。

  3. 根据需要配置服务。

  4. 加密下,点击使用客户管理的加密密钥 (CMEK)

  5. 选择客户管理的密钥。

  6. 点击提交

验证服务的加密配置:

  1. 在 Cloud Console 中,打开 Dataproc Metastore 页面:

    在 Cloud Console 中打开 Dataproc Metastore

  2. Dataproc Metastore 页面上,点击您要查看的服务的名称。该服务的服务详细信息页面会打开。

  3. 配置标签页下,验证详细信息是否将 CMEK 显示为已启用。

gcloud

  1. 运行以下 gcloud beta metastore services create 命令创建具有 CMEK 加密的服务:

    gcloud beta metastore services create SERVICE \
       --encryption-kms-key=KMS_KEY
    

    替换以下内容:

    • SERVICE:新服务的名称。
    • KMS_KEY:引用密钥资源 ID。
  2. 验证创建操作是否成功。

受 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 来加密传输中的用户数据,例如用户查询和响应。

后续步骤