受保护的结构和受防护的 VM 主机托管商规划指南

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

本主题介绍为使受防护的虚拟机能够在结构上运行而需要做出的规划决策。 无论你是要升级现有的 Hyper-V 结构还是创建新结构,运行受防护的 VM 都需要两个主要组件:

  • 主机保护者服务 (HGS) 提供证明和密钥保护,使你可以确保受防护的 VM 仅在经批准且正常的 Hyper-V 主机上运行。 
  • 可以运行受防护的 VM(和常规 VM)的经批准且正常的 Hyper-V 主机 – 这些主机称为受保护的主机。

Diagram showing the H G S's attestation and key protection services are linked to the shielded virtual machine's guarded Hyper V hosts.

决策 #1:结构中的信任级别

如何实施主机保护服务和受保护的 Hyper-V 主机主要取决于你要在结构中实现的信任强度。 信任强度由证明模式决定。 有两个互斥的选项:

  1. TPM 信任的证明

    如果你的目标是帮助保护虚拟机免受恶意管理员或遭入侵结构的侵害,则需要使用 TPM 信任的证明。 此选项适用于多租户托管方案以及企业环境中的高价值资产,例如域控制器,或者 SQL 或 SharePoint 等内容服务器。 在允许主机运行受防护的 VM 之前,HGS 会衡量受虚拟机监控程序保护的代码完整性 (HVCI) 策略并强制要求其有效性。

  2. 主机密钥证明

    如果你的要求主要是根据合规性要求制定的,它们要求对虚拟机进行静态和运行中加密,那么,你需要使用主机密钥证明。 此选项适用于通用数据中心,在其中,Hyper-V 主机和结构管理员可以方便地访问虚拟机的来宾操作系统以完成日常维护和操作。

    在这种模式下,结构管理员全权负责确保 Hyper-V 主机的运行状况。 由于 HGS 不参与有关允许或不允许运行哪些组件的决策,因此恶意软件和调试器将按设计运行。

    但是,由于 VM 的工作进程 (VMWP.exe) 是轻型受保护进程 (PPL),因此受防护的 VM 会阻止尝试直接附加到进程(例如 WinDbg.exe)的调试器。 不会阻止其他调试技术(例如 LiveKd.exe 使用的技术)。 与受防护的 VM 不同,加密支持的 VM 的工作进程不作为 PPL 运行,因此传统调试器(例如 WinDbg.exe)将继续正常运行。

    从 Windows Server 2019 开始,已弃用名为“管理员信任的证明(基于 Active Directory)”的类似证明模式。

选择的信任级别决定了 Hyper-V 主机的硬件要求以及在结构上应用的策略。 如果需要,可以使用现有硬件和管理员信任的证明来部署受保护的结构,然后在硬件已升级并且需要增强结构安全性时将其转换为 TPM 信任的证明。

决策 #2:现有 Hyper-V 结构与新的独立 Hyper-V 结构

如果你有现有的结构(Hyper-V 或其他),则很有可能可以使用它来运行受防护的 VM 和常规 VM。 有些客户选择将受防护的 VM 集成到其现有工具和结构中,还有些客户出于业务原因将结构分开。

主机保护者服务的 HGS 管理员规划

在高度安全的环境中部署主机保护者服务 (HGS),无论是在专用物理服务器、受防护的 VM、隔离的 Hyper-V 主机上的 VM(与其保护的结构分开),还是使用不同 Azure 订阅逻辑隔离的 VM 上。

区域 详细信息
安装要求
  • 一台服务器(建议使用三节点群集来实现高可用性)
  • 对于回退,至少需要两台 HGS 服务器
  • 服务器可以是虚拟服务器或物理服务器(建议使用带有 TPM 2.0 的物理服务器;也支持 TPM 1.2)
  • Windows Server 2016 或更高版本的 Server Core 安装
  • 通过网络直接访问结构,以便能够运行 HTTP 或回退配置
  • 建议使用 HTTPS 证书进行访问验证
调整大小 每个中型(8 核/4 GB)HGS 服务器节点可以处理 1,000 个 Hyper-V 主机。
管理 指定特定的 HGS 管理人员。 他们应该与结构管理员不同。 相比之下,在管理隔离、物理部署和整体安全敏感度方面,可以像看待证书颁发机构 (CA) 一样处理 HGS 群集。
主机保护者服务 Active Directory 默认情况下,HGS 会安装自己的内部 Active Directory 用于管理。 这是一个独立的、自我管理的林,也是帮助将 HGS 与结构隔离的建议配置。

如果你已有一个用于隔离的高特权 Active Directory 林,可以使用该林而不是 HGS 默认林。 重要的是,HGS 未加入 Hyper-V 主机或结构管理工具所在的同一个林中的域。 这样做可以让结构管理员获取 HGS 的控制权。
灾难恢复 有三个选项:
  1. 在每个数据中心安装一个独立的 HGS 群集,并授权受防护的 VM 在主数据中心和备份数据中心运行。 这样就无需通过 WAN 拉伸群集,并可以隔离虚拟机,使它们仅在指定的站点中运行。
  2. 在两个(或更多)数据中心之间的拉伸群集上安装 HGS。 这样可以在 WAN 发生故障时提供复原能力,但会施加故障转移群集的限制。 不能将工作负载隔离到一个站点;授权在一个站点中运行的 VM 可以在任何其他站点上运行。
  3. 作为故障转移措施,将 Hyper-V 主机注册到另一个 HGS。
还应该通过导出每个 HGS 的配置来备份 HGS,以便始终可以在本地恢复。 有关详细信息,请参阅 Export-HgsServerStateImport-HgsServerState
主机保护者服务密钥 主机保护者服务使用两个非对称密钥对 – 一个加密密钥和一个签名密钥 – 每个密钥由一个 SSL 证书表示。 有两个选项可用于生成这些密钥:
  1. 内部证书颁发机构 – 可以使用内部 PKI 基础结构生成这些密钥。 这适用于数据中心环境。
  2. 公共信任的证书颁发机构 – 使用从公共信任的证书颁发机构获取的一组密钥。 这是主机托管商应使用的选项。
请注意,虽然可以使用自签名证书,但不建议将其用于除概念证明实验以外的部署方案。

除了使用 HGS 密钥外,主机托管商还可以使用“自带密钥”,在这种情况下,租户可以提供自己的密钥,以便某些(或所有)租户可以使用自己的特定 HGS 密钥。 此选项适用于可为租户提供带外过程以上传其密钥的主机托管商。
主机保护者服务密钥存储 为了获得尽可能强的安全性,我们建议创建 HGS 密钥并将其专门存储在硬件安全模块 (HSM) 中。 如果你不使用 HSM,强烈建议在 HGS 服务器上应用 BitLocker。

受保护的主机的结构管理规划

区域 详细信息
硬件
OS 我们建议为 Hyper-V 主机操作系统使用 Server Core 选项。
性能影响 根据性能测试,我们预计,运行受防护的 VM 和运行不受防护的 VM 的密度差异大约为 5%。 这意味着,如果给定的 Hyper-V 主机可以运行 20 个不受防护的 VM,则可以预期它可运行 19 个受防护的 VM。

确保验证规模是否适合典型的工作负载。 例如,写入密集型 IO 工作负载可能有一些离群值,这会进一步影响密度差异。
分支机构注意事项 从 Windows Server 版本 1709 开始,可为分支机构中作为受防护的 VM 在本地运行的虚拟化 HGS 服务器指定回退 URL。 当分支机构与数据中心内的 HGS 服务器断开连接时,可以使用回退 URL。 在旧版 Windows Server 上,在分支机构中运行的 Hyper-V 主机需要连接到主机保护者服务才能开机或者实时迁移受防护的 VM。 有关详细信息,请参阅分支机构注意事项