启用客户管理的加密密钥

本文档介绍了如何使用客户管理的加密密钥 (CMEK) 对 Dataplex 数据进行加密。

概览

默认情况下,Dataplex 会静态加密客户内容。Dataplex 会为您处理加密,您无需执行任何其他操作。此选项称为 Google 默认加密

如果您想要控制加密密钥,则可以将 Cloud KMS 中客户管理的加密密钥 (CMEK) 与集成 CMEK 的服务(包括 Dataplex)搭配使用。使用 Cloud KMS 密钥时,您可以控制其保护级别、位置、轮替时间表、使用和访问权限以及加密边界。此外,您还可使用 Cloud KMS 跟踪密钥使用情况、查看审核日志并控制密钥生命周期。这样您就可以在 Cloud KMS 中控制和管理用于保护您数据的对称密钥加密密钥 (KEK),而不是由 Google 拥有和管理这些密钥。

使用 CMEK 设置资源后,访问 Dataplex 资源的体验与使用 Google 默认加密功能类似。如需详细了解加密选项,请参阅客户管理的加密密钥 (CMEK)

Dataplex 会为所有 Dataplex 资源在每个位置使用一个 CMEK。

您可以在 Dataplex 中在组织级别配置 CMEK 密钥。

如需大致了解 CMEK(包括其启用时间和原因),请参阅客户管理的加密密钥 (CMEK)

CMEK 的优势

借助 CMEK,您可以执行以下操作:

  • 管理密钥生命周期操作和访问权限。
  • 您可以使用 Cloud KMS 中的密钥清单 API 和密钥使用情况信息中心来跟踪密钥使用情况,从而了解哪些密钥保护哪些资源等信息。Cloud Logging 会告知您密钥何时被访问以及访问者是谁。
  • 通过管理加密密钥来满足特定的监管要求。

CMEK 如何与 Dataplex 配合工作

Google Cloud 项目中的 Dataplex 加密管理员可以通过提供 Cloud KMS 密钥为 Dataplex 配置 CMEK。然后,Dataplex 会使用指定的 Cloud KMS 密钥来加密所有数据,包括现有数据和在 Dataplex 内创建的任何新资源。

支持的功能

  • Dataplex 支持为以下功能使用 CMEK 加密:
  • Assured Workloads 客户无法使用其他 Dataplex 功能,因为这些功能不支持 CMEK 加密。
  • 不使用 Assured Workloads 的客户可以使用其他功能,但数据会使用 Google 默认加密方式进行加密。

注意事项

  • 默认情况下,每个组织都使用 Google 默认加密功能进行配置。
  • 组织管理员可以为任何位置在 Dataplex 中切换到 CMEK。
  • Dataplex 支持 Cloud KMS 密钥、Cloud HSM 密钥和 Cloud External Key Manager 密钥。
  • 支持密钥轮替,在密钥轮替可用后,系统会自动使用新密钥版本来加密数据。现有数据也会使用此新版本进行加密。
  • Dataplex 最多会将数据备份保留 15 天。启用 CMEK 后创建的任何备份都将使用指定的 KMS 密钥进行加密。在启用 CMEK 之前备份的数据将继续使用 Google 的默认加密方式加密,最长保留 15 天。

限制

  • 切换到 CMEK 是一个不可逆的过程。选择 CMEK 后,您无法还原为 Google 默认加密方式。
  • 为 Dataplex 配置 Cloud KMS 密钥后,该密钥将无法更新或更改。
  • Dataplex 仅支持组织级别加密。因此,加密配置是在组织级别针对给定位置进行设置的,且用于为该组织和位置中的所有项目加密 Dataplex 数据。不支持对组织或文件夹下的特定项目使用 CMEK 加密。设置与 CMEK 相关的组织政策需要慎重考虑。
  • Dataplex 不支持在全球区域使用 CMEK。

保护加密密钥

为确保能够继续访问由 CMEK 加密的数据,请遵循以下最佳实践:

  • 确保您的 CMEK 密钥保持启用状态且可访问。如果密钥已停用或销毁,则无法访问 Dataplex 数据。如果密钥超过 30 天无法使用,则使用该密钥加密的数据会自动删除,且无法恢复。
  • 如果 Cloud KMS 密钥已销毁且不可恢复,则所有关联的 Dataplex 数据都将永久丢失。
  • 如果 Cloud KMS 暂时不可用,Dataplex 会继续尽力支持完整操作,最长可达一小时。在此期限之后,系统会采取保护措施,暂时无法访问数据。
  • 使用 Cloud EKM 时,请注意 Google 无法控制外部管理的密钥的可用性。短期密钥不可用会导致暂时无法访问数据。如果密钥无法使用时间持续 30 天,数据将永久丢失。
  • 启用 CMEK 后,请勿将项目从一个组织移至另一个组织,因为此操作会导致数据丢失。

Dataplex 可用性

以下部分概述了为 Dataplex 组织启用 CMEK 的流程和预期的运营影响。

初始基础架构配置

保存加密配置后,Dataplex 会设置必要的基础架构。此过程通常需要 6 到 8 小时。在此配置阶段,您可以完全访问所有 Dataplex 特性和功能,并且数据仍会通过 Google 管理的加密方式进行加密。如果设置了组织政策 constraints/gcp.restrictNonCmekServices,则在配置阶段完成之前,资源创建请求会失败。

数据加密和 API 可用性

在基础架构配置后,Dataplex 会开始加密组织内存储的现有数据。为了确保数据完整性并防止在此加密过程中出现潜在的不一致,Dataplex API 方法暂时不可用。此限制可防止数据更新操作。当您首次为 Dataplex 激活 CMEK 时,系统会对所有现有数据进行加密。此一次性操作预计最多需要两小时。

加密后操作

成功完成现有数据加密后,Dataplex API 方法将完全可用。在 Dataplex 中创建或修改数据时,系统会使用已配置的 CMEK 自动对数据进行加密,而不会造成任何操作中断或 API 限制。

创建密钥并启用 CMEK

以下说明介绍了如何创建密钥并为 Dataplex 启用 CMEK。您可以使用直接在 Cloud KMS 中创建的密钥,也可以使用由 Cloud EKM 提供的外部管理的密钥。

  1. 在您要用于管理密钥的 Google Cloud 项目中,执行以下操作:

    1. 启用 Cloud Key Management Service API

    2. 在要使用 Cloud KMS 密钥环的位置中创建 Cloud KMS 密钥环

    3. 使用以下选项之一创建密钥:

  2. 创建并显示 Google 管理的服务账号:

    gcloud beta services identity create \
        --service=dataplex.googleapis.com \
        --organization=ORG_ID
    

    ORG_ID 替换为包含该密钥的组织的 ID。

    如果系统提示您安装 Google Cloud CLI Beta 版命令组件,请输入 Y

    gcloud CLI services identity 命令会创建或获取 Dataplex 可用于访问 Cloud KMS 密钥的特定 Google 管理的服务账号。

    服务账号 ID 的格式为 service-org-ORG_ID@gcp-sa-dataplex.iam.gserviceaccount.com

  3. 为 Dataplex 服务账号授予 CryptoKey Encrypter/Decrypter IAM 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter)。为您创建的密钥授予此权限。

    控制台

    1. 前往密钥管理页面。

      前往密钥管理

    2. 点击密钥环。

    3. 在可用密钥列表中,点击您创建的密钥。

    4. 点击权限标签页。

    5. 点击授予访问权限

    6. 在打开的授予访问权限窗格中,按照以下步骤向 Dataplex 服务账号授予访问权限:

      1. 添加主账号中,输入服务账号 service-org-ORG_ID@gcp-sa-dataplex.iam.gserviceaccount.com
      2. 分配角色中,选择 Cloud KMS CryptoKey Encrypter/Decrypter 角色。
      3. 点击保存

    gcloud

    向服务账号授予 cloudkms.cryptoKeyEncrypterDecrypter 角色:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location=LOCATION \
        --keyring KEY_RING \
        --project=KEY_PROJECT_ID \
        --member serviceAccount:service-org-ORG_ID@gcp-sa-dataplex.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    替换以下内容:

    • KEY_NAME:密钥名称
    • LOCATION:位置
    • KEY_RING:密钥环
    • KEY_PROJECT_ID:密钥项目 ID
  4. 为自己分配 Dataplex Encryption Admin 角色。

    控制台

    按照说明授予 IAM 角色

    gcloud

    gcloud organizations add-iam-policy-binding ORG_ID \
        --member='user:USER_EMAIL' \
        --role='roles/dataplex.encryptionAdmin'
    

    替换以下内容:

    • ORG_ID:包含密钥的组织的 ID。
    • USER_EMAIL:用户的电子邮件地址。
  5. 配置 Dataplex 以使用您的 CMEK 密钥。

    控制台

    1. 在 Google Cloud 控制台中,前往 Dataplex 页面。

      进入 Dataplex

    2. 点击设置

    3. 为 CMEK 选择区域中,选择区域。您选择的区域必须与 Cloud KMS 密钥的位置匹配。

    4. 选择加密密钥中,选择您创建的密钥。

    5. 点击保存

      数据加密过程需要一段时间才能完成。该过程完成后,系统会显示以下消息:Data Encryption is complete. Your selected CMEK key is now protecting your data.

    gcloud

    1. 在 Dataplex 中设置加密配置:

      gcloud alpha dataplex encryption-config create default \
          --location=LOCATION \
          --organization=ORG_ID \
          --key=KEY_RESOURCE_ID
      

      替换以下内容:

      • ORG_ID:包含密钥的组织的 ID。
      • KEY_RESOURCE_ID密钥资源 ID,例如 projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME。 将 PROJECT_ID 替换为密钥项目 ID。

    2. 检查加密过程是否已完成:

      gcloud alpha dataplex encryption-config describe default \
          --location=LOCATION \
          --organization=ORG_ID
      

    数据加密过程需要一段时间才能完成。该过程完成后,系统会显示以下消息:encryptionState: COMPLETED

日志记录和监控

通过为 Cloud KMS API 启用审核日志记录,审核 Dataplex 发送给 Cloud KMS 的请求。

CMEK 组织政策

Google Cloud 提供组织政策限制,以强制执行 CMEK 使用情况并控制贵组织中允许使用的 Cloud KMS 密钥。这些限制有助于确保 Dataplex 中的数据始终受到 CMEK 的保护。

  • constraints/gcp.restrictNonCmekServices 会强制 Dataplex 资源使用 CMEK。

    • 如果将 dataplex.googleapis.com 添加到 Google Cloud 服务名称列表并将限制设置为 Deny,会禁止创建未受 CMEK 保护的 Dataplex 资源。

    • 如果在 CMEK 加密设置中未为请求的位置指定 Cloud KMS 密钥,则在 Dataplex 中创建资源的请求将失败。

    • 此政策会在各个资源项目级别进行验证。

  • constraints/gcp.restrictCmekCryptoKeyProjects 会将 CMEK 的 Cloud KMS 密钥选择限制为指定的资源层次结构。

    • 通过配置资源层次结构指示符(项目、文件夹或组织)列表并将限制设置为 Allow,Dataplex 将仅限于使用来自指定位置的 CMEK 密钥。

    • 如果提供的是来自不允许项目的 Cloud KMS 密钥,则在 Dataplex 中创建受 CMEK 保护的资源的请求将失败。

    • 在创建资源期间,系统会在资源项目级别验证此政策。

    • 在配置 CMEK 加密设置时,系统会在组织级别验证此政策。

    • 为防止不一致,请确保项目级配置与组织范围的政策保持一致。

如需详细了解如何配置组织政策,请参阅 CMEK 组织政策

后续步骤

  • 详细了解 CMEK