创建 Windows 受防护的 VM 模板磁盘

适用范围:Windows Server 2022、Windows Server 2016、Windows Server 2019

与常规 VM 一样,可以创建 VM 模板(例如,虚拟机管理器 (VMM) 中的 VM 模板),使租户和管理员能够使用模板磁盘在构造上轻松部署新 VM。 由于受防护的 VM 是安全敏感型资产,因此需要执行其他步骤来创建支持防护的 VM 模板。 本主题介绍了在 VMM 中创建受防护的模板磁盘和 VM 模板的步骤。

若要了解本主题在部署受防护的 VM 的整个过程中的适用性,请参阅受保护的主机和受防护的 VM 的托管服务提供商配置步骤

准备操作系统 VHDX

首先准备一个 OS 磁盘,然后通过受防护的模板磁盘创建向导运行该磁盘。 此磁盘将用作租户虚拟机中的操作系统磁盘。 你可以使用任何现有工具来创建此磁盘,例如 Microsoft 桌面映像服务管理器 (DISM),或者手动设置具有空白 VHDX 的虚拟机并将操作系统安装到该磁盘上。 设置磁盘时,必须遵守特定于第 2 代和/或受保护虚拟机的以下要求:

VHDX 的要求 原因
必须是 GUID 分区表 (GPT) 磁盘 第 2 代虚拟机需要,为了支持 UEFI
磁盘类型必须是“基本”而不是“动态”。
注意:这是指逻辑磁盘类型,而不是 Hyper-V 支持的“动态扩展”VHDX 功能。
BitLocker 不支持动态磁盘。
磁盘至少有两个分区。 一个分区必须包括安装 Windows 的驱动器。 该驱动器是 BitLocker 将进行加密的驱动器。 另一个分区是活动分区,该分区包含引导加载程序,并保持未加密状态,以便可以启动计算机。 BitLocker 需要
文件系统为 NTFS BitLocker 需要
VHDX 上安装的操作系统为以下操作系统之一:
- Windows Server 2019、Windows Server 2016、Windows Server 2012 R2 或 Windows Server 2012
- Windows 10、Windows 8.1 和 Windows 8
需要,为的是支持第 2 代虚拟机和 Microsoft 安全启动模板
操作系统必须是通用的(运行 sysprep.exe) 模板预配涉及为特定租户的工作负载专门定制虚拟机

注意

如果使用 VMM,请勿在此阶段将模板磁盘复制到 VMM 库中。

在模板操作系统上运行 Windows 更新

在模板磁盘上,验证操作系统是否安装了所有最新的 Windows 更新。 最近发布的更新提高了端到端保护过程的可靠性,如果模板操作系统不是最新的,则该过程可能无法完成。

使用模板磁盘向导准备和保护 VHDX

若要将模板磁盘与受防护的 VM 一起使用,必须使用受防护模板磁盘创建向导准备磁盘并使用 BitLocker 对其进行加密。 此向导将为磁盘生成哈希,并将其添加到卷签名目录 (VSC) 中。 将使用你指定的证书对 VSC 进行签名,并在预配过程中使用该证书,以确保为租户部署的磁盘未被更改或替换为租户不信任的磁盘。 最后,在磁盘的操作系统上安装 BitLocker(如果尚未安装),以便在虚拟机配置期间为磁盘加密做好准备。

注意

模板磁盘向导将修改你就地指定的模板磁盘。 你可能希望在运行向导之前制作未受保护的 VHDX 的副本,以便稍后对磁盘进行更新。 你将无法修改使用模板磁盘向导保护的磁盘。

在运行 Windows Server 2016、Windows 10(安装有远程服务器管理工具、RSAT)或更高版本的计算机(不需要是受保护的主机或 VMM 服务器)上执行以下步骤:

  1. 将在准备操作系统 VHDX 中创建的通用 VHDX 复制到服务器(如果还没有复制)。

  2. 若要在本地管理服务器,请在服务器上从“远程服务器管理工具”安装“受防护的 VM 工具”功能。

    Install-WindowsFeature RSAT-Shielded-VM-Tools -Restart
    

    还可以从安装了 Windows 10 远程服务器管理工具的客户端计算机管理服务器。

  3. 获取或创建证书以对 VHDX 进行 VSC 签名,它将成为新的受防护的虚拟机的模板磁盘。 当租户创建其防护数据文件并授权他们信任的磁盘时,系统将向其显示有关此证书的详细信息。 因此,请务必从你和租户共同信任的证书颁发机构获取此证书。 在你既是宿主又是租户的企业方案中,可以考虑从你的 PKI 颁发此证书。

    如果你正在设置测试环境,并且只想使用自签名证书准备模板磁盘,请运行类似于以下内容的命令:

    New-SelfSignedCertificate -DnsName publisher.fabrikam.com
    
  4. 从“开始”菜单上的“管理工具”文件夹中启动模板磁盘向导,或者在命令提示符下键入 TemplateDiskWizard.exe。

  5. 在“证书”页上,单击“浏览”以显示证书列表。 选择用于准备磁盘模板的证书。 单击“确定”,然后单击“下一步”

  6. 在虚拟磁盘页面上,单击“浏览”以选择已准备的 VHDX,然后单击“下一步”。

  7. 在“签名目录”页上,提供容易记住的磁盘名称和版本。这些字段用于在准备磁盘后帮助你识别磁盘。

    例如,对于磁盘名称,可以键入 WS2016,对于版本,可以键入 1.0.0.0

  8. 在向导的“查看设置”页上查看你的选择。 单击“生成”时,向导将在模板磁盘上启用 BitLocker,计算磁盘的哈希,并创建存储在 VHDX 元数据中的卷签名目录。

    等待准备过程完成,然后再尝试装载或移动模板磁盘。 此过程可能需要一段时间才能完成,具体取决于磁盘的大小。

    重要

    模板磁盘只能与受防护的安全 VM 预配过程一起使用。 尝试使用模板磁盘启动常规(不受防护的)VM 可能会导致停止错误(蓝屏),并且不受支持。

  9. 在“摘要”页上,将显示有关磁盘模板、用于对 VSC 进行签名的证书以及证书颁发者的信息。 单击“关闭”退出向导。

如果使用 VMM,请按照本主题其余部分中的步骤操作,将模板磁盘合并到 VMM 中受防护的 VM 模板中。

将模板磁盘复制到 VMM 库

如果使用 VMM,则在创建模板磁盘后,需要将其复制到 VMM 库共享,使宿主在预配新 VM 时可以下载并使用该磁盘。 使用以下过程将模板磁盘复制到 VMM 库,然后刷新库。

  1. 将 VHDX 文件复制到 VMM 库共享文件夹。 如果使用了默认 VMM 配置,请将模板磁盘复制到 \\vmmserver\MSSCVMMLibrary\VHDs。<>

  2. 刷新库服务器。 打开“库”工作区,展开“库服务器”,右键单击要刷新的库服务器,然后单击“刷新”。

  3. 接下来,向 VMM 提供有关模板磁盘上安装的操作系统的信息:

    a. 在“库”工作区的库服务器上查找新导入的模板磁盘。

    b. 右键单击磁盘,然后单击“属性”。

    c. 对于“操作系统”,请展开列表,并选择磁盘上安装的操作系统。 选择操作系统会向 VMM 指示 VHDX 不为空。

    d. 更新了属性之后,单击“确定”

磁盘名称旁边的小盾牌图标表示它是受防护的 VM 的准备好的模板磁盘。 还可以右键单击列标题并切换“受防护”列,以查看指示磁盘是用于常规 VM 部署还是受防护的 VM 部署的文本表示形式。

Shielded vm template disk

使用准备好的模板磁盘在 VMM 中创建受防护的 VM 模板

在 VMM 库中使用准备好的模板磁盘,即可为受防护的 VM 创建 VM 模板。 受防护的 VM 的 VM 模板与传统 VM 模板略有不同,即有些设置是固定的(第 2 代 VM、UEFI 和安全启动已启用,等等),而有些设置不可用(租户自定义设置仅限于 VM 的少数特定属性)。 若要创建 VM 模板,请执行以下步骤:

  1. 在“库”工作区中,单击顶部“主页”选项卡上的“创建 VM 模板”。

  2. 在“选择源” 页上,单击“使用现有 VM 模板或库中存储的虚拟硬盘” ,然后单击“浏览”

  3. 在显示的窗口中,从 VMM 库中选择一个准备好的模板磁盘。 若要更轻松地识别准备好的磁盘,请右键单击列标题并启用“受防护”列。 单击“确定”,然后单击“下一步”。

  4. 指定 VM 模板名称,并选择性地输入说明,然后单击“下一步”。

  5. 在“配置硬件”页上,指定从此模板创建的 VM 的功能。 确保至少有一个 NIC 可用,并在 VM 模板上进行配置。 租户连接到受防护的 VM 的唯一方法是通过远程桌面连接、Windows 远程管理或其他通过网络协议运行的预配置的远程管理工具。

    如果选择在 VMM 中利用静态 IP 池,而不是在租户网络上运行 DHCP 服务器,则需要提醒租户注意此配置。 当租户提供其防护数据文件(其中包含 VMM 的无人参与文件)时,他们需要为静态 IP 池信息提供特殊的占位符值。 有关租户无人参与文件中 VMM 占位符的详细信息,请参阅创建答案文件

  6. 在“配置操作系统”页上,VMM 将仅显示受防护的 VM 的几个选项,包括产品密钥、时区和计算机名称。 某些安全信息(如管理员密码和域名)由租户通过防护数据文件(.PDK 文件)指定。

    注意

    如果选择在此页上指定产品密钥,请确保它对于模板磁盘上的操作系统有效。 如果使用的产品密钥不正确,则 VM 创建将失败。

创建模板后,租户可以使用它创建新的虚拟机。 需要验证 VM 模板是否是可供租户管理员用户角色使用的资源之一(在 VMM 中,用户角色位于“设置”工作区)。

使用 PowerShell 准备和保护 VHDX

作为运行模板磁盘向导的替代方法,可以将模板磁盘和证书复制到运行 RSAT 的计算机,并运行 Protect-TemplateDisk 以启动签名过程。 以下示例使用由 TemplateName 和 Version 参数指定的名称和版本信息。 提供给 -Path 参数的 VHDX 将被更新的模板磁盘覆盖,因此请确保在运行命令之前复制该信息。

# Replace "THUMBPRINT" with the thumbprint of your template disk signing certificate in the line below
$certificate = Get-Item Cert:\LocalMachine\My\THUMBPRINT

Protect-TemplateDisk -Certificate $certificate -Path "WindowsServer2019-ShieldedTemplate.vhdx" -TemplateName "Windows Server 2019" -Version 1.0.0.0

模板磁盘现已准备好用于预配受防护的 VM。 如果使用 System Center Virtual Machine Manager 部署 VM,现在可以将 VHDX 复制到 VMM 库。

可能还需要从 VHDX 中提取卷签名目录。 此文件用于向想要使用模板的 VM 所有者提供有关签名证书、磁盘名称和版本的信息。 他们需要将此文件导入防护数据文件向导,以授权你(即拥有签名证书的模板作者)为他们创建该模板磁盘以及将来的模板磁盘。

若要提取卷签名目录,请在 PowerShell 中运行以下命令:

Save-VolumeSignatureCatalog -TemplateDiskPath 'C:\temp\MyLinuxTemplate.vhdx' -VolumeSignatureCatalogPath 'C:\temp\MyLinuxTemplate.vsc'

后续步骤

其他参考