将零信任原则应用于 Azure 中的虚拟机

注意

即将推出的直播 加入 Azure FastTrack 团队,讨论本文。 2024 年 10 月 23 日 | 上午 10:00 - 11:00 (UTC-07:00) 太平洋时间(美国和加拿大)。 在此处注册

摘要:若要将零信任原则应用于 Azure 虚拟机,必须使用专用资源组配置逻辑隔离、利用基于角色的访问控制 (RBAC)、安全虚拟机启动组件、启用客户管理的密钥和双重加密、控制已安装的应用程序、配置虚拟机的安全访问和维护,以及启用高级威胁检测和保护

本文提供将零信任原则应用于 Azure 中的虚拟机的步骤:

零信任原则 定义 满足者
显式验证 始终根据所有可用的数据点进行身份验证和授权。 使用安全访问。
使用最低权限访问 使用实时和恰好足够的访问权限 (JIT/JEA)、基于风险的自适应策略和数据保护,来限制用户访问。 利用基于角色的访问控制 (RBAC) 并控制虚拟机上运行的应用程序。
假定数据泄露 最大限度地减少影响范围,并对访问进行分段。 验证端对端加密并使用分析来获取可见性、驱动威胁检测并改善防御。 使用资源组隔离虚拟机,保护其组件,使用双重加密,并启用高级威胁检测和保护。

本文是系列文章中的一篇,旨在演示如何在 Azure 环境中应用零信任原则,该环境包括托管基于虚拟机的工作负载的分支虚拟网络 (VNet)。 有关概述,请参阅将零信任原则应用于 Azure 基础结构

虚拟机的逻辑体系结构

虚拟机的零信任原则应用于整个逻辑体系结构,从租户和目录级别一直到每个虚拟机中的数据和应用层。

下图显示了逻辑体系结构的组件。

此图为将零信任应用于 Azure 虚拟机的逻辑体系结构,显示了 Microsoft Entra ID 租户中的订阅、资源组和虚拟机组件。

在此图中:

  • A 是一组隔离在 Azure 订阅专用资源组中的虚拟机。
  • B 是单个虚拟机的逻辑体系结构,其中包含以下组件:应用程序、操作系统、磁盘、启动加载程序、OS 内核、驱动程序和受信任的平台模块 (TPM) 组件。

本文将介绍了如在此逻辑体系结构中应用零信任原则的步骤。

此图显示本文五个步骤中将零信任应用于 Azure 虚拟机的逻辑体系结构。

步长 任务 已应用零信任原则
1 通过将虚拟机部署到专用资源组来配置逻辑隔离。 假定数据泄露
2 利用基于角色的访问控制 (RBAC)。 显式验证
使用最低权限访问
3 保护虚拟机启动组件,包括启动加载程序、OS 内核和驱动程序。 安全保护受信任的平台模块 (TPM) 中的的密钥、证书和机密。 假定数据泄露
4 启用客户管理的密钥和双重加密。 假定数据泄露
5 控制安装在虚拟机上的应用程序。 使用最低权限访问
6 配置安全访问(逻辑体系结构图上未显示)。 显式验证
使用最低权限访问
假定数据泄露
7 设置虚拟机的安全维护(逻辑体系结构图上未显示)。 假定数据泄露
8 启用高级威胁检测和保护(逻辑体系结构图上未显示)。 假定数据泄露

步骤 1:为虚拟机配置逻辑隔离

首先隔离专用资源组中的虚拟机。 你可根据用途、数据分类和治理要求将虚拟机隔离到不同的资源组,例如一些虚拟机需要控制权限和监视。

你可使用专用资源组设置应用于资源组中所有虚拟机的策略和权限。 然后,你可以使用基于角色的访问控制 (RBAC) 创建对资源组中包含的 Azure 资源的最低特权访问权限。

有关详创建和管理资源组的细信息,请参阅使用 Azure 门户管理 Azure 资源组

首次创建虚拟机时,将虚拟机分配给资源组,如下所示。

将虚拟机分配到资源组的屏幕截图。

步骤 2:利用基于角色的访问控制 (RBAC)

零信任需要配置最低权限访问。 为此,你需要根据用户的角色、工作负载和数据分类,使用实时和恰到足的访问权限 (JIT/JEA) 来限制用户访问。

以下内置角色通常用于虚拟机访问:

  • 虚拟机用户登录:在门户中查看虚拟机并作为普通用户登录。
  • 虚拟机管理员登录:在门户中查看虚拟机并以管理员身份登录虚拟机。
  • 虚拟机参与者:创建和管理虚拟机,包括重置根用户的密码以及托管磁盘。 不授予对管理虚拟网络 (VNet) 的访问权限或向资源分配权限的能力。

如要将虚拟机加入 VNet,可使用自定义权限 Microsoft.Network/virtualNetworks/subnets/join/action 创建自定义角色。

当此自定义角色与托管标识和条件访问策略一起使用时,可以使用设备状态、数据分类、异常、位置和标识来强制实施多重身份验证,并根据已验证的信任精细地允许访问。

若要将控制范围扩展到系统之外,并允许具有 Microsoft Intelligent Security Graph 的 Microsoft Entra ID 租户支持安全访问,请转到虚拟机的“管理”刀片并启用“系统分配的托管标识”,如下所示。

启用系统分配的托管标识的屏幕截图。

注意

此功能仅适用于使用基于证书访问的 Azure 虚拟桌面、Windows Server 2019、Windows 10 和 Linux 发行版。

步骤 3:安全虚拟机启动组件

执行以下步骤:

  • 创建虚拟机时,请确保为启动组件配置安全性。 通过增强的虚拟机部署,你可选择安全类型并使用安全启动vTPM
  • 使用经验证的启动加载程序、OS 内核和由受信任的发布者签名的驱动程序安全地部署虚拟机,从而建立“根”目录。如果映像未由受信任的发布者签名,则虚拟机不会启动。
  • 在受信任的平台模块中安全地保护虚拟机中的密钥、证书和机密。
  • 获取整个启动链的完整性的见解和置信度。
  • 确保工作负载受信任且可验证。 vTPM 通过测量虚拟机的整个启动链(UEFI、OS、系统和驱动程序)来启用证明

通过增强的虚拟机部署,你可选择安全类型,并在创建虚拟机时使用安全启动和 vTPM,如下所示。

指定虚拟机的安全功能的屏幕截图。

步骤 4:启用客户管理的密钥和双重加密

使用客户管理的密钥和双重加密可确保磁盘被导出后,无法读取或无法正常工作。 通过确保密钥私有,并且磁盘经双重加密,可防止尝试提取磁盘信息的违规行为。

有关如何使用 Azure Key Vault 配置客户管理的加密密钥的信息,请参阅使用 Azure 门户为托管磁盘启用使用客户管理的密钥进行服务器端加密。 使用 Azure Key Vault 会产生额外的费用。

启用 Azure 磁盘存储的服务器端加密

  • 符合 FIPS 140-2 标准的透明加密,采用 AES 256 加密
  • CMK 可更灵活地管理访问控制。
  • 硬件 (HSM) 或软件定义的加密。

在主机上启用服务器端加密,以便对虚拟机数据进行端到端加密。

完成这些过程后,可以使用客户管理的加密密钥来加密虚拟机中的磁盘。

你可在磁盘边栏选项卡上为虚拟机配置选择加密类型。 对于加密类型,请选择此处的通过平台管理的密钥和客户管理的密钥进行双重加密

选择虚拟机加密类型的屏幕截图。

步骤 5:控制虚拟机上安装的应用程序

控制安装在虚拟机上的应用程序非常重要:

  • 浏览器扩展 (API) 难以保护,其可能会导致恶意 URL 传播。
  • 未批准的应用可以不打补丁,因为它们是影子 IT 对象(IT 团队未准备好或不知道这些应用已安装)。

你可使用虚拟机应用程序功能来控制安装在虚拟机上的应用程序。 你可使用此功能,选择要安装的虚拟机应用程序。 该功能使用 Azure Compute Gallery 来简化虚拟机应用程序的管理。 与 RBAC 一起使用时,你可确保用户只能使用受信任的应用程序。

你可在虚拟机配置的高级边栏选项卡上选择虚拟机应用程序,如下所示。

配置虚拟机的应用程序的屏幕截图。

步骤 6:配置安全访问

配置安全访问,你需要:

  • 在 Azure 环境中配置直接访问虚拟机的组件之间的安全通信
  • 设置带有条件访问的多重身份验证
  • 使用特权访问工作站 (PAW)

此图显示用于配置对虚拟机的安全访问的逻辑体系结构。

在图中:

  • 带有条件访问的多重身份验证是在 Microsoft Entra ID 和相关门户中设置的。
  • 管理员使用特权访问工作站 (PAW) 直接访问虚拟机。

在 Azure 环境中为虚拟机配置安全通信

首先,请确保 Azure 环境中的组件之间的通信是安全的。

在参考体系结构中,Azure Bastion 提供与虚拟机的安全连接。 Azure Bastion 充当 RDP/SSH 代理,不会与物理系统的 RDP 协议进行交互。 这也使你可减少面向公众的 IP 地址的数量。

下图显示了虚拟机的安全通信组件。

此图显示 Azure IaaS 参考体系结构中虚拟机的安全通信组件。

设置带有条件访问的多重身份验证

步骤 2 中利用基于角色的访问控制,你配置了 Microsoft Entra 集成和托管标识。 这样,就可以为 Azure 虚拟桌面设置 Azure 多重身份验证,或者为运行 Windows Server 2019 或更高版本的服务器设置。 你还可使用 Microsoft Entra 凭证登录到 Linux VM。 这样做的额外好处是,连接到虚拟机的计算机也必须注册到 Microsoft Entra ID 租户才允许进行连接。

配置带有条件访问的多重身份验证和相关策略时,请使用为零信任设置的建议策略作为指南。 这包括无需管理设备的起点策略。 理想情况下,访问虚拟机的设备是托管的,你可以实施建议零信任的企业策略。 有关详细信息,请参阅常见零信任标识和设备访问策略

下图显示了建议的零信任策略。

此图显示零信任标识和设备访问策略,用于三个保护级别:起点、企业和专用安全性。

请记住,用户名和密码 100% 会泄露。 使用多重身份验证可将泄露的风险降低 99.9%。 这需要 Microsoft Entra ID P1 许可证。

注意

你也可以使用用于连接到 Azure 中的虚拟机的 VPN。 但是,你要确保使用方法能够显式地进行验证。 只要创建了一个“受信任”的隧道,无论使用哪种隧道都会比具有高度验证的特定连接的风险更大。

如果你不是来自受信任、经过验证且安全的来源,那么网络、传输或应用层的安全性再高也没有意义。

使用 PAW

使用特权访问工作站 (PAW) 确保访问虚拟机的设备正常运行。 PAW 专门为特权访问配置,以便管理员使用具有以下功能的设备:

  • 限制本地管理员访问的安全控制和策略。
  • 将攻击面最小化,仅限于执行敏感管理任务所绝对需要的范围内的生产力工具。

有关部署选项的详细信息,请参阅特权访问部署

步骤 7:设置虚拟机的安全维护

虚拟机的安全维护包括:

  • 使用反恶意软件
  • 自动执行虚拟机更新

在虚拟机上使用反恶意软件

反恶意软件有助于保护你的虚拟机免受恶意文件和广告软件等威胁。你可使用来自 Microsoft、Symantec、Trend Micro 和 Kaspersky 等供应商的反恶意软件。

Microsoft 反恶意软件是一种免费资源,可提供实时保护功能,以帮助检测、隔离和根除恶意软件、间谍软件和病毒:

  • 在后台运行,需要用户交互
  • 在下载、安装或运行不需要的软件或恶意软件时发布警报
  • 提供默认安全配置和反恶意软件监视
  • 计划的扫描
  • 签名更新
  • 反恶意软件引擎和平台更新
  • 主动保护
  • 示例报告
  • 排除项
  • 反恶意软件事件收集

自动执行虚拟机更新

自动更新系统可确保它们免受最新的恶意软件和错误配置攻击。 在受信任的平台验证过程中,会在帮助下自动进行更新。

针对 Azure 虚拟机进行维护和更新,以确保系统针对配置不安全因素进行强化:

  • Azure 自动化更新管理可帮助管理更新过程。 使用此实用工具,你可检查系统的更新状态、管理、计划和重新启动服务器。
  • Azure 虚拟机代理 用于管理虚拟机,并让你能够使用扩展进行管理。

更新管理支持的操作系统包括:

  • 每个 Windows 虚拟机 - 更新管理每天对每台计算机执行两次扫描。
  • 每个 Linux 虚拟机 - 更新管理每小时执行一次扫描。

请参阅下文中的附加指南:

步骤 8:启用高级威胁检测和保护

Azure 基础结构的威胁防护由 Microsoft Defender for Cloud 提供。 预配 Microsoft Defender for Servers 时,此保护将扩展到虚拟机,如下图所示。

此图为逻辑体系结构,显示了 Microsoft Defender for Cloud 以及 Microsoft Defender for Servers 如何为虚拟机提供威胁检测和保护。

在图中:

  • 如将零信任原则应用于 Azure IaaS 概述文章中所述,Defender for Cloud 在 Azure 订阅级别或包含多个 Azure 订阅的 Azure 管理组级别启用。
  • 除了启用 Defender for Cloud 之外,还预配了 Defender for Servers。

高级威胁防护基于 Microsoft 威胁情报验证虚拟机上发生的活动。 它用于查找表明可能存在违规的特定配置和活动。 它可实现“显式验证”和“假定数据泄露”零信任原则。

Microsoft Defender for Servers 包含以下内容:

技术插图

这些插图是这些文章中参考插图的副本。 下载并自定义你自己的组织和客户。 将 Contoso 徽标替换为你自己的徽标。

说明
缩略图图片 1下载 Visio
更新时间:2024 年 10 月
将零信任原则应用于 Azure IaaS
将这些插图与以下文章一起使用:
- 概述
- Azure 存储
- 虚拟机
- Azure 辐射虚拟网络
- Azure 中心虚拟网络
缩略图图片 2下载 Visio
更新时间:2024 年 10 月
将零信任原则应用于 Azure IaaS — 一页海报
有关将零信任原则应用于 Azure IaaS 环境的过程的一页概述。

有关其他技术插图,请参阅面向 IT 架构师和实现者的零信任插图。

保护 Azure 虚拟机磁盘

培训 保护 Azure 虚拟机磁盘
了解如何使用 Azure 磁盘加密 (ADE) 加密现有和新的虚拟机上的 OS 与数据磁盘。
在本模块中,你将了解如何:
  • 确定哪种加密方法最适合自己的虚拟机。
  • 使用 Azure 门户加密现有的虚拟机磁盘。
  • 使用 PowerShell 加密现有的虚拟机磁盘。
  • 修改 Azure 资源管理器模板以对新虚拟机自动执行磁盘加密。
  • 有关 Azure 的更多培训,请参阅完整的 Microsoft 目录:
    浏览全部内容 - 培训 | Microsoft Learn

    在 Azure 实现虚拟主机安全性

    培训 在 Azure 实现虚拟主机安全性
    在此学习路径中,了解如何在 Azure 中保护和强化虚拟机。

    有关 Azure 中虚拟机的更多培训,请参阅 Microsoft 目录中的以下资源:
    Azure 虚拟机 | Microsoft Learn

    后续步骤

    请参阅以下有关将零信任原则应用于 Azure 的其他文章:

    参考