利用 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 Web Client 创建加密虚拟机,所有虚拟磁盘在默认情况下都会加密。对于其他加密任务(例如,加密现有虚拟机),您可以独立于虚拟机文件加密和解密虚拟磁盘。

注:

不能将已加密的虚拟磁盘与未加密的虚拟机相关联。

虚拟磁盘文件

加密虚拟磁盘 (VMDK) 文件中的数据不会以明文形式写入存储或物理磁盘,也不会以明文形式通过网络传输。VMDK 描述符文件主要是明文,但将 KEK 和内部密钥 (DEK) 的密钥 ID 包含在加密包中。

通过 vSphere API,您可以使用新的 KEK 执行浅层重新加密操作,或者使用新的内部密钥执行深层重新加密操作。

核心转储

启用了加密模式的 ESXi 主机上的核心转储始终都会加密。请参见vSphere 虚拟机加密和核心转储

注:

vCenter Server 系统上的核心转储未加密。请务必保护对 vCenter Server 系统的访问。

注:

如需了解有关 vSphere 虚拟机加密可与之交互的设备和功能的限制信息,请参见虚拟机加密互操作性

哪些内容未加密

与虚拟机关联的某些文件未加密或部分加密。

日志文件

日志文件未加密,因为它们不包含敏感数据。

虚拟机配置文件

存储在 VMX 和 VMSD 文件中的大多数虚拟机配置信息未加密。

虚拟磁盘描述符文件

为了支持在不使用密钥的情况下管理磁盘,大多数虚拟磁盘描述符文件都不会加密。

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

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

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

如何执行加密操作

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

表 1. 用于执行加密操作的界面

界面

操作

信息

vSphere Web Client

创建加密虚拟机

加密和解密虚拟机

本书。

vSphere Web Services SDK

创建加密虚拟机

加密和解密虚拟机

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

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

vSphere Web Services SDK 编程指南

VMware vSphere API 参考

crypto-util

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

命令行帮助。

vSphere 虚拟机加密和核心转储