使用客户管理的加密密钥

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

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

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

CMEK 的优势

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

运行代管式笔记本实例时,您的实例将在由 Google 管理的计算基础架构中运行。当您为代管式笔记本实例启用 CMEK 后,Vertex AI Workbench 将使用您指定的密钥(而不是由 Google 管理的密钥)来加密您的用户数据。

CMEK 密钥不会加密与代管式笔记本实例关联的元数据,例如实例的名称和区域。与代管式笔记本实例关联的元数据始终使用 Google 的默认加密机制进行加密。

CMEK 的限制

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

  • 您可以使用位于同一位置或全球位置的密钥来加密区域级代管式笔记本实例。例如,您可以使用 us-west1global 中的密钥来加密 us-west1 区域中的用户数据。
  • 为代管式笔记本配置 CMEK 不会自动为您使用的其他 Google Cloud 产品配置 CMEK。如需使用 CMEK 加密其他 Google Cloud 产品中的数据,您必须完成其他配置。

为代管式笔记本实例配置 CMEK

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

准备工作

我们建议您使用支持职责分离的设置。如需为代管式笔记本配置 CMEK,您可以使用两个单独的 Google Cloud 项目:

  • Cloud KMS 项目:用于管理加密密钥的项目
  • 代管式笔记本项目:用于访问代管式笔记本实例以及与您的用例所需的任何其他 Google Cloud 产品进行交互的项目

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

设置 Cloud KMS 项目

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Cloud KMS API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Cloud KMS API。

    启用 API

设置代管式笔记本项目

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Notebooks API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Notebooks API。

    启用 API

设置 Google Cloud CLI

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

安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

gcloud init

创建密钥环和密钥

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

  • 在选择密钥环的位置时,请使用 global 或代管式笔记本实例所在的位置。

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

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

授予代管式笔记本权限

如果您使用单用户访问权限设置实例,则必须向代管式笔记本实例的项目授予使用您的密钥加密和解密数据的权限。您需要向项目的服务代理授予此权限。此服务代理的电子邮件地址如下所示:

service-NOTEBOOKS_PROJECT_NUMBER@gcp-sa-notebooks.iam.gserviceaccount.com

NOTEBOOKS_PROJECT_NUMBER 替换为代管式笔记本实例的项目的项目编号

记下您的服务代理的电子邮件地址。以下步骤将用到它,以向代管式笔记本实例的项目授予使用密钥加密和解密数据的权限。您可以使用 Google Cloud Console 或使用 Google Cloud CLI 授予权限。

控制台

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

    转到加密密钥

  2. 选择您的 Cloud KMS 项目。

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

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

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

    1. 新成员字段中,输入您在上一部分中记下的服务代理电子邮件地址。

    2. 选择角色列表中,点击 Cloud KMS,然后选择 Cloud KMS CryptoKey Encrypter/Decrypter 角色。

    3. 点击保存

gcloud

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

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring=KEY_RING_NAME \
        --location=REGION \
        --project=KMS_PROJECT_ID \
        --member=serviceAccount:EMAIL_ADDRESS \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    请替换以下内容:

    • KEY_NAME:您在创建密钥环和密钥中创建的密钥的名称
    • KEY_RING_NAME:您在创建密钥环和密钥中创建的密钥环
    • REGION:您创建密钥环的区域
    • KMS_PROJECT_ID:Cloud KMS 项目的 ID
    • EMAIL_ADDRESS:您在上一部分中记下的服务代理的电子邮件地址

创建使用 CMEK 的代管式笔记本实例

在授予代管式笔记本实例使用您的密钥加密和解密数据的权限后,您便可以创建使用此密钥加密数据的代管式笔记本实例。按照以下步骤操作:

  1. 在 Google Cloud Console 中,转到代管式笔记本页面。

    转到“代管式笔记本”

  2. 点击 新建笔记本

  3. 笔记本名称字段中,输入实例的名称。

  4. 点击区域列表,然后为您的实例选择一个区域。

  5. 点击高级设置

  6. 磁盘加密部分中,选择客户管理的加密密钥 (CMEK)

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

    • 如果要使用的客户管理的密钥在列表中,请选择该密钥。

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

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

      替换以下内容:

  8. 根据需要完成创建代管式笔记本对话框的其余部分。

  9. 点击创建

  10. Vertex AI Workbench 会根据您指定的属性创建代管式笔记本实例,并自动启动该实例。当实例可供使用时,Vertex AI Workbench 会激活打开 JupyterLab 链接。

后续步骤