将零信任原则应用于 Azure 中的虚拟机
注意
即将推出的直播 加入 Azure FastTrack 团队,讨论本文。 2024 年 10 月 23 日 | 上午 10:00 - 11:00 (UTC-07:00) 太平洋时间(美国和加拿大)。 在此处注册。
摘要:若要将零信任原则应用于 Azure 虚拟机,必须使用专用资源组配置逻辑隔离、利用基于角色的访问控制 (RBAC)、安全虚拟机启动组件、启用客户管理的密钥和双重加密、控制已安装的应用程序、配置虚拟机的安全访问和维护,以及启用高级威胁检测和保护。
本文提供将零信任原则应用于 Azure 中的虚拟机的步骤:
零信任原则 | 定义 | 满足者 |
---|---|---|
显式验证 | 始终根据所有可用的数据点进行身份验证和授权。 | 使用安全访问。 |
使用最低权限访问 | 使用实时和恰好足够的访问权限 (JIT/JEA)、基于风险的自适应策略和数据保护,来限制用户访问。 | 利用基于角色的访问控制 (RBAC) 并控制虚拟机上运行的应用程序。 |
假定数据泄露 | 最大限度地减少影响范围,并对访问进行分段。 验证端对端加密并使用分析来获取可见性、驱动威胁检测并改善防御。 | 使用资源组隔离虚拟机,保护其组件,使用双重加密,并启用高级威胁检测和保护。 |
本文是系列文章中的一篇,旨在演示如何在 Azure 环境中应用零信任原则,该环境包括托管基于虚拟机的工作负载的分支虚拟网络 (VNet)。 有关概述,请参阅将零信任原则应用于 Azure 基础结构。
虚拟机的逻辑体系结构
虚拟机的零信任原则应用于整个逻辑体系结构,从租户和目录级别一直到每个虚拟机中的数据和应用层。
下图显示了逻辑体系结构的组件。
在此图中:
- A 是一组隔离在 Azure 订阅专用资源组中的虚拟机。
- B 是单个虚拟机的逻辑体系结构,其中包含以下组件:应用程序、操作系统、磁盘、启动加载程序、OS 内核、驱动程序和受信任的平台模块 (TPM) 组件。
本文将介绍了如在此逻辑体系结构中应用零信任原则的步骤。
步长 | 任务 | 已应用零信任原则 |
---|---|---|
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 会产生额外的费用。
- 符合 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 地址的数量。
下图显示了虚拟机的安全通信组件。
设置带有条件访问的多重身份验证
在步骤 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 虚拟机 - 更新管理每小时执行一次扫描。
请参阅下文中的附加指南:
- 规划部署以在 Azure 中更新 Windows VM
- 使用Azure 专用链接安全地将网络连接到 Azure 自动化确保虚拟机以隔离的控制方式进行连接,而不是通过 Internet 进行更新。
步骤 8:启用高级威胁检测和保护
Azure 基础结构的威胁防护由 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 包含以下内容:
- 访问 Microsoft Defender for Endpoint 数据,这些数据与终结点检测和响应 (EDR) 的漏洞、安装的软件和终结点警报相关。
- Defender for Cloud 的服务器集成漏洞评估扫描程序。
- 使用 Microsoft Defender for Endpoint 实时发现漏洞和错误配置,无需其他代理或定期扫描。
- Defender for Cloud 的适用于 Azure 和混合计算机的 集成 Qualys 扫描程序,你可使用领先的工具进行实时漏洞识别,而无需 Qualys 许可证。
- 在 Defender for Cloud 中实现实时虚拟机访问。 这将为 RDP/SSH 创建显式拒绝规则,并在需要时在服务器级别提供 JIT 访问权限,并允许限制访问期限。
- Defender for Cloud 中的文件完整性监视使你能够更改对操作系统、应用程序软件和其他更改的文件和注册表的监视,以便验证文件系统的完整性。
- Defender for Cloud 中的自适应应用程序控制提供了一个自动化解决方案,用于创建和定义已知安全应用程序的允许列表,并在新应用程序运行时生成安全警报,而不是定义为安全使用的应用程序。
- Defender for Cloud 中的自适应网络强化使用机器学习算法来计算当前流量、威胁情报、入侵指标和已知受信任的配置,以提供强化网络安全组的建议。
技术插图
这些插图是这些文章中参考插图的副本。 下载并自定义你自己的组织和客户。 将 Contoso 徽标替换为你自己的徽标。
项 | 说明 |
---|---|
下载 Visio 更新时间:2024 年 10 月 |
将零信任原则应用于 Azure IaaS 将这些插图与以下文章一起使用: - 概述 - Azure 存储 - 虚拟机 - Azure 辐射虚拟网络 - Azure 中心虚拟网络 |
下载 Visio 更新时间:2024 年 10 月 |
将零信任原则应用于 Azure IaaS — 一页海报 有关将零信任原则应用于 Azure IaaS 环境的过程的一页概述。 |
有关其他技术插图,请参阅面向 IT 架构师和实现者的零信任插图。
推荐的培训
保护 Azure 虚拟机磁盘
培训 | 保护 Azure 虚拟机磁盘 |
---|---|
了解如何使用 Azure 磁盘加密 (ADE) 加密现有和新的虚拟机上的 OS 与数据磁盘。 在本模块中,你将了解如何: |
有关 Azure 的更多培训,请参阅完整的 Microsoft 目录:
浏览全部内容 - 培训 | Microsoft Learn
在 Azure 实现虚拟主机安全性
培训 | 在 Azure 实现虚拟主机安全性 |
---|---|
在此学习路径中,了解如何在 Azure 中保护和强化虚拟机。 |
有关 Azure 中虚拟机的更多培训,请参阅 Microsoft 目录中的以下资源:
Azure 虚拟机 | Microsoft Learn
后续步骤
请参阅以下有关将零信任原则应用于 Azure 的其他文章:
- Azure IaaS 概述
- Azure 虚拟桌面
- Azure 虚拟 WAN
- Amazon Web Services 中的 IaaS 应用程序
- Microsoft Sentinel 和 Microsoft Defender XDR
参考
- 使用 Azure 门户管理 Azure 资源组
- 安全启动
- vTPM 概述
- 证明
- 开启 Azure 磁盘存储的服务器端加密
- AES 256 加密
- Azure Bastion
- 为 Azure 虚拟桌面启用 Azure 多重身份验证
- Windows Servers 2019 或更高版本
- 使用 Microsoft Entra 凭证登录到 Linux VM
- 请参阅常见零信任标识和设备访问策略
- 特权访问工作站 (PAW)
- 特权访问部署
- Microsoft 反恶意软件
- 虚拟机代理
- 计划部署以在 Azure 中更新 Windows VM - Azure 示例应用场景
- 使用 Azure 专用链接将网络安全地连接到 Azure 自动化
- 适用于服务器的 Microsoft Defender
- Microsoft Defender for Endpoint
- Defender for Cloud 的集成漏洞评估