共用方式為

Azure VM 映像生成器的最佳做法

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集

本文介绍在使用 Azure VM 映像生成器时要遵循的最佳做法。

对图像模板使用资源锁

若要防止意外删除图像模板,请使用它们上的资源锁。 有关详细信息,请参阅 锁定 Azure 资源来保护基础结构

设置用于灾难恢复的映像模板

遵循 VM 映像生成器的可靠性建议,确保为灾难恢复设置映像模板。

启用 VM 启动优化

在 VM 映像生成器中启用 虚拟机(VM)启动优化 ,以提高 VM 的创建时间。

自备子网

指定自己的生成 VM 子网(subnetId)和 Azure Container Instances 的子网(containerInstanceSubnetId),以更严格地控制 VM 映像生成器在订阅中对网络资源的部署。 指定这些子网还会导致映像生成更快、更可靠。

可以在 “独立映像生成”部分阅读有关此网络拓扑的详细信息。

遵循最低特权原则

遵循 VM 映像生成器资源的 最小特权原则

映像模板

有权访问映像模板的主体可以运行、删除或篡改映像模板。 然后,此访问权限允许主体更改映像模板创建的映像。

确保只有必需的主体才能访问映像模板。

暂存资源组

VM 映像生成器使用订阅中的暂存资源组来自定义 VM 映像。 必须将此资源组视为敏感资源组,并仅限制对所需主体的访问。 请记住以下风险:

  • 由于自定义映像的过程在此资源组中发生,因此有权访问资源组的主体可能会损害映像生成过程。 例如,此类主体可以将恶意软件注入映像。

  • VM 映像生成器将与模板标识关联的特权和生成 VM 标识委托给此资源组中的资源。 有权访问资源组的主体可以访问这些标识。

  • VM 映像生成器会维护此资源组中定制器工件的副本。 有权访问资源组的主体可以检查这些副本。

模板标识

能访问您模板身份的主体可以访问该身份有权限的所有资源。 这组资源包括定制器项目(例如 shell 和 PowerShell 脚本)、分发目标(例如 Azure 计算库映像版本)和虚拟网络。

必须仅向此标识提供最低必要权限。

生成 VM 标识

有权访问生成 VM 标识的主体可以访问标识对其具有权限的所有资源。 此资源集包括可能通过此标识从生成 VM 内部使用的任何工件和虚拟网络。

必须仅向此标识提供最低必要权限。

Credentials

请勿将任何凭据放在映像模板或用于 Shell、PowerShell 和文件定制器和文件验证程序的文件中。 例如:

  • 在为定制器和验证程序指定内联命令时,请不要指定任何密码或其他登录凭据。 相反,此类凭据应存储在 Azure Key Vault 中,然后使用生成 VM 标识从生成 VM 访问。
  • 在定制器和验证器中提供文件时,请勿在文件中指定任何凭据。 相反,此类凭据应存储在 Azure Key Vault 中,然后使用生成 VM 标识从生成 VM 访问。
  • 在为映像模板中的定制器和验证程序指定脚本或源 URI 时,请勿指定包含 SAS URI 或任何凭据(如个人访问令牌)的 URI。 而是将此类文件存储在 Azure 存储帐户中,并使用模板标识访问这些文件。

尽管 Azure VM 映像生成器不禁止指定此类凭据,但强烈建议不要使用此类凭据。 如果确实指定了此类凭据,请确保它不提供对任何特权资源的访问权限,并尽快轮换。

如果要分发到 Azure Compute Gallery,务必还要遵循 Azure Compute Gallery 资源的最佳做法