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

客户管理的加密密钥 (CMEK) 可让用户控制由 Cloud Data Fusion 流水线写入的数据,其中包括:

  • Dataproc 集群元数据
  • Cloud Storage、BigQuery 和 Pub/Sub 数据源和数据接收器

本页面介绍如何搭配使用 Cloud Key Management Service (Cloud KMS) 加密密钥与 Cloud Data Fusion。借助 CMEK,您可以使用自己能够通过 Cloud KMS 控制的密钥对静态数据进行加密。您可以创建受 CMEK 保护的流水线,或者访问来源和接收器中受 CMEK 保护的数据。

Cloud Data Fusion 资源

Cloud Data Fusion 支持适用于以下 Cloud Data Fusion 插件的客户管理的加密密钥 (CMEK):

  • Cloud Data Fusion 接收器

    • Cloud Storage
    • Cloud Storage multi-file
    • BigQuery
    • BigQuery multi-table
    • Pub/Sub
  • Cloud Data Fusion 操作

    • Cloud Storage create
    • BigQuery execute

Cloud Data Fusion 支持适用于 Dataproc 集群的客户管理的加密密钥 (CMEK)。Cloud Data Fusion 会创建一个临时 Dataproc 集群以在流水线中使用,流水线运行完成后便会删除该集群。CMEK 会保护写入以下位置的集群元数据:

  • 连接到集群虚拟机的永久性磁盘 (PD)。
  • 写入自动创建或用户创建的 Dataproc 暂存存储分区的作业驱动程序输出和其他元数据。

设置 CMEK

  1. 创建 Cloud KMS 密钥

  2. 获取您创建的密钥的资源 ID,您稍后在此过程中将用到该密钥。

      projects/project-id/locations/region/keyRings/key-ring-name/cryptoKeys/key-name
    

    1. 在 Cloud Console 中,转到加密密钥页面。
    2. 点击您的密钥旁边的三点状菜单。
    3. 点击复制资源 ID。这会将您的资源 ID 复制到剪贴板。
  3. 设置项目的服务帐号以使用您的密钥:

    1. 必需:您必须将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 Compute Engine 系统服务帐号(请参阅将角色授予特定资源的服务帐号)。此帐号默认情况下会被授予 Compute Engine Service Agent 角色,其格式如下:
      service-[PROJECT_NUMBER]@compute-system.iam.gserviceaccount.com
      
    2. 必需:您必须将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 Cloud Storage 服务代理(请参阅将 Cloud KMS 密钥分配给 Cloud Storage 服务代理)。此服务代理的格式如下:
      service-[PROJECT_NUMBER]@gs-project-accounts.iam.gserviceaccount.com
      
    3. 可选:如果您的流水线使用 BigQuery 资源,请将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 BigQuery 服务帐号(请参阅授予加密和解密权限)。 该帐号的格式如下:
      bq-[PROJECT_NUMBER]@bigquery-encryption.iam.gserviceaccount.com
      
    4. 可选:如果您的流水线使用 Pub/Sub 资源,请将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 Pub/Sub 服务帐号(请参阅使用客户管理的加密密钥)。 该帐号的格式如下:
      service-[PROJECT_NUMBER]@gcp-sa-pubsub.iam.gserviceaccount.com
      

搭配使用 CMEK 与 Dataproc 集群元数据

要使用 CMEK 来加密在您的流水线中运行的 Dataproc 集群写入的永久性磁盘 (PD) 和暂存存储分区元数据,请执行以下操作之一:

  • 建议:创建 Dataproc 计算配置文件(仅限企业版)。
  • 修改现有 Dataproc 计算配置文件(开发者版、基本版或企业版)。
  1. 在 Cloud Console 中打开 Cloud Data Fusion 的实例页面。

    打开“实例”页面

  2. 在实例的操作列中,点击查看实例
  3. 在 Cloud Data Fusion 网页界面中,点击系统管理员
  4. 点击配置标签。
  5. 点击系统计算配置文件下拉列表。
  6. 点击创建新的配置文件
  7. 选择 Cloud Dataproc
  8. 输入配置文件标签配置文件名称说明
  9. 默认情况下,Cloud Data Fusion 会自动创建一个要用作 Dataproc 暂存存储分区的 Cloud Storage 存储分区。 如果您希望使用项目中已有的 Cloud Storage 存储分区,请按照以下步骤操作:
    1. 常规设置部分的 Cloud Storage 存储分区字段中输入现有的 Cloud Storage 存储分区。
    2. 将 Cloud KMS 密钥添加到您的 Cloud Storage 存储分区
  10. 获取 Cloud KMS 密钥的资源 ID。在常规设置部分的加密密钥名称字段中,输入您的资源 ID。
  11. 点击创建
  12. 如果配置标签的系统计算配置文件部分中列出了多个配置文件,请将新的 Dataproc 配置文件设置为默认配置文件,方法是将鼠标指针放在配置文件名称字段上,然后点击显示的星形图标。
    选择默认配置文件。

搭配使用 CMEK 与其他资源

要使用 CMEK 来加密由其他资源(如 Cloud Storage、BigQuery 或 Pub/Sub 接收器)写入的数据,请执行以下操作之一:

  • 使用运行时参数。
  • 设置 Cloud Data Fusion 系统偏好设置。

运行时参数

  1. 在 Cloud Data Fusion 流水线 Studio页面中,点击运行按钮右侧的向下箭头。
  2. 名称字段中,输入 gcp.cmek.key.name
  3. 字段中,输入密钥的资源 ID
    选择 Data Fusion 版本。
  4. 点击保存

偏好设置

  1. 在 Cloud Data Fusion 界面中,点击系统管理员
  2. 点击配置标签。
  3. 点击系统偏好设置下拉列表。
  4. 点击修改系统偏好设置
  5. 密钥字段中,输入 gcp.cmek.key.name
  6. 字段中,输入密钥的资源 ID
    选择 Data Fusion 版本。
  7. 点击保存并关闭