克隆加密虚拟机时,克隆将使用相同的密钥进行加密,除非您更改密钥。要更改密钥,可以使用 vSphere Client、PowerCLI或 API。

如果使用 PowerCLI 或 API,则可以在一个步骤中克隆加密的虚拟机并更改密钥。有关详细信息,请参见《vSphere Web Services SDK 编程指南》

可以在克隆期间执行以下操作。
  • 从未加密的虚拟机或虚拟机模板创建加密虚拟机。
  • 从加密虚拟机或虚拟机模板创建解密虚拟机。
  • 使用不同于源虚拟机的密钥重新加密目标虚拟机。
  • 从 vSphere 8.0 开始,对具有 vTPM 设备的虚拟机选择替换选项时,会以新的空白 vTPM 开始,该 vTPM 将获得自己的密钥和身份。
注: vSphere 8.0 包含 vpxd.clone.tpmProvisionPolicy 高级设置,可将 vTPM 的默认克隆行为设置为“替换”。
可以从加密虚拟机创建即时克隆虚拟机,但需注意,即时克隆与源虚拟机共享相同的密钥。无法重新加密源虚拟机或即时克隆虚拟机上的密钥。请参见 《vSphere Web Services SDK 编程指南》

前提条件

  • 必须配置并启用密钥提供程序。
  • 创建加密存储策略,或使用捆绑的示例,虚拟机加密策略。
  • 所需特权:
    • 加密操作.克隆
    • 加密操作.加密
    • 加密操作.解密
    • 加密操作.重新加密
    • 如果主机加密模式不是已启用,则您还必须具有加密操作.注册主机特权。

过程

  1. vSphere Client 清单中,导航到虚拟机。
  2. 右键单击虚拟机,然后选择克隆 > 克隆到虚拟机 >
  3. 浏览向导的各个页面。
    1. 选择名称和文件夹页面上,输入名称,然后选择要在其中进行部署的数据中心或文件夹。
    2. 选择计算资源上,选择您有权创建加密虚拟机的对象。有关加密任务的必备条件和所需特权的信息,请参见《vSphere 安全性》文档。
    3. 更改克隆的 vTPM 的密钥。

      克隆虚拟机会复制整个虚拟机,包括 vTPM 及其密钥,可用于确定系统的身份。要更改 vTPM 上的密钥,请对 TPM 置备策略选择替换

      注:

      替换 vTPM 的密钥时,将替换所有密钥,包括工作负载相关密钥。最佳做法是,在替换密钥之前,确保工作负载不再使用 vTPM。否则,克隆的虚拟机中的工作负载可能无法正常运行。

    4. 选择存储页面上,选择要存储模板配置文件和所有虚拟磁盘的数据存储或数据存储集群。可以在克隆操作过程中更改存储策略。例如,从使用加密策略更改为使用非加密策略会对磁盘进行解密。
    5. 选择克隆选项上,选择其他自定义选项。
    6. 即将完成页面上,检查信息并单击完成
  4. (可选) 更改克隆虚拟机的密钥。
    默认情况下,使用与父虚拟机相同的密钥来创建克隆虚拟机。最佳做法是更改克隆虚拟机的密钥,以确保多个虚拟机不会使用相同的密钥。
    1. 确定执行浅层重新加密还是深层重新加密。

      要使用不同的 DEK 和 KEK,请对克隆虚拟机执行深层重新加密。要使用不同的 KEK,请对克隆虚拟机执行浅层重新加密。要执行深层重新加密,必须关闭虚拟机电源。虚拟机打开电源时,如果虚拟机中存在快照,可以执行浅层重新加密操作。仅允许在单个快照分支(磁盘链)上对具有快照的加密虚拟机执行浅层重新加密。不支持多个快照分支。如果浅层重新加密在使用新 KEK 更新链中的所有链接之前失败,则仍然可以访问加密虚拟机(如果具有新旧 KEK)。

    2. 使用 API 对克隆执行重新加密。有关详细信息,请参见《vSphere Web Services SDK 编程指南》