应用零信任原则来细分基于 Azure 的网络通信

本文提供了有关在 Azure 环境中应用零信任原则来细分网络的指导。 以下是零信任原则。

零信任原则 定义
显式验证 始终根据所有可用的数据点进行身份验证和授权。
使用最低权限访问 使用实时和恰好足够的访问权限 (JIT/JEA)、基于风险的自适应策略和数据保护,来限制用户访问。
假定数据泄露 最大限度地减少影响范围,并对访问进行分段。 验证端对端加密并使用分析来获取可见性、驱动威胁检测并改善防御。

可以通过在 Azure 基础结构中,在不同级别执行网络分段来最大程度地减少网络攻击半径和分段访问。

本文是一系列文章中的一篇,演示如何为 Azure 网络应用零信任原则。

随着企业从小型规模发展到大型企业,他们通常需要从单个 Azure 订阅迁移到多个订阅,以便将每个部门的资源区分开。 请务必仔细规划网络的分段,以在环境之间创建符合逻辑的边界和隔离。

每个环境(通常反映组织的单独部门)都应具有自己的特定工作负载的访问权限和策略。 例如,来自内部软件开发人员订阅的用户不应有权管理和部署连接订阅中的网络资源。 但是,这些环境仍需要网络连接才能实现基本服务所需的功能,例如 DNS、混合连接,以及能够跨不同 Azure 虚拟网络 (VNet) 访问其他资源。

Azure 基础结构的分段不仅提供隔离功能,还可以创建安全边界,防止攻击者在不同环境之间移动并造成额外的损害(假设违反零信任原则)。

参考体系结构

可以在 Azure 中使用不同级别的分段来帮助保护资源免受未经授权的访问的攻击或恶意攻击。 这些分段级别从订阅级别开始,一直到虚拟机上运行的应用程序。 分段会创建一个边界,该边界将一个环境与另一个环境分隔开,每个环境都有自己的规则和策略。 假设可能会发生违规行为,你需要对网络进行分段以防止其传播。

Azure 网络会使用以下级别的分段:

  • 订阅

    Azure 订阅是用于在 Azure 中预置资源的逻辑容器。 它链接到 Microsoft Entra ID 租户中的 Azure 帐户,充当分配给订阅的 Azure 资源的单个计费单位。 Azure 订阅也是访问订阅中包含的资源的逻辑边界。 在不同订阅中的资源之间进行访问需要显式权限。

  • VNet

    Azure VNet 是一个隔离的专用网络,默认情况下允许其中的所有虚拟机相互通信。 默认情况下,除非通过对等互连、VPN 连接或 ExpressRoute 在 VNet 之间创建连接,否则 VNet 之间无法相互通信。 单个 VNet 可用作一个信任边界,用于划分不同的应用程序、工作负载、部门或组织。

    Azure Virtual Network Manager (AVNM) 是一种网络管理服务,允许单个管理团队管理 VNet,并在全局多个订阅中强制实施安全规则。 可以使用 AVNM 来定义网络组,以确定哪些 VNet 可以相互通信。 还可以使用 AVNM 监视网络配置变化。

  • VNet 中的工作负载

    对于 VNet(例如虚拟机或任何支持 VNet 集成(如 Azure Databricks 和应用服务)的 PaaS 服务)中的工作负载,默认允许进行通信,因为它们位于同一 VNet 中,并且必须使用网络安全组进一步保护它们。 用于在 VNet 中分段的工具和服务包括:

    • Azure 防火墙

      Azure 防火墙是 VNet 中部署的服务,用于筛选云资源、本地和 Internet 之间的流量。 使用 Azure 防火墙,可以定义规则和策略,以允许或拒绝网络和应用程序层上的流量。 你还可以受益于 Azure 防火墙提供的高级威胁防护功能,例如入侵检测和防护系统 (IDPS)、传输层安全性 (TLS) 检查和基于威胁情报的筛选。

    • 网络安全组

      网络安全组是一种访问控制机制,用于筛选 Azure 资源(例如 VNet 中的虚拟机)之间的网络流量。 网络安全组包含允许或拒绝 VNet 中子网或虚拟机级别的流量的安全规则。 网络安全组的常见用途是将不同子网中的虚拟机集分段。

    • 应用程序安全组

      应用程序安全组是网络安全组的扩展,可用于根据虚拟机的角色和功能对虚拟机的网络接口进行分组。 然后,可以在网络安全组中大规模使用应用程序安全组,而无需定义虚拟机的 IP 地址。

    • Azure Front Door

      Azure Front Door 是 Microsoft 的新式云内容分发网络 (CDN),可以确保全球范围内的用户快速、可靠且安全地访问应用程序的静态和动态 Web 内容。

下图显示了各种分段级别的参考体系结构。

显示 Azure 网络的参考体系结构和分段级别的关系图。

在此图中,红实线表示以下两者之间的分段级别:

  1. Azure 订阅
  2. 订阅中的 VNet
  3. VNet 中的子网
  4. Internet 和 VNet

此图还显示了一组可由 AVNM 管理的 VNet,AVNM 可以跨越 Azure 订阅。

本文包含哪些内容?

零信任原则可应用于 Azure 云中的参考体系结构。 下表介绍了在此体系结构中划分网络分段的建议,以遵循假设违规零信任原则。

步长 任务
1 单个 VNet 中的分段。
2 使用对等互连连接多个 VNet。
3 连接中心辐射型配置中的多个 VNet。

步骤 1:单个 VNet 中的分段

在 Azure 订阅中的单个 VNet 中,可以使用子网实现资源分隔和分段。 例如,在 VNet 中,可能存在数据库服务器的子网、另一个用于 Web 应用程序的子网,以及 Azure 防火墙的专用子网,或者包含 Web 应用程序防火墙Azure 应用程序网关。 默认情况下,VNet 中子网之间的所有通信都处于启用状态。

若要在子网之间创建隔离,可以应用网络安全组或应用程序安全组,以允许或拒绝基于 IP 地址、端口或协议的特定网络流量。 但是,设计和维护网络安全组和应用程序安全组也可以创建管理开销。

此图显示了一个三层应用的常见的建议配置,其中包含每个层的单独子网,以及使用网络安全组和应用程序安全组在每个子网之间创建分段边界。

显示将网络安全组和应用程序安全组用于子网之间分段的关系图。

还可以使用指向 Azure 防火墙或第三方网络虚拟设备 (NVA) 的用户定义路由 (UDR) 来路由子网之间的流量,从而实现资源的分段。 Azure 防火墙和 NVA 还可以使用第 3 层到第 7 层控件允许或拒绝流量。 这些服务中大多数都提供高级筛选功能。

有关详细信息,请参阅模式 1:单个虚拟网络中的指南。

步骤 2:使用对等互连连接多个 VNet。

默认情况下,包含单个 Azure 订阅或跨多个订阅的 VNet 之间不允许通信。 多个 VNet(每个 VNet 属于不同的实体)都有自己的访问控制。 它们可以使用 VNet 对等互连连接到彼此或集中式中心 VNet,其中 Azure 防火墙或第三方 NVA 会检查所有流量。

此图显示了两个 VNet 之间的 VNet 对等互连连接,以及连接的两个端的 Azure 防火墙使用情况。

显示 VNet 对等互连和使用 Azure 防火墙连接两个 VNet 并分段的关系图。

中心 VNet 通常包含共享组件,例如防火墙、标识提供者和混合连接组件等。 UDR 管理变得更加简单,因为仅当 VNet 内流量是必需的时,才需要为微分段添加特定的前缀 UDR。 但是,由于 VNet 有自己的边界,因此安全控件已经到位。

有关详细信息,请参阅以下指南:

步骤 3:连接中心辐射型配置中的多个 VNet

对于中心辐射型配置中的多个 VNet,需要考虑如何针对以下边界细分网络流量:

  • Internet 边界
  • 本地网络边界
  • 全局 Azure 服务的边界

Internet 边界

保护 Internet 流量是网络安全最基本的优先事项,涉及管理来自 Internet(不受信任)的入口流量,以及从 Azure 工作负载定向到 Internet(受信任)的出口流量。

Microsoft 建议来自 Internet 的入口流量具有单一入口点。 Microsoft 强烈建议入口流量流经 Azure 防火墙、Azure Front Door 或 Azure 应用程序网关等 Azure PaaS 资源。 这些 PaaS 资源提供的功能比具有公共 IP 地址的虚拟机更多。

Azure 防火墙

此图显示了 Azure 防火墙在自己的子网中如何充当以下流量的中心入口点和分段边界:Internet 与 Azure VNet 中的三层工作负载之间的流量。

显示使用 Azure 防火墙在 VNet 和 Internet 之间进行流量分段的关系图。

有关详细信息,请参阅 Microsoft Azure 架构良好的框架中的“Azure 防火墙”。

Azure Front Door

Azure Front Door 可以充当 Internet 与 Azure 中托管的服务之间的边界。 Azure Front Door 支持使用专用链接连接到各种资源,例如 VNet 访问的内部负载均衡 (ILB)、静态网站和 Blob 存储的存储帐户,以及 Azure 应用服务。 Azure Front Door 通常用于大规模部署。

Azure Front Door 不仅仅是负载均衡服务。 Azure Front Door 基础结构内置了 DDoS 保护。 启用缓存后,可以从接入点 (POP) 位置检索内容,而不是不断访问后端服务器。 缓存过期后,Azure Front Door 将检索请求的资源并更新缓存。 Azure Front Door 使用拆分 TCP 进行两个单独的连接,而不是让最终用户访问其服务器。 这不仅可改善最终用户体验,还能防止恶意参与者直接访问资源。

此图显示了 Azure Front Door 如何提供 Internet 用户与 Azure 资源之间的分段,这些资源可以位于存储帐户中。

此图显示 Azure Front Door 可以充当 Internet 与 Azure 中托管的服务之间的边界。

有关详细信息,请参阅 Azure 架构良好的框架中的 Azure Front Door

Azure 应用程序网关

Internet 入口点也可以是流入点的组合。 例如,HTTP/HTTPS 流量可以通过受 Web 应用程序防火墙或 Azure Front Door 保护的应用程序网关流入。 非 HTTP/HTTPS 流量(例如 RDP/SSH)可以通过 Azure 防火墙或 NVA 流入。 可以使用这两个元素进行更深入的检查,并使用 UDR 控制流量流。

此图显示了 Internet 入口流量以及将应用程序网关与用于 HTTP/HTTPS 流量的 Web 应用程序防火墙和 Azure 防火墙用于所有其他流量。

显示 Azure 订阅与本地网络之间连接和流量分段的方法的关系图。

通常建议的两种方案如下:

  • 将 Azure 防火墙或 NVA 与应用程序网关并行放置。
  • 在应用程序网关之后放置 Azure 防火墙或 NVA,以便在到达目标之前进行进一步的流量检查。

有关详细信息,请参阅 Microsoft Azure 架构良好的框架中的 Azure 应用程序网关

下面是 Internet 流量流的其他常见模式。

使用多个接口的入口流量

使用 NVA 时,有一种方法涉及在虚拟机上使用多个网络接口:一个接口用于不受信任的流量(面向外部),另一个接口用于受信任的流量(面向内部)。 在流量流方面,必须使用 UDR 将入口流量从本地路由到 NVA。 NVA 收到的来自 Internet 的入口流量必须通过来宾 OS 设备和 UDR 中的静态路由组合路由到相应 VNet 或子网上的目标工作负载。

出口流量和 UDR

对于离开 VNet 流向 Internet 的流量,可以使用路由表将所选 NVA 作为下一跃点来应用 UDR。 为了降低复杂性,可以在 Azure 虚拟 WAN 中心内部署 Azure 防火墙或 NVA,并使用路由意向启用 Internet 安全性。 这样可以确保能够同时检查流向非 Azure 虚拟 IP 地址 (VIP) 的南北流量(传入和传出网络范围)和东西流量(在网络范围内的设备之间)。

出口流量和默认路由

某些方法涉及使用不同的方法管理默认路由 (0.0.0.0/0)。 一般情况下,建议源自 Azure 的出口流量利用出口点,并使用 Azure 防火墙或 NVA 进行检查,这是考虑到 Azure 基础结构可以处理的吞吐量,在大多数情况下,该吞吐量会大得多,并且更具弹性。 在这种情况下,在工作负载子网的 UDR 中配置默认路由可能会强制流量流向这些出口点。 你可能还希望将出口流量从本地路由到作为出口点的 Azure。 在这种情况下,请结合使用 Azure 路由服务器 与 NVA,以使用边界网关协议 (BGP) 将默认路由播发到本地。

在某些情况下,需要通过 BGP 播发默认路由将所有出口流量路由回本地。 这会强制流量将 VNet 通过本地网络隧道传送到防火墙进行检查。 由于延迟增加且缺少 Azure 提供的安全控件,最后这种方法是需要最少的方法。 政府与银行广泛采用这种做法,它们对本地环境中的流量检查有具体要求。

就规模而言:

  • 对于单个 VNet,可以使用严格遵循第 4 层语义的网络安全组,也可以使用同时遵循第 4 层和第 7 层语义的 Azure 防火墙。
  • 对于多个 VNet,仍可使用单个 Azure 防火墙(如果可访问),也可以在每个虚拟网络中部署 Azure 防火墙,并使用 UDR 定向流量。

对于大型企业分布式网络,你仍然可以使用中心辐射型模型,并使用 UDR 定向流量。 但是,这可能会导致产生管理开销和 VNet 对等互连限制。 为方便使用,如果在虚拟中心部署 Azure 防火墙并激活用于 Internet 安全性的路由意向,Azure 虚拟 WAN 可以实现此目的。 这会将默认路由注入所有辐射和分支网络,并将 Internet 绑定的流量发送到 Azure 防火墙进行检查。 流向 RFC 1918 地址块的专用流量将发送到 Azure 防火墙或 NVA,作为 Azure 虚拟 WAN 中心内的指定的下一跃点。

本地网络边界

在 Azure 中,与本地网络建立连接的主要方法包括 Internet 协议 (IPsec) 隧道、ExpressRoute 隧道或软件定义的 WAN (SD-WAN) 隧道。 通常,将 Azure 站点到站点 (S2S) VPN 连接用于带宽要求较低的较小的工作负载。 对于需要专用服务路径和更高吞吐量的工作负载,Microsoft 建议使用 ExpressRoute。

此图显示了 Azure 环境和本地网络之间的不同类型的连接方法。

此关系图显示了 Azure 环境和本地网络之间的不同类型的连接方法。

虽然 Azure VPN 连接可以支持多个隧道,但通常为需要更高带宽和专用连接的大型企业网络配置 ExpressRoute(通过连接合作伙伴)。 对于 ExpressRoute,可以将同一 VNet 连接到多个线路,但出于分段目的,这通常不是理想做法,因为它允许未相互连接的 VNet 相互通信。

有一种分段方法包括选择不使用辐射型 VNet 上的远程网关,或者在使用路由表时禁用 BGP 路由传播。 你仍然可以使用 NVA 和防火墙将连接到 ExpressRoute 的中心分段。 对于与中心对等互连的辐射,可以选择不使用 VNet 对等互连属性中的远程网关。 这样,辐射只会了解其直接连接的中心,而不了解任何本地路由。

另一种将传入和传出本地的流量分段的新兴方法是使用 SD-WAN 技术。 可以使用 Azure 中的第三方 NVA 基于来自 NVA 设备内不同分支的 SD-WAN 隧道创建分段,从而将分支位置扩展到 Azure SD-WAN。 可以使用 Azure 路由服务器将 SD-WAN 隧道的地址前缀注入到中心辐射型拓扑的 Azure 平台中。

对于虚拟 WAN 拓扑,可以在虚拟中心内直接集成第三方 SD-WAN NVA。 还可以使用 BGP 终结点来允许使用 SD-WAN 解决方案,从虚拟中心集成的 NVA 创建隧道。

对于这两种模型,可以使用 ExpressRoute 将基础专用连接或包含专用对等互连或 Microsoft 对等互连的公共连接进行分段。 为了安全起见,一种常见做法是通过 ExpressRoute 播发默认路由。 这会强制所有离开 Vnet 的流量通过隧道流向本地网络进行检查。 同样,通过 VPN 和 ExpressRoute 的流量可以发送到 NVA 进行进一步检查。 这也适用于离开 Azure 的流量。 当环境较小(例如一个或两个区域)时,这些方法非常简单。

对于大型分布式网络,还可以使用路由意向激活专用流量检查来使用 Azure 虚拟 WAN。 这会将发往 NVA 的专用 IP 地址的所有流量定向到检查。 与上述方法一样,当环境跨越多个区域时,这更易于管理。

Azure 虚拟 WAN 的另一种方法是将自定义路由表用于隔离边界。 可以创建自定义路由,并且仅你想要的 VNet 关联和传播到这些路由表。 但是,此功能目前无法与路由意向结合使用。 若要隔离分支,可以分配标签以将分支关联到该标签。 还可以按中心禁止传播到默认标签。 目前,无法在单个中心上单独隔离 Azure 中的单个分支。 例如,无法将 SD-WAN 与 ExpressRoute 隔离。 但在整个中心上,可以禁止传播到默认标签。

全局 Azure 服务的边界

在 Azure 中,大多数服务默认可通过 Azure 全局 WAN 进行访问。 这也适用于对 Azure PaaS 服务的公共访问。 例如,Azure 存储具有内置防火墙,可以限制对 VNet 的访问并阻止公共访问。 但是,通常需要进行更精细的控制。 典型的首选项是使用专用连接连接到 Azure VIP,而不是使用提供的默认公共 IP 地址。

限制对 PaaS 资源的访问的最常用方法是使用 Azure 专用链接。 创建专用终结点时,它会注入 VNet。 Azure 使用此专用 IP 地址通过隧道连接到有问题的 PaaS 资源。 Azure 使用 Azure 专用 DNS 区域将 DNS A 记录映射到专用终结点,并将 CNAME 记录映射到专用链接 PaaS 资源。

服务终结点提供连接到 PaaS VIP 的替代方法。 可以选择服务标记以允许连接到该标记中的所有 PaaS 资源,并提供与 PaaS 资源的专用连接。

另一种普遍的方法涉及使用适用于 ExpressRoute 的 Microsoft 对等互连。 如果要从本地连接到 PaaS VIP,可以设置 Microsoft 对等互连。 可以选择 VIP 要使用的 BGP 社区,并通过 Microsoft 对等互连路径播发此内容。

有关详细信息,请参阅以下指南:

分段摘要

下表汇总了不同级别的分段和安全方法。

between 默认行为 通过以下方法启用的通信… 分段安全方法
订阅 无通信 - VNet 对等互连

- VPN 网关
Azure 防火墙
VNet 无通信 - VNet 对等互连

- VPN 网关
Azure 防火墙
VNet 中子网上的工作负载 开放交流 空值 - 网络安全组

- 应用程序安全组
Internet 和 VNet 无通信 - 负载均衡器

- 公共 IP

- 应用程序网关

- Azure Front Door
- 具有 Web 应用程序防火墙的 Azure 应用程序网关

- Azure 防火墙

- 具有 Web 应用程序防火墙的 Azure Front Door
Internet 和本地网络 无通信 - Azure S2S VPN

- IPSec 隧道

- ExpressRoute 隧道

- SD-WAN 隧道
Azure 防火墙
Internet 和 VNet 中的虚拟机 如果虚拟机只有专用 IP 地址,则不会通信 为虚拟机分配一个公共 IP 地址 本地虚拟机防火墙

后续步骤

有关将零信任应用于 Azure 网络的其他信息,请参阅:

参考

请参阅以下链接,了解本文所述的各种服务和技术。