使用客户管理的加密密钥 (CMEK) 加密 TPU 虚拟机的启动磁盘
默认情况下,Cloud TPU 会对静态客户内容进行加密。Cloud TPU 会为您处理加密,您无需执行任何其他操作。此选项称为“Google 默认加密”。
如果您想要控制加密密钥,则可以将 Cloud KMS 中客户管理的加密密钥 (CMEK) 与集成 CMEK 的服务(包括 Cloud TPU)搭配使用。使用 Cloud KMS 密钥时,您可以控制其保护级别、位置、轮替时间表、使用和访问权限以及加密边界。此外,您还可使用 Cloud KMS 查看审核日志并控制密钥生命周期。这样您就可以在 Cloud KMS 中控制和管理用于保护数据的对称密钥加密密钥 (KEK),而不是由 Google 拥有和管理这些密钥。
使用 CMEK 设置资源后,访问 Cloud TPU 资源的体验与使用 Google 默认加密功能类似。如需详细了解加密选项,请参阅客户管理的加密密钥 (CMEK)。
创建 CMEK 后,您需要向 Compute Engine 服务账号授予对密钥的访问权限。
授予使用密钥的权限
您必须向 Google Cloud 项目中的 Compute Engine 服务代理授予 Cloud KMS 密钥的 Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter
) IAM 角色。授予此角色可让 Compute Engine 服务访问和使用您的加密密钥。
如需向 Compute Engine 服务代理授予 roles/cloudkms.cryptoKeyEncrypterDecrypter
角色,请选择以下选项之一:
gcloud
运行以下命令:
gcloud kms keys add-iam-policy-binding KEY_NAME \
--location LOCATION \
--keyring RING_NAME \
--member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--project KEY_PROJECT_ID
替换以下内容:
KEY_NAME
:密钥的名称。LOCATION
:您创建密钥环的位置。RING_NAME
:密钥环的名称。PROJECT_NUMBER
:您的 Google Cloud 项目编号。KEY_PROJECT_ID
:您的密钥项目 ID。
控制台
- 在 Google Cloud 控制台中,前往密钥管理页面。
点击包含密钥的密钥环的名称。
点击要修改的密钥的名称。
点击权限标签页。
点击
授予访问权限。 系统会打开授予对密钥的访问权限窗格。在新的主账号字段中,输入 Compute Engine 服务代理的名称:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
将
PROJECT_NUMBER
替换为您的 Google Cloud项目编号。在选择角色菜单中,选择 Cloud KMS CryptoKey Encrypter/Decrypter。
点击保存。
创建具有 CMEK 的 TPU 虚拟机
您可以使用 TPU API 或 Queued Resources API 在创建 TPU 虚拟机时指定 CMEK。
TPU API
如需在使用 Cloud TPU API 创建 TPU 虚拟机时指定 CMEK,请使用 tpu-vm create
命令的 --boot-disk
实参来指定要使用的加密密钥:
gcloud compute tpus tpu-vm create TPU_NAME \
--zone ZONE \
--boot-disk kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
--version=TPU_RUNTIME_VERSION \
--accelerator-type=ACCLERATOR_TYPE
替换以下内容:
Queued Resources API
如需在使用排队资源 API 创建 TPU 虚拟机时指定 CMEK,请使用 queued-resources create
命令的 --bootdisk
实参来指定要使用的加密密钥:
gcloud compute tpus queued-resources create QUEUED_RESOURCE_ID \
--zone ZONE \
--node-id NODE_ID \
--boot-disk kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
--runtime-version=TPU_RUNTIME_VERSION \
--accelerator-type=ACCLERATOR_TYPE
替换以下内容:
QUEUED_RESOURCE_ID
:已排队的资源请求的用户分配 ID。ZONE
:您计划在其中创建 Cloud TPU 的可用区。NODE_ID
:用户分配的 Cloud TPU ID,该 ID 是在分配已排队的资源请求时创建的。PROJECT_ID
:您的 Google Cloud 项目 ID。REGION
:您创建密钥环的区域。RING_NAME
:密钥环的名称。KEY_NAME
:密钥的名称。TPU_RUNTIME_VERSION
:Cloud TPU 软件版本。ACCELERATOR_TYPE
:您要创建的 Cloud TPU 的加速器类型。如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本。
如需了解如何使用 GKE 通过 CMEK 创建 TPU 虚拟机,请参阅 GKE 文档中的使用客户管理的加密密钥。
已删除或已撤消的 CMEK
如果 CMEK 被撤消或删除,则使用已删除或已撤消的 CMEK 加密的启动磁盘的任何 TPU 虚拟机都不会自动关闭。在 TPU 虚拟机关闭或重新启动之前,它仍可访问加密启动磁盘上的数据。这样,如果您恢复对已撤消或已删除密钥的访问权限,便可以恢复数据。如果您重新启用密钥,则可以启动或修复 TPU 虚拟机,并且启动磁盘将成功解密和加载。