虚拟可信平台模块简介

虚拟可信平台模块 (vTPM) 是物理可信平台模块 (TPM) 2.0 芯片的基于软件的表示形式。使用 vTPM 功能,您可以将 TPM 2.0 虚拟加密处理器添加到虚拟机。Google Cloud VMware Engine 支持 vTPM。

您可以使用默认密钥提供方、Cloud Key Management Service 或外部 KMS 来创建 vTPM。Google 建议您在 vCenter 中将密钥提供方配置为默认密钥提供方,然后再创建 vTPM。

将 vTPM 添加到虚拟机

您可以通过向虚拟机添加“可信平台模块”虚拟设备,将 vTPM 添加到虚拟机。如需了解详情,请参阅 vSphere 虚拟 TPM (vTPM) 问答

工作负载虚拟机的 vTPM 和虚拟机加密

工作负载虚拟机使用存储在虚拟可信平台模块 (vTPM) 中的内部种子来加密工作负载数据。添加 vTPM 后,系统默认会对虚拟机主目录文件进行加密,但不包括虚拟机磁盘 (VMDK)。如需加密 VMDK,您必须单独加密它们。

数据存储和前提条件

系统会将 vTPM 数据存储在虚拟机的 NVRAM 文件(位于虚拟机的主目录中)中,同时存储其他虚拟机元数据。如需使用 vTPM,您必须满足以下要求:

  • 配置密钥提供程序:您必须配置密钥提供程序,因为 vTPM 功能需要虚拟机加密。虚拟机加密功能可保护虚拟机主目录中的 vTPM 数据。

重新设置具有 vTPM 的虚拟机的密钥的主要注意事项

使用 vTPM 设备重新设置虚拟机密钥只会更新用于保护虚拟机主目录中 vTPM 数据的加密密钥。在实例化后,您无法更改 vTPM 中的种子。

  • 向虚拟机添加 vTPM 设备时,该设备会生成一个内部种子。在客机操作系统上运行的应用可以使用此种子生成密钥或加密密钥来保护应用数据。
  • 另外,在虚拟机上启用 vTPM 需要使用外部密钥提供程序进行虚拟机文件加密。VMDK 加密是可选的,默认处于停用状态。
  • 来自外部密钥提供方的加密密钥会对虚拟机文件(以及 VMDK,如果您启用了加密)进行加密。此密钥与存储在 vTPM 设备中的种子或应用使用该种子生成的密钥是分开的。
  • 您必须将外部密钥提供方配置为 vCenter 中的默认密钥提供方。
  • 使用 vTPM 设备重新加密虚拟机时,系统会使用外部密钥提供方提供的新加密密钥重新加密虚拟机文件(如果您启用了加密,则还会重新加密 VMDK)。此操作不会影响存储在 vTPM 设备中的种子或密钥。

加密虚拟机的要求

您可以使用默认的Google-owned and managed key 提供方或 Cloud Key Management Service 来管理虚拟机的加密密钥。

如果您为私有云中的任何虚拟机启用了 VM 加密(或 vTPM),并使用 KMS 管理加密密钥,则在轮替 KMS 密钥后,您必须重新加密(浅层换锁)每个虚拟机。

浅层换锁仅替换密钥加密密钥 (KEK),不会更改虚拟机的 DEK。您通常可以使用 vSphere Client 中的重新加密操作来触发浅层重新加密。

在此操作期间,系统会使用新的 KEK 重新封装(重新加密)现有 DEK。此过程非常快速,因为它不会重写磁盘上的实际数据,而只会更新包含加密 DEK 的小型密钥包。如需了解详情,请参阅以下 VMware 文档:

未能重新设置加密虚拟机的密钥的风险

如果您在删除轮替后的(旧)KMS 密钥版本之前未能重新设置加密虚拟机的密钥,可能会导致以下问题:

  • vMotion 失败:如果您在 KMS 密钥轮替后但在执行虚拟机换锁之前重新启动目标主机或将目标主机添加到集群,则 ESXi 主机在 vMotion 期间无法解密虚拟机 DEK。
  • 开机失败:如果主机重新启动或清除其本地密钥缓存,则无法从 KMS 重新获取密钥。如果您从 KMS 中删除了必需的密钥,主机将无法解密 DEK,从而导致加密虚拟机无法开机。

在工作负载虚拟机上执行重新设置密钥操作的步骤

  1. 在 vSphere Client 中,右键点击虚拟机。
  2. 依次选择 VM 政策 > 重新加密
  3. 在随即显示的对话框中确认重新加密请求。
  4. 等待任务完成。
  5. 通过将虚拟机迁移到您在 KMS 密钥轮替后重启或添加到集群的主机来验证重新密钥。