客户管理的加密密钥

默认情况下,Google Cloud 会使用 Google 管理的加密密钥自动加密静态数据。如果您对保护数据的密钥有特定的合规性或监管要求,则可以将客户管理的加密密钥 (CMEK) 用于 Vertex AI Workbench 实例。

本页面介绍了将 CMEK 用于 Vertex AI Workbench 的一些具体优势和限制,并说明了如何将新的 Vertex AI Workbench 实例配置为使用 CMEK。

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

CMEK 的优势

一般来说,如果您需要完全控制用于加密数据的密钥,则 CMEK 最有用。借助 CMEK,您可以在 Cloud Key Management Service 中管理密钥。例如,您可以轮替或停用密钥,也可以使用 Cloud KMS API 设置轮替时间表。

运行 Vertex AI Workbench 实例时,您的实例在由 Vertex AI Workbench 管理的虚拟机上运行。 当您为 Vertex AI Workbench 实例启用 CMEK 时,Vertex AI Workbench 将使用您指定的密钥(而不是由 Google 管理的密钥)来加密虚拟机的启动磁盘中的数据。

CMEK 密钥不会加密与 Vertex AI Workbench 实例关联的元数据,例如实例的名称和区域。 与 Vertex AI Workbench 实例关联的元数据始终使用 Google 的默认加密机制进行加密。

CMEK 的限制

为了减少延迟时间并防止资源依赖于跨多个故障域的服务,Google 建议您使用位于同一位置的密钥来保护区域级 Vertex AI Workbench 实例。

  • 您可以使用位于同一位置或全球位置的密钥来加密区域级 Vertex AI Workbench 实例。例如,您可以使用 us-west1global 中的密钥加密 us-west1-a 可用区内的磁盘中的数据。
  • 您可以在任何位置使用密钥来加密全局实例。
  • 为 Vertex AI Workbench 配置 CMEK 不会自动为您使用的其他 Google Cloud 产品配置 CMEK。如需使用 CMEK 加密其他 Google Cloud 产品中的数据,您必须完成其他配置。

为 Vertex AI Workbench 实例配置 CMEK

以下部分介绍了如何在 Cloud Key Management Service 中创建密钥环和密钥,向服务账号加密者和解密者授予针对密钥的权限,以及创建使用 CMEK 的 Vertex AI Workbench 实例。

准备工作

我们建议您使用支持职责分离的设置。如需为 Vertex AI Workbench 配置 CMEK,您可以使用两个单独的 Google Cloud 项目:

  • Cloud KMS 项目:用于管理加密密钥的项目
  • Vertex AI Workbench 项目:用于访问 Vertex AI Workbench 实例并与您的用例所需的任何其他 Google Cloud 产品进行交互的项目

或者,您可以使用单个 Google Cloud 项目。为此,请对以下所有任务使用同一项目。

设置 Cloud KMS 项目

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API.

    Enable the API

设置 Vertex AI Workbench 项目

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the API

设置 Google Cloud CLI

本页面中的有些步骤需要 gcloud CLI,而有些步骤则不一定需要它。

Install the Google Cloud CLI, then initialize it by running the following command:

gcloud init

创建密钥环和密钥

创建密钥环和密钥时,请注意以下要求:

  • 在选择密钥环的位置时,请使用 global 或 Vertex AI Workbench 实例所在的位置。

  • 请务必在 Cloud KMS 项目中创建密钥环和密钥。

如需创建密钥环和密钥,请参阅创建对称加密密钥

授予 Vertex AI Workbench 权限

如需将 CMEK 用于 Vertex AI Workbench 实例,您必须向 Vertex AI Workbench 实例授予使用密钥加密和解密数据的权限。 您需要向项目的服务代理和 Compute Engine 服务账号授予此权限。

如需查找 Vertex AI Workbench 项目的特定账号,请使用 Google Cloud 控制台。

  1. 在 Google Cloud 控制台中,转到 IAM 页面

    转到 IAM

  2. 选择包括 Google 提供的角色授权

  3. 查找与以下电子邮件地址格式匹配的成员。记下电子邮件地址,并在以下步骤中使用。

    • 您项目的服务代理的电子邮件地址如下所示:

      service-NOTEBOOKS_PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com
    • Compute Engine 服务账号的电子邮件地址如下所示:

      service-NOTEBOOKS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

    NOTEBOOKS_PROJECT_NUMBER 替换为您的 Vertex AI Workbench 项目的项目编号

    如需向这些账号授予使用您的密钥加密和解密数据的权限,您可以使用 Google Cloud 控制台或 Google Cloud CLI。

    控制台

    1. 在 Google Cloud 控制台中,转到加密密钥页面。

      转到加密密钥

    2. 选择您的 Cloud KMS 项目。

    3. 点击您在创建密钥环和密钥中创建的密钥环的名称。密钥环详细信息页面将打开。

    4. 选中您在创建密钥环和密钥中创建的密钥对应的复选框。如果标有密钥名称的信息面板尚未打开,请点击显示信息面板

    5. 在信息面板中,点击 添加成员。系统会打开向“KEY_NAME”添加成员对话框。在此对话框中,执行以下操作:

      1. 新成员字段中,输入您项目的服务代理的电子邮件地址:

        service-NOTEBOOKS_PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com
      2. 选择角色列表中,点击 Cloud KMS,然后选择 Cloud KMS CryptoKey Encrypter/Decrypter 角色。

      3. 点击保存

    6. 对 Compute Engine 服务代理重复以下步骤:

      service-NOTEBOOKS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

    gcloud

    1. 如需向项目的服务代理授予使用您的密钥加密和解密数据的权限,请运行以下命令:

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring=KEY_RING_NAME \
        --location=REGION \
        --project=KMS_PROJECT_ID \
        --member=serviceAccount:service-NOTEBOOKS_PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

      替换以下内容:

      • KEY_NAME:您在创建密钥环和密钥中创建的密钥的名称
      • KEY_RING_NAME:您在创建密钥环和密钥中创建的密钥环
      • REGION:您创建密钥环的区域
      • KMS_PROJECT_ID:Cloud KMS 项目的 ID
      • NOTEBOOKS_PROJECT_NUMBER:您在上一部分中记下作为服务账号电子邮件地址一部分的 Vertex AI Workbench 项目的项目编号。
    2. 如需向 Compute Engine 服务账号授予使用您的密钥加密和解密数据的权限,请运行以下命令:

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring=KEY_RING_NAME \
        --location=REGION \
        --project=KMS_PROJECT_ID \
        --member=serviceAccount:service-NOTEBOOKS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

使用 CMEK 创建 Vertex AI Workbench 实例

您已授予 Vertex AI Workbench 实例使用您的密钥加密和解密数据的权限后,可以创建使用此密钥加密数据的 Vertex AI Workbench 实例。

以下示例展示了如何通过 Google Cloud 控制台使用您的密钥加密和解密数据。

如需使用客户管理的加密密钥创建 Vertex AI Workbench 实例,请执行以下操作:

  1. 在 Google Cloud 控制台中,进入实例页面。

    转到实例

  2. 点击  新建

  3. 新建实例对话框中,点击高级选项

  4. 创建实例对话框的详细信息部分中,为新实例提供以下信息:

    • 名称:新实例的名称
    • 区域:您的密钥和密钥环所在的区域
    • 可用区:您所选区域内的可用区
  5. 磁盘部分的加密中,选择客户管理的加密密钥 (CMEK)

  6. 点击选择客户管理的密钥

    • 如果要使用的客户管理的密钥在列表中,请选择该密钥。
    • 如果要使用的客户管理的密钥不在列表中,请输入客户管理的密钥的资源 ID。客户管理的密钥的资源 ID 格式如下所示:

      projects/NOTEBOOKS_PROJECT_NUMBER/locations/global/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

      替换以下内容:

  7. 完成实例创建对话框的其余部分,然后点击创建

后续步骤