利用 vSphere 虚拟机加密功能,您可以创建加密虚拟机并加密现有虚拟机。由于所有包含敏感信息的虚拟机文件都会加密,因此虚拟机受保护。只有具备加密特权的管理员才能执行加密和解密任务。

使用哪些密钥

有两种类型的密钥用于加密。
  • ESXi主机会生成内部密钥并使用这些密钥加密虚拟机和磁盘。这些密钥将用作数据加密密钥 (DEK),并且是 XTS-AES-256 密钥。
  • vCenter Server会从 KMS 请求密钥。这些密钥将用作密钥加密密钥 (KEK),是 AES-256 密钥。vCenter Server仅存储每个 KEK 的 ID,但不存储密钥本身。
  • ESXi使用 KEK 加密内部密钥,并将已加密的内部密钥存储在磁盘上。ESXi不会将 KEK 存储在磁盘上。如果主机重新引导,vCenter Server 会从 KMS 请求具有相应 ID 的 KEK,并将其提供给 ESXi。然后,ESXi 可以根据需要解密内部密钥。

哪些内容加密

vSphere 虚拟机加密功能支持加密虚拟机文件、虚拟磁盘文件以及核心转储文件。
虚拟机文件
大多数虚拟机文件(特别是未存储在 VMDK 文件中的客户机数据)都会加密。这组文件包括但不限于 NVRAM、VSWP 和 VMSN 文件。 vCenter Server从 KMS 检索的密钥会解锁 VMX 文件中包含内部密钥和其他密钥的加密包。
如果使用 vSphere Client 创建加密虚拟机,可以独立于虚拟机文件加密和解密虚拟磁盘。如果使用 vSphere Web Client 创建加密虚拟机,所有虚拟磁盘在默认情况下都会加密。对于其他加密任务(适用于两个客户端),例如加密现有虚拟机,可以独立于虚拟机文件加密和解密虚拟磁盘。
注: 不能将已加密的虚拟磁盘与未加密的虚拟机相关联。
虚拟磁盘文件
加密虚拟磁盘 (VMDK) 文件中的数据不会以明文形式写入存储或物理磁盘,也不会以明文形式通过网络传输。VMDK 描述符文件主要是明文,但将 KEK 和内部密钥 (DEK) 的密钥 ID 包含在加密包中。
通过 vSphere API,您可以使用新的 KEK 执行浅层重新加密操作,或者使用新的内部密钥执行深层重新加密操作。
核心转储
启用了加密模式的 ESXi 主机上的核心转储始终都会加密。请参见 vSphere 虚拟机加密和核心转储
注: vCenter Server系统上的核心转储未加密。可保护对 vCenter Server 系统的访问。
注: 如需了解有关 vSphere 虚拟机加密可与之交互的设备和功能的限制信息,请参见 虚拟机加密互操作性

哪些内容未加密

与虚拟机关联的某些文件未加密或部分加密。
日志文件
日志文件未加密,因为它们不包含敏感数据。
虚拟机配置文件
存储在 VMX 和 VMSD 文件中的大多数虚拟机配置信息未加密。
虚拟磁盘描述符文件
为了支持在不使用密钥的情况下管理磁盘,大多数虚拟磁盘描述符文件都不会加密。

哪些用户可以执行加密操作

只有分配了加密操作特权的用户可以执行加密操作。特权组非常精细。请参见加密操作特权。默认管理员系统角色包括加密操作特权。新的无加密管理员角色支持加密操作特权除外的所有管理员特权。

您可以创建其他自定义角色,例如,允许一组用户加密虚拟机、但是禁止其解密虚拟机。

如何执行加密操作

vSphere ClientvSphere Web Client 支持许多加密操作。对于其他任务,您可以使用 vSphere API。

表 1. 用于执行加密操作的界面
接口 操作 信息
vSphere ClientvSphere Web Client 创建加密虚拟机

加密和解密虚拟机

本书。
vSphere Web Services SDK 创建加密虚拟机

加密和解密虚拟机

执行虚拟机的深层重新加密(使用不同的 DEK)。

执行虚拟机的浅层重新加密(使用不同的 KEK)。

《vSphere Web Services SDK 编程指南》

《VMware vSphere API 参考》

crypto-util 解密已加密核心转储、检查文件是否已加密并直接在 ESXi 主机上执行其他管理任务。 命令行帮助。

vSphere 虚拟机加密和核心转储