使用 Azure VM 映像生成器
Azure VM 映像生成器是一种完全托管的 Azure 服务,可通过 Azure 资源提供程序进行访问。 资源提供程序通过指定源映像、要执行的自定义项以及要分发新映像的位置来配置它。 该示意图演示了高级别工作流:
可以使用 Azure PowerShell、Azure CLI 或 Azure 资源管理器模板或使用 Azure VM 映像生成器 DevOps 任务传递模板配置。 将配置提交到服务时,Azure 会创建 映像模板资源。 创建映像模板资源后,你的订阅中会创建一个暂存资源组,格式为 IT_\<DestinationResourceGroup>_\<TemplateName>_\(GUID)
。 暂存资源组包含 ScriptURI 属性中 File、Shell、PowerShell 自定义中引用的文件和脚本。
若要运行生成,请在 VM 映像生成器模板资源上调用运行。 然后,该服务为生成部署其他资源,例如 VM、网络、磁盘和网络适配器。
如果在不使用现有虚拟网络的情况下生成映像,VM 映像生成器还会部署公共 IP 和网络安全组。 VM 映像生成器使用安全外壳 (SSH) 或 Windows 远程管理 (WinRM) 协议连接到生成 VM。
如果选择现有虚拟网络,该服务将通过 Azure 专用链接部署,并且不需要公共 IP 地址。 有关详细信息,请参阅 Azure VM 映像生成器网络概述。
生成完成后,将删除除暂存资源组和存储帐户以外的所有资源。 可以通过删除映像模板资源来删除它们,也可以将其保留到位以再次运行生成。
有关多个示例,分步指南、配置模板和解决方案,请转到 Azure VM 映像生成器 GitHub 存储库。
安全性
为了帮助确保映像安全,Azure VM 映像生成器:
- 使你能够创建基线映像(即最低安全性和公司配置)并允许其他部门进一步自定义它们。 通过使用 Azure VM 映像生成器,可以使用源映像的最新修补版本快速重建一个黄金映像,从而保持这些映像的安全性和合规性。 使用 Azure VM 映像生成器还可以更轻松地生成可满足 Azure Windows 基线条件的映像。 有关详细信息,请参阅 Azure VM 映像生成器 - Windows 基线模板。
- 无需公开访问自定义项目即可提取自定义项目。 Azure VM 映像生成器可以使用 Azure 托管标识提取这些资源,可以根据需要使用 Azure 基于角色的访问控制 (Azure RBAC) 严格限制此标识的权限。 可以同时保留项目机密,并防止未经授权的篡改。
- 自定义项目、暂时性计算和存储资源的副本,以及生成的映像均安全地存储在订阅中,由 Azure RBAC 控制对它们的访问。 此级别的安全性也适用于用于创建自定义映像的生成 VM,有助于防止自定义脚本和文件复制到未知订阅中的未知 VM。 此外,还可以使用生成 VM 的隔离 VM 产品/服务来实现与其他客户工作负载的高度隔离。
- 使你能够将 Azure VM 映像生成器连接到现有虚拟网络,以便可以与现有配置服务器通信,例如 DSC(所需的状态配置请求服务器)、Chef 和 Puppet、文件共享或任何其他可路由的服务器和服务。
- 可以配置为将用户分配的标识分配给 Azure VM 映像生成器生成 VM(该 VM 由订阅中的 Azure VM 映像生成器服务创建,并用于构建和自定义映像)。 然后,你可以在自定义时使用这些标识来访问你的订阅中的 Azure 资源(包括机密)。 无需为 VM 映像生成器分配对这些资源的直接访问权限。
OS 支持
VM 映像生成器旨在与所有 Azure 市场基本操作系统映像搭配使用。
注意
此外,还可以在门户中开始生成和验证自定义映像。
机密 VM 和受信任启动支持
VM 映像生成器扩展了对 TrustedLaunchSupported 和 ConfidentialVMSupported 映像的支持,但存在某些约束。 下面是约束列表:
SecurityType | 支持状态 |
---|---|
TrustedLaunchSupported | 支持作为映像生成的源映像 |
ConfidentialVMSupported | 支持作为映像生成的源映像 |
TrustedLaunch | 不支持作为源映像 |
ConfidentialVM | 不支持作为源映像 |
注意
在使用 TrustedLaunchSupported 映像时,源和分发必须同时为 TrustedLaunchSupported 才能得到支持,这一点非常重要。 如果源为正常但分发为 TrustedLaunchSupported,或者源为 TrustedLaunchSupported 但分发为普通 Gen2,则不受支持。