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

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

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

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

本指南介绍了如何将 CMEK 用于 Colab Enterprise。

如需详细了解如何为 Vertex AI 使用 CMEK,请参阅 Vertex AI CMEK 页面

适用于 Colab Enterprise 的 CMEK

您可以使用 CMEK 加密 Colab Enterprise 运行时和笔记本文件(笔记本)。

运行时

当您在 Colab Enterprise 笔记本中运行代码时,运行时会在由 Colab Enterprise 管理的一个或多个虚拟机 (VM) 实例上运行代码。为 Colab Enterprise 运行时启用 CMEK 后,您指定的密钥(而不是由 Google 管理的密钥)将用于加密这些虚拟机上的数据。CMEK 密钥会加密以下类型的数据:

  • 虚拟机上代码的副本。
  • 由代码加载的所有数据。
  • 由代码保存到本地磁盘的所有临时数据。

您可以启动、停止和升级运行时,而不会影响其 CMK 加密。

一般来说,CMEK 密钥不会加密与您的操作关联的元数据,例如运行时的名称或笔记本的名称和区域。此类元数据始终使用 Google 的默认加密机制进行加密。

笔记本

Colab Enterprise 笔记本存储在 Dataform 代码库中。当您创建笔记本时,Colab Enterprise 会自动创建一个用于存储笔记本的隐藏 Dataform 仓库。由于该代码库处于隐藏状态,因此您无法像修改其他 Dataform 代码库一样修改其加密设置。

如需为笔记本使用 CMEK,您必须为将包含笔记本的 Google Cloud 项目设置默认 Dataform CMEK 密钥。设置默认 Dataform CMEK 密钥后,Dataform 会默认将该密钥应用于 Google Cloud 项目中创建的所有新代码库,包括为存储您的记事而创建的任何隐藏代码库。

默认的 Dataform CMEK 密钥不会应用于现有代码库。因此,如果您已在该项目中创建笔记本,则这些笔记本不会被默认的 Dataform CMEK 密钥加密。如需对在设置项目的默认 Dataform CMEK 密钥之前创建的记事本使用 CMEK,您可以将记事本文件另存为新的 Colab Enterprise 记事本。

如需详细了解默认的 Dataform CMEK 密钥,请参阅使用 Dataform 默认 CMEK 密钥

如需为笔记本使用 CMEK,请参阅设置默认 Dataform CMEK 密钥

支持的按键

Colab Enterprise 支持以下类型的 CMEK 密钥:

密钥可用性因密钥类型和地区而异。 如需详细了解 CMEK 密钥的地理位置可用性,请参阅 Cloud KMS 位置

限制和局限

Colab Enterprise 支持 CMEK,但存在以下限制:

  • Vertex AI 中的默认配额为每个项目和区域一个加密密钥。如果您需要为项目中的某个区域注册多个密钥,请与您的 Google 客户支持团队联系,请求增加 CMEK 配置的配额,并说明您需要多个密钥的原因。

Cloud KMS 配额和 Colab 企业版

在 Colab Enterprise 中使用 CMEK 时,您的项目可能会消耗 Cloud KMS 加密请求配额。仅当您使用硬件 (Cloud HSM) 或外部 (Cloud EKM) 密钥时,使用 CMEK 密钥执行的加密和解密操作才会影响 Cloud KMS 配额。如需了解详情,请参阅 Cloud KMS 配额

为运行时配置 CMEK

以下部分介绍了如何在 Cloud Key Management Service 中创建密钥环和密钥,向 Colab Enterprise 加密者和解密者授予对密钥的权限,以及创建配置为使用 CMEK 的运行时模板。Colab Enterprise 从此运行时模板生成的任何运行时都使用 CMEK 加密。

准备工作

本指南假设您使用两个单独的项目 Google Cloud 为 Colab Enterprise 运行时配置 CMEK:

  • 一个项目用于管理加密密钥(称为“Cloud KMS 项目”)。
  • 一个项目用于访问您的 Colab Enterprise 资源,以及与您需要的任何其他 Google Cloud 产品进行交互(称为“Notebook 项目”)。

此推荐设置支持职责分离

或者,您也可以在整个指南中使用单个 Google Cloud 项目。为此,请对引用 Cloud KMS 项目的以下所有任务和引用 Notebook 项目的任务使用同一项目。

设置 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

设置 Notebook 项目

  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 Vertex AI 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 Vertex AI API.

    Enable the API

设置 Google Cloud CLI

gcloud CLI 对于本指南中的某些步骤是必需的,对于其他步骤则是可选的。

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

gcloud init

创建密钥环和密钥

按照有关创建对称密钥的 Cloud KMS 指南,创建密钥环和密钥。创建密钥环时,请指定支持 Colab Enterprise 操作的区域作为密钥环的位置。只有在运行时和密钥使用同一区域时,Colab Enterprise 才支持 CMEK。您不得为密钥环指定双区域位置、多区域位置或全球位置。

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

授予 Colab Enterprise 权限

如需将 CMEK 用于您的资源,您必须向 Colab Enterprise 授予使用您的密钥加密和解密数据的权限。Colab Enterprise 使用 Google 托管的服务代理来运行使用您的资源的操作。此服务账号由具有以下格式的电子邮件地址标识:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

如需查找适合 Notebook 项目的服务账号,请前往 Google Cloud 控制台中的 IAM 页面,找到与此电子邮件地址格式匹配的成员,并将 NOTEBOOK_PROJECT_NUMBER 变量替换为 Notebook 项目的项目编号。该服务账号的名称也将为 Vertex AI Service Agent

转到 IAM 页面

记下此服务账号的电子邮件地址并在以下步骤中使用该地址,以授予该服务账号使用您的密钥加密和解密数据的权限。您可以使用 Google Cloud 控制台或使用 Google Cloud CLI 授予权限:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,点击“安全”,然后选择密钥管理。您将会进入加密密钥页面,然后选择您的 Cloud KMS 项目。

    转到“加密密钥”页面

  2. 点击您在本指南的上一部分中创建的密钥环的名称,以转到密钥环详细信息页面。

  3. 选中您在本指南的上一部分中创建的密钥所对应的复选框。如果标有密钥名称的信息面板尚未打开,请点击显示信息面板

  4. 在信息面板中,点击 Add member 以打开 Add members to "KEY_NAME" 对话框。在此对话框中,执行以下操作:

    1. 新成员框中,输入您在上一部分中记下的服务账号电子邮件地址:service-NOTEBOOK_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

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

    3. 点击保存

gcloud

运行以下命令:

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

在此命令中,替换以下占位符:

  • KEY_NAME:您在本指南的上一部分中创建的密钥的名称。
  • KEY_RING_NAME:您在本指南的上一部分中创建的密钥环。
  • REGION:您创建密钥环的地区。
  • KMS_PROJECT_ID:Cloud KMS 项目的 ID。
  • NOTEBOOK_PROJECT_NUMBER:您在上一部分中记下的 Notebook 项目的项目编号,您在服务账号电子邮件地址中记下了该项目编号。

使用 KMS 密钥配置运行时模板

在创建新的 CMEK 支持的资源时,您可以将密钥指定为创建参数之一。如需创建 Colab Enterprise 运行时,您需要创建一个运行时模板,并将 CMEK 密钥指定为参数。Colab Enterprise 从此运行时模板生成的任何运行时都使用 CMEK 加密。

如需使用 Google Cloud 控制台创建运行时模板,您需要在创建新的运行时模板对话框中指定该键。执行以下操作:

  1. 在 Google Cloud 控制台中,进入 Colab Enterprise 运行时模板页面。

    进入运行时模板

  2. 点击  新建模板

    此时会显示创建新的运行时模板对话框。

  3. 配置计算部分的加密中,选择 Cloud KMS 密钥

  4. 密钥类型中,选择 Cloud KMS,然后在下一个字段中选择您的客户管理的加密密钥。

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

    您的运行时模板会显示在运行时模板标签页上的列表中。

后续步骤