Azure网络安全最佳做法

本文讨论一系列Azure最佳做法,以增强网络安全。 Microsoft 从其 Azure 网络经验以及像您这样的组织的经验中得出了这些最佳实践。

这些最佳实践代表共识意见,反映了本文撰写时Azure平台的现有能力和功能集。 意见和技术随时间而变化。 Microsoft 会定期更新本文以反映这些变化。

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

使用强网络控制

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

在规划网络及其安全时,请集中管理:

  • 核心网络功能如ExpressRoute、虚拟网络和子网配置以及IP地址。
  • 网络安全元素的治理,如网络虚拟设备功能。

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

  • 使用虚拟网络流量日志以实现全面的流量可视化 虚拟网络流日志为您的虚拟网络提供集中式流量可视化,并取代NSG流日志,实现更广泛的监控覆盖。 有关详细信息,请参阅 虚拟网络流日志概述

以逻辑方式分段子网

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采用五元组方法(源IP、源端口、目的IP、目的端口和协议)来创建网络流量的允许或拒绝规则。 可以允许或拒绝流往或来自单个 IP 地址、多个 IP 地址或整个子网的流量。

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

  • 避免使用小型虚拟网络和子网,以确保简洁和灵活。 大多数组织会增加比最初计划更多的资源,重新分配地址非常费力。 小子网带来的安全性有限,且将网络安全组映射到每个子网会增加开销。 广泛定义子网以确保增长的灵活性。

  • 通过定义 应用安全组来简化网络安全组的规则管理。 定义一个应用安全组,列出你认为未来可能会变动或会在多个网络安全组中使用的IP地址列表。 清晰地命名应用安全组,以便他人理解其内容和目的。

采用零信任(零信任)方法

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

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

最佳做法包括:

  • 基于设备、身份、保证、网络位置等,为资源提供条件访问。Microsoft Entra 条件访问 通过基于所需条件实施自动访问控制决策,帮助您应用正确的访问控制。 有关详细信息,请参阅 通过条件访问管理 Azure 的管理访问

  • 只有在工作流批准后才启用端口访问。 在 Microsoft Defender for Cloud 中使用临时虚拟机访问,锁定 Azure 虚拟机的入站流量,减少攻击风险,同时在需要时轻松连接虚拟机。

  • 使用 Azure Bastion 实现安全的远程虚拟机访问,同时不暴露公共 IP 地址或打开入站端口。Azure Bastion 通过 TLS 直接通过 Azure 门户为你的虚拟机提供安全的 RDP/SSH 连接。 Azure Bastion 开发者 SKU 现已在超过 35 个 Azure 区域免费提供,非常适合开发/测试场景。 这种 SKU 无需使用跳板机,也无需将虚拟机暴露于互联网,从而在简化管理访问流程的同时减少攻击面。 对于生产工作负载,升级到标准或高级SKU,以获得主机扩展和会话录制等额外功能。

  • 授予临时权限以执行特权任务。 这种做法防止恶意或未经授权的用户在权限到期后获得访问权限。 只有在用户需要时才授予访问权限。 在 Microsoft Entra Privileged Identity Management 或第三方解决方案中使用即时访问,来授予执行特权操作所需的权限。

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

控制路由行为

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

虽然默认系统路由对许多部署场景很有用,但有时你还想为部署定制路由配置。 可以配置下一个跃点地址,用于访问特定目标。

部署虚拟网络安全设备时,配置 用户自定义路由 。 该建议出现在后文题为“仅允许从你的虚拟网络访问关键 Azure 服务资源”的部分中。

注释

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

使用虚拟网络装置

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

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

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

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

为安全区部署外围网络

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

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

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

基于前述的零信任理念,考虑在所有高安全性部署中使用边界网络,以提升Azure资源的网络安全和访问控制水平。 可以使用Azure或第三方解决方案在资产与 Internet 之间提供额外的安全层:

  • Azure原生控件。 Azure 防火墙Azure Web 应用程序防火墙 提供基本的安全优势,包括全状态防火墙即服务、内置高可用性、不受限制的云可扩展性、FQDN 过滤、支持 OWASP 核心规则集以及简易的设置和配置。
  • 第三方提供的产品或解决方案。 在 Azure 市场 中搜索下一代防火墙(NGFW)和其他第三方产品/服务,提供熟悉的安全工具和增强的网络安全级别。 配置可能会更加复杂,但第三方产品/服务可能会允许你使用现有功能和技能组。

防范 DDoS 攻击

DDoS 防护可在流量型攻击和协议攻击压垮公网终结点之前,通过减轻其影响来帮助保障面向互联网的工作负载的可用性。

  • 在具有公开资源的虚拟网络上启用DDoS网络保护。 对承载公共IP资源的虚拟网络应用DDoS网络保护,使关键工作负载受益于始终在线的自适应调优和响应。 有关详细信息,请参阅 Azure DDoS 防护概述
  • 选择与你公共暴露状况相匹配的DDoS保护计划。 当你需要保护虚拟网络中的多个公共IP资源时,可以使用DDoS网络保护;当你需要针对较少数量的公共IP地址进行定向保护时,可以考虑DDoS的IP保护。 有关详细信息,请参阅 Azure DDoS 防护概述
  • 通过网络应用防火墙叠加DDoS防护。 将DDoS防护与Azure Web 应用程序防火墙结合起来,针对第3层和第4层的体积和协议攻击,同时检测第7层的网页流量。 有关详细信息,请参阅 Azure DDoS 防护概述
  • 使用DDoS诊断和警报来应对事件。 将DDoS遥测数据传输到监控工具,配置警报,使安全团队能够迅速调查攻击并确认缓解措施。 有关详细信息,请参阅 Azure DDoS 防护概述

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

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

  • 站点到站点 VPN。 它是一种值得信赖、可靠且成熟的技术,但连接是通过 Internet 进行的。 带宽限制在 1.25 Gbps 左右。 在某些情况下,站点到站点 VPN 是一个理想选择。
  • Azure ExpressRoute。 使用 ExpressRoute 实现跨场所连接。 ExpressRoute 帮助您通过连接提供商的私有连接,将本地网络扩展到 Microsoft 云端。 使用 ExpressRoute 可与 Azure、Microsoft 365 和 Dynamics 365 等 Microsoft 云服务建立连接。 ExpressRoute 是本地位置或Microsoft Exchange托管提供商之间的专用 WAN 链接。 由于这是电信连接,你的数据不会通过互联网传输,因此不会暴露在互联网通信的潜在风险中。

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

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

优化正常运行时间和性能

如果服务中断,你就无法访问信息。 如果性能太差而无法使用数据,则可以将此数据视为无法访问。 从安全角度来看,确保您的服务具备最佳的正常运行时间和性能。

用于增强可用性和性能的常用且有效的方法是负载均衡。 负载均衡将网络流量分配到服务的一部分服务器之间。 例如,使用负载均衡将流量分配到服务中的多个前端网络服务器。

这种流量分布提高了可用性,因为如果其中一台Web服务器无法使用,负载均衡器会停止向该服务器发送流量,并将其重定向到仍然在线的服务器。 负载均衡还对性能有帮助,因为处理请求的处理器、网络和内存开销将分布于所有负载均衡的服务器之间。

根据你的服务情况,尽可能使用负载均衡。 下面是Azure 虚拟网络级别和全局级别的场景,每个场景都有相应的负载均衡选项。

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

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

负载均衡选项:使用Azure 应用程序网关,一种HTTP网页流量负载均衡器。 Application Gateway支持网关上的端到端 TLS 加密和 TLS 终止。 这样一来,Web 服务器就无需承担加密和解密的开销,流量也可以以未加密方式流向后端服务器;不过,当后端通信的机密性很重要时,端到端 TLS 仍是更安全的默认选择。

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

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

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

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

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

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

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

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

禁用对虚拟机的RDP和SSH访问

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

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

禁用从互联网直接访问 Azure 虚拟机的 RDP 和 SSH 权限。 在禁用来自互联网的直接 RDP 和 SSH 访问后,请使用其他方式访问这些虚拟机以进行远程管理。

Scenario:使单个用户能够通过 Internet 连接到Azure virtual network。 Option点到站 VPN是远程访问 VPN 客户端/服务器连接的另一个术语。 建立点到站点连接后,用户可以使用 RDP 或 SSH 连接到用户通过点到站点 VPN 连接到的 Azure 虚拟网络中的任何虚拟机。 这种连接假设用户被授权访问这些虚拟机。

点到站点 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。 ExpressRoute 提供类似于站点对站点 VPN 的功能。 它们的主要区别包括:

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

仅允许从您的虚拟网络访问关键 Azure 服务资源

通过虚拟网络中的私有端点,使用 Azure 专用链接 访问 Azure PaaS 服务,如 Azure 存储 和 SQL Database。 私有端点限制了对你对关键Azure服务资源的访问,连接到你的虚拟网络。 从虚拟网络发往 Azure 服务的流量始终保留在 Microsoft Azure 主干网络中。 使用Azure PaaS服务不再需要将虚拟网络暴露在公共互联网中。

Azure 专用链接具有以下优势:

  • 提升您的 Azure 服务资源安全。 通过使用 Azure 专用链接,您可以通过私有端点将 Azure 服务资源安全地保护到虚拟网络。 通过将服务资源接入虚拟网络中的专用终结点,可以消除对资源的公共互联网访问,并且仅允许来自虚拟网络中专用终结点的流量,从而提高安全性。
  • 私密访问Azure平台上的Azure服务资源。 通过私有端点将你的虚拟网络连接到 Azure 中的服务。 你不需要公共IP地址。 专用链接平台通过Azure主干网络处理使用者和服务之间的连接。
  • 从本地和对等网络访问服务。 使用专用终结点,通过 ExpressRoute 私有对等互连、VPN 隧道和对等虚拟网络,从本地环境访问 Azure 中运行的服务。 无需配置 ExpressRoute Microsoft 对等互连,也无需经由 Internet,即可访问该服务。 专用链接提供了将工作负载迁移到Azure的安全方法。
  • 防止数据泄露。 私有端点被映射到PaaS资源的一个实例,而不是整个服务。 使用者只能连接到特定资源,并阻止访问服务中的其他任何资源。 这种映射可以防止数据泄露风险。
  • 将私有访问扩展到各个区域。 私密连接到在其他区域运行的服务。 使用者的虚拟网络可以位于区域 A 中,并连接到区域 B 中的服务。
  • 简化私有端点的部署和运营。 你不再需要在虚拟网络中保留公共IP地址来通过IP防火墙保护Azure资源。 你不需要NAT或网关设备来设置私有端点。 私有端点通过简单的工作流程配置,在服务端,你也可以轻松管理 Azure 服务资源上的连接请求。 Azure 专用链接 适用于属于不同 Microsoft Entra 租户的消费者和服务。
  • 启用私有端点后,禁用公共网络访问。 当服务支持时,在验证私有端点连接后关闭公共网络访问,使资源只接受经过批准的私有路径的流量。 有关详细信息,请参阅 Azure 专用链接
  • 为每个服务设计私有DNS区域。 为每个Azure服务使用推荐的私有DNS区,并将该区与托管私有端点的虚拟网络关联,以确保名称解析保持一致。 有关详细信息,请参阅 Azure 专用终结点专用 DNS 区域值
  • 在支持此功能的情况下,将 NSG 应用于私有终结点子网。 为私有终结点启用网络策略,并在承载子网上使用网络安全组 (NSG),以在受支持的场景中强制实施东西向流量和入站流量筛选要求。 有关详细信息,请参阅管理专用终结点的网络策略
  • 使用网络安全边界(Network Security Perimeter)实现受管网络隔离。 当您需要为PaaS资源建立更新的管理隔离边界,减少公众暴露而不依赖基于IP的限制时,评估网络安全边界。 有关详细信息,请参阅 网络安全外围概念

有关专用终结点以及专用终结点可用的Azure服务和区域的详细信息,请参阅 Azure 专用链接

后续步骤