Compartilhar via

Azure网络安全最佳做法

本文讨论一系列Azure最佳做法,以增强网络安全。 这些最佳做法来源于我们在 Azure 网络方面的经验,以及像您这样的客户的经验。

这些最佳做法基于共识意见以及本文撰写时存在的 Azure 平台功能和特性集。 观点和技术会随着时间而变化,因此本文会定期更新来反映这些变化。

本文与 Microsoft 的 Zero Trust 安全模型保持一致,该模型消除了基于网络位置的隐式信任。 有关强制实施Azure Policy的规范性安全控制,请参阅 Microsoft云安全基准 v2 - 网络安全

使用强网络控制

可以通过将 Azure 虚拟机 (VM) 和设备 放置在 Azure 虚拟网络 来连接到其他联网设备。 也就是说,可以将虚拟网络接口卡连接到虚拟网络,以允许启用网络的设备之间的基于 TCP/IP 的通信。 连接到 Azure 虚拟网络的虚拟机可以连接到同一虚拟网络、不同虚拟网络、互联网或您自己的本地网络上的设备。

规划网络和网络安全性时,建议集中执行以下操作:

  • 管理核心网络功能,例如 ExpressRoute、virtual network和子网预配以及 IP 寻址。
  • 管理网络安全元素,例如网络虚拟设备功能,诸如 ExpressRoute、虚拟网络和子网的配置,以及 IP 地址分配等。

如果使用一组通用的管理工具来监视网络和网络的安全性,则可清楚地了解这两者。 一种简单、统一的安全策略可减少错误,因为这会改善人员理解和自动化可靠性。

以逻辑方式分段子网

Azure虚拟网络类似于本地网络上的 LAN。 Azure virtual network背后的理念是,基于单个专用 IP 地址空间创建网络,可以在其中放置所有Azure virtual machines。 可用的专用 IP 地址空间位于类别 A (10.0.0.0/8)、类别 B (172.16.0.0/12) 和类别 C (192.168.0.0/16) 范围内。

以逻辑方式对子网进行分段的最佳做法包括:

  • 不要分配范围广泛的允许规则(例如,允许 0.0.0.0 到 255.255.255.255)。确保故障排除过程阻止或禁止设置这些类型的规则。 这些允许规则会导致错误的安全感,经常被红队发现并利用。

  • 将更大的地址空间分段为子网。:使用基于 CIDR 的子网原则创建子网。

  • 在子网之间创建网络访问控制。 子网之间的路由会自动发生,不需要手动配置路由表。 默认情况下,在 Azure 虚拟网络中创建的子网之间没有网络访问控制。使用 网络安全组防止未经请求的流量进入 Azure 子网。 网络安全组 (NSG) 是一种简单的有状态数据包检查设备。 NSG 使用 5 元组方法(源 IP、源端口、目标 IP、目标端口和协议)来创建网络流量的允许/拒绝规则。 可以允许或拒绝流往或来自单个 IP 地址、多个 IP 地址或整个子网的流量。

在使用网络安全组对子网之间进行访问控制时,可以将属于同一安全区域或角色的资源置于其自己的子网中。

  • 避免小型虚拟网络和子网,以确保简单性和灵活性。:因为大多数组织添加的资源比最初计划的多,重新分配地址耗费大量劳力。 使用小型子网会增加有限的安全值,将网络安全组映射到每个子网会增加开销。 广泛定义子网,以确保具有增长灵活性。

  • 通过定义应用程序安全组来简化网络安全组规则的管理。为那些你认为在未来可能更改或者需要在多个网络安全组中使用的 IP 地址列表定义一个应用程序安全组。 务必清楚地命名应用程序安全组,以便其他人可以理解其内容和用途。

采用零信任(Zero Trust)方法

基于外围的网络在工作时假设网络中的所有系统都可以受信任。 但如今的员工从各种设备和应用的任何位置access其组织的资源,这使得外围安全控制不相关。 访问控制策略仅关注谁可以访问资源是远远不够的。 为了掌握安全与效率之间的平衡,安全管理员还需要考虑访问资源的方式。

网络需要从传统防御进行演化,因为网络可能容易受到侵害:攻击者可能会破坏受信任边界内的单个终结点,然后在整个网络中快速扩展立足点。 Zero Trust网络消除了基于外围网络位置的信任概念。 相反,零信任架构使用设备和用户信任声明来控制对组织数据和资源的访问。 对于新计划,请采用“Zero Trust”方法,在访问时验证信任。

最佳做法包括:

  • 基于设备、身份、安全性保证、网络位置等条件对资源的访问:Microsoft Entra 条件访问允许根据所需条件实现自动化访问控制决策,应用正确的访问控件。 有关详细信息,请参阅 通过条件访问管理 Azure 的管理访问

  • 仅在工作流审批后启用端口访问:您可以使用 Microsoft Defender for Cloud 中的 实时 VM 访问 来锁定发往 Azure VM 的入站流量,减少攻击风险,同时在需要时轻松访问并连接到 VM。

  • 使用 Azure Bastion 进行安全的远程虚拟机访问,无需公开公共 IP 地址或开放入站端口:Azure Bastion 通过 Azure 门户直接提供通过 TLS 的安全无缝 RDP/SSH 连接到虚拟机。 Azure Bastion 开发者 SKU 现已在 35 个以上的 Azure 区域中无需额外费用,非常适合开发/测试场景。 它无需使用跳板机或将虚拟机公开到互联网,大幅减少攻击面,同时简化管理访问。 对于生产工作负荷,请考虑升级到标准或高级 SKU,以获取主机扩展和会议录制等其他功能。 请参阅 快速入门:连接到 Azure Bastion 开发人员 以开始使用。

  • 授予临时权限以执行特权任务,从而防止恶意用户或未经授权的用户在权限过期后获得access。 仅在用户需要时才授予访问权限。在 Microsoft Entra 特权身份管理或第三方解决方案中使用按需访问,以授予执行特权任务的权限。

Zero Trust是网络安全的下一个演变。 网络攻击的状态促使组织采用“假定违规”思维方式,但这种方法不应受到限制。 Zero Trust网络保护公司数据和资源,同时确保组织可以使用技术构建现代工作场所,使员工能够随时随地以任何方式高效工作。

控制路由行为

将虚拟机置于Azure virtual network时,即使其他 VM 位于不同的子网上,VM 也可以连接到同一virtual network上的任何其他 VM。 这是可能的,原因是默认启用的系统路由集合允许这种类型的通信。 这些默认路由允许同一virtual network上的 VM 相互启动连接,以及与 Internet 建立连接(仅适用于与 Internet 的出站通信)。

尽管默认系统路由适用于许多部署方案,但有时也需要针对部署自定义路由配置。 可以配置下一个跃点地址,用于访问特定目标。

建议在为virtual network部署安全设备时配置 用户定义的路由。 我们将在题为“保护关键Azure服务资源仅限于您的虚拟网络”的后续部分中讨论此建议。

注释

不需要用户定义的路由,默认的系统路通常有效。

使用虚拟网络装置

网络安全组和用户定义的路由可以在 OSI 模型的网络和传输层提供一定的网络安全度量值。 但在某些情况下,建议在高级别堆栈中启用安全性。 在这种情况下,我们建议您部署由Azure合作伙伴提供的虚拟网络安全设备。

Azure网络安全设备可以提供比网络级控制提供更好的安全性。 虚拟网络安全设备的网络安全功能包括:

  • 防火墙
  • 入侵检测/入侵防护
  • 漏洞管理
  • 应用程序控制
  • 基于网络的异常检测
  • 网络过滤
  • 防病毒
  • 僵尸网络防护

若要查找可用的Azure virtual network安全设备,请转到 Azure Marketplace并搜索“安全性”和“网络安全”。

为安全区部署外围网络

外围网络(也称为 DMZ)是一个物理或逻辑的网络段,为您的资产与互联网之间提供额外的一层安全保护。 外围网络边缘的网络访问控制设备仅允许所需的流量进入您的虚拟网络。

外围网络非常有用,因为您可以将网络接入控制的管理、监控、日志记录和报告集中在您的 Azure 虚拟网络边缘的设备上。 在外围网络中,通常会启用分布式拒绝服务 (DDoS) 保护、入侵检测/入侵防护系统 (IDS/IPS)、防火墙规则和策略、Web 筛选、网络反恶意软件等。 网络安全设备位于 Internet 和Azure virtual network之间,并在两个网络上都有一个接口。

尽管这是外围网络的基本设计,但有许多不同的设计,例如背靠背式、三闸式、多闸式。

根据前面提到的零信任(Zero Trust)概念,我们建议您为所有高安全性部署考虑使用边界网络,以提高您Azure资源的网络安全级别和访问控制。 可以使用Azure或第三方解决方案在资产与 Internet 之间提供额外的安全层:

  • Azure原生控件。 Azure FirewallAzure Web Application Firewall提供基本的安全优势。 这些优势包括完全有状态防火墙即服务、内置高可用性、无限制的云可伸缩性、FQDN 筛选、对 OWASP 核心规则集的支持,以及简单的设置和配置。
  • 第三方提供的产品或解决方案。 在 Azure Marketplace 中搜索下一代防火墙(NGFW)和其他第三方产品/服务,提供熟悉的安全工具和增强的网络安全级别。 配置可能会更加复杂,但第三方产品/服务可能会允许你使用现有功能和技能组。

许多组织选择了混合 IT 路由。 使用混合 IT 时,公司的一些信息资产存储在 Azure,而其他信息资产则保留在本地。 在许多情况下,服务的某些组件在Azure中运行,而其他组件则保留在本地。

在混合 IT 场景中,通常有某种类型的跨场所连接。 跨界连接允许公司将其本地网络连接到Azure虚拟网络。 可用的跨界连接解决方案有两种:

  • 站点到站点 VPN。 它是一种值得信赖、可靠且成熟的技术,但连接是通过 Internet 进行的。 带宽限制在 1.25 Gbps 左右。 在某些情况下,站点到站点 VPN 是一个理想选择。
  • Azure ExpressRoute。 我们建议您使用 ExpressRoute 来实现跨办公室连接。 通过 ExpressRoute,可以通过连接提供商提供的专用连接将本地网络扩展到Azure云中。 使用 ExpressRoute,可以建立与 Azure、Microsoft 365 和 Dynamics 365 等Azure cloud services的连接。 ExpressRoute 是本地位置或Microsoft Exchange托管提供商之间的专用 WAN 链接。 因为这是电信运营商连接,所以数据不会通过 Internet 传输,也不会暴露在 Internet 通信的潜在风险中。

ExpressRoute 连接的位置可能会影响防火墙容量、可伸缩性、可靠性和网络流量可见性。 需要确定在现有(本地)网络中终止 ExpressRoute 的位置。 您可以:

  • 请在防火墙之外终止(外围网络范例)。 如果需要了解流量,或者需要继续隔离数据中心的现有做法,或者仅将 Extranet 资源置于Azure,请使用此建议。
  • 在防火墙之内终止(网络扩展范例)。 这是默认建议。 在所有其他情况下,我们建议将Azure视为另一个数据中心。

优化正常运行时间和性能

如果服务已关闭,便无法访问信息。 如果性能太差而无法使用数据,则可以将此数据视为无法访问。 从安全的角度来看,你需要尽一切努力,以确保你的服务具有最佳的运行时间和性能。

用于增强可用性和性能的常用且有效的方法是负载均衡。 负载均衡是将网络流量分布于服务中各服务器的方法。 例如,如果服务中有前端 Web 服务器,可以使用负载均衡将流量分布于多台前端 Web 服务器。

这种流量分布会增加可用性,因为如果其中一个 Web 服务器不可用,load balancer会停止向该服务器发送流量并将其重定向到仍处于联机状态的服务器。 负载均衡还对性能有帮助,因为处理请求的处理器、网络和内存开销将分布于所有负载均衡的服务器之间。

建议在可能的情况下,以及适合您服务的情况下,尽量采用负载均衡。 下面是Azure 虚拟网络级别和全局级别的场景,每个场景都有相应的负载均衡选项。

情形:你有如下应用程序:

  • 要求来自同一用户/客户端会话的请求访问相同后端虚拟机。 此类示例如购物车应用和 Web 邮件服务器。
  • 仅接受安全连接,因此与服务器进行未加密的通信是不可接受的选项。
  • 要求将长时间运行的同一 TCP 连接上的多个 HTTP 请求路由或负载均衡至不同的后端服务器。

负载均衡选项:使用Azure 应用程序网关,一种HTTP网页流量负载均衡器。 Application Gateway支持网关上的端到端 TLS 加密和 TLS 终止。 然后,Web 服务器可以免受加密和解密开销以及未加密流向后端服务器的流量的负担。

Scenario:需要在位于Azure virtual network的服务器之间对来自 Internet 的传入连接进行负载均衡。 当情景是这样的:

  • 具有接受来自 Internet 的传入请求的无状态应用程序。
  • 不需要粘性会话或 TLS 卸载。 粘性会话是在应用负载均衡中使用的一种方法,用于实现服务器亲和性。

负载均衡选项:使用Azure portal创建外部load balancer,以便跨多个 VM 分散传入请求以提供更高的可用性级别。

情形:需要对不在 Internet 上的多个 VM 的连接进行负载均衡。 在大多数情况下,接受负载均衡的连接由Azure virtual network上的设备启动,例如SQL Server实例或内部 Web 服务器。
负载均衡选项:使用 Azure portal 创建内部load balancer,以便跨多个 VM 分散传入请求以提供更高的可用性级别。

情形:你需要全球负载均衡,因为:

  • 拥有广泛分布在多个地区的云解决方案,并且需要可能的最高级别的正常运行时间(可用性)。
  • 需要可能的最高级别的正常运行时间,以确保即使整个数据中心不可用,服务仍然可用。

负载均衡选项:使用Azure Traffic Manager。 流量管理器可以根据用户的位置,对服务的连接进行负载均衡。

例如,如果用户从欧盟对服务发出请求,此连接会被定向到位于欧盟数据中心的服务。 这一部分的流量管理器全局负载均衡有助于改善性能,因为连接到最近的数据中心比连接到远处的数据中心还要快。

禁用 RDP/SSH 访问虚拟机

可以使用Remote Desktop协议(RDP)和安全外壳(SSH)协议访问Azure virtual machines。 这些协议支持远程管理 VM,并且是数据中心计算中的标准协议。

通过 Internet 使用这些协议的潜在安全问题是,攻击者可以使用暴力破解技术来获取对 Azure 虚拟机的访问。 攻击者获得access后,可以使用 VM 作为攻击点,以破坏virtual network上的其他计算机,甚至攻击Azure外部的网络设备。

建议您禁用从互联网直接访问 Azure 虚拟机的 RDP 和 SSH 功能。 禁用来自互联网的直接 RDP 和 SSH 访问后,您可以使用其他选项来访问这些 VM 以进行远程管理。

Scenario:使单个用户能够通过 Internet 连接到Azure virtual network。
Option点到站 VPN是远程访问 VPN 客户端/服务器连接的另一个术语。 建立点到站点连接后,用户可以使用 RDP 或 SSH 连接到用户通过点到站点 VPN 连接到Azure virtual network上的任何 VM。 此处假设用户有权访问这些 VM。

点到站点 VPN 比直接 RDP 或 SSH 连接更安全,因为用户必须事先通过两次身份验证才将连接到 VM。 首先,用户需要进行身份验证(并获得授权)以建立点到站点 VPN 连接。 其次,用户需要进行身份验证(并获得授权)以建立 RDP 或 SSH 会话。

Scenario:使本地网络上的用户能够连接到Azure virtual network上的 VM。
选项站点到站点 VPN 通过 Internet 将整个网络连接到另一个网络。 可以使用站点到站点 VPN 将本地网络连接到Azure virtual network。 本地网络上的用户通过站点到站点 VPN 使用 RDP 或 SSH 协议进行连接。 无需通过互联网允许直接的 RDP 或 SSH 访问。

情形:使用专用的 WAN 链接提供类似于站点到站点 VPN 的功能。
选项:使用 ExpressRoute。 它提供类似于站点到站点 VPN 的功能。 它们的主要区别包括:

  • 专用的 WAN 链接不会遍历 Internet。
  • 专用的 WAN 链接通常更稳定且性能更佳。

将关键的 Azure 服务资源仅限制在您的虚拟网络中

使用 Azure 专用链接通过虚拟网络中的专用终结点访问 Azure PaaS 服务(例如 Azure 存储和 SQL 数据库)。 专用终结点允许您将关键的 Microsoft Azure 服务资源仅限于您的虚拟网络中,以增强安全性。 从virtual network发往Azure服务的流量始终保留在Azure主干网络上。 不再需要向公共互联网公开虚拟网络,就可以使用 Azure 平台即服务。

Azure Private Link具有以下优势:

  • 提升 Azure 服务资源的安全性:通过使用 Azure Private Link,Azure 服务资源可以通过专用终结点安全地连接到虚拟网络。 将服务资源绑定到虚拟网络中的私有终结点,通过完全移除对资源的公共互联网访问,仅允许来自虚拟网络中私有终结点的流量,从而提供了更高的安全性。

  • 在 Azure 平台上私密访问 Azure 服务资源:使用专用网络终结点将虚拟网络连接到 Azure 的服务。 无需使用公共 IP 地址。 Private Link平台将通过Azure主干网络处理consumer和服务之间的连接。

  • 从本地和对等网络访问:使用专用终结点通过 ExpressRoute 专用对等互连、VPN 隧道和对等虚拟网络访问运行在 Azure 中的服务。 无需配置 ExpressRoute Microsoft 对等互连或遍历 Internet 即可访问服务。 Private Link提供了将工作负载迁移到Azure的安全方法。

  • 防范数据泄露:专用终结点映射到 PaaS 资源的某个实例,而不是映射到整个服务。 使用者只能连接到特定的资源。 对服务中的其他任何资源的访问已被阻止。 此机制可以防范数据泄露风险。

  • 全球覆盖:以私密方式连接到在其他区域中运行的服务。 消费者的虚拟网络可能位于区域 A 中,并且可以连接到区域 B 中的服务。

  • 简单设置和管理:您不再需要虚拟网络中的保留公共 IP 地址,以便通过 IP 防火墙保护 Azure 资源。 无需使用 NAT 或网关设备即可设置专用终结点。 通过简单的工作流配置专用终结点。 在服务端,还可以轻松管理Azure服务资源上的连接请求。 Azure Private Link也适用于属于不同Microsoft Entra 租户的使用者和服务。

若要详细了解专用终结点以及专用终结点可用的Azure服务和区域,请参阅 Azure Private Link

后续步骤