一个外部 KMS、vCenter Server 系统和 ESXi 主机构成了 vSphere 虚拟机加密解决方案。

图 1. vSphere 虚拟机加密架构
密钥存储在 KMS 中。vCenter Server 将检索密钥,仅保留密钥 ID,并将密钥发送到 ESXi 主机。ESXi 主机使用 KMS 密钥对用于加密的内部密钥进行加密。

密钥管理服务器

vCenter Server 将从外部 KMS 请求密钥。KMS 将生成密钥并进行存储,并将密钥传递给 vCenter Server 以进行分发。

您可以使用 vSphere Web Client 或 vSphere API 将 KMS 实例的群集添加到 vCenter Server 系统。如果在群集中使用多个 KMS 实例,所有实例必须来自同一家供应商,并且必须复制密钥。

如果您的环境在不同环境中使用不同的 KMS 供应商,则可以为每个 KMS 添加 KMS 群集并指定默认 KMS 群集。所添加的第一个群集将成为默认群集。您可以在以后指定默认群集。

作为 KMIP 客户端,vCenter Server 利用密钥管理互操作协议 (Key Management Interoperability Protocol, KMIP),以便轻松使用您选择的 KMS。

vCenter Server

只有 vCenter Server 具有用于登录到 KMS 的凭据。ESXi 主机不具有这些凭据。vCenter Server 将从 KMS 获取密钥,并将其推送给 ESXi 主机。vCenter Server 不会存储 KMS 密钥,只会保留密钥 ID 的列表。

vCenter Server 将检查执行加密操作的用户的特权。您可以使用 vSphere Web Client 来分配加密操作特权,也可以将无加密管理员自定义角色分配给用户组。请参见加密任务的必备条件和必需特权

vCenter Server 会将加密事件添加到事件列表中,您可以通过 vSphere Web Client 事件控制台查看和导出该列表。每个事件都包括用户、时间、密钥 ID 和加密操作。

来自 KMS 的密钥用作密钥加密密钥 (Key Encryption Key, KEK)。

ESXi 主机

ESXi 主机负责处理加密工作流的几个方面。

  • vCenter Server 会在 ESXi 主机需要密钥时将密钥推送给该主机。该主机必须已启用加密模式。当前用户的角色必须具有加密操作特权。请参见加密任务的必备条件和必需特权加密操作特权
  • 确保在将已加密虚拟机的客户机数据存储到磁盘时对其进行加密。
  • 确保已加密虚拟机的客户机数据不会在未加密的情况下通过网络发送。

ESXi 主机生成的密钥在本文档中称为内部密钥。这些密钥通常用作数据加密密钥 (Data Encryption Key, DEK)。