你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

网络安全组

可以使用 Azure 网络安全组来筛选 Azure 虚拟网络中 Azure 资源之间的网络流量。 网络安全组包含安全规则,这些规则可允许或拒绝多种 Azure 资源的入站和出站网络流量。

本文介绍网络安全组规则的属性和 Azure 应用 的默认安全规则 。 它还介绍如何修改规则属性以创建 增强的安全规则

安全规则

网络安全组在 Azure 订阅限制内根据需要包含网络安全规则。 每个规则指定以下属性:

财产 解释
名称 网络安全组中的唯一名称。 该名称最长可为 80 个字符。 它必须以单词字符开头,并且必须以单词字符或以 _单词字符结尾。 该名称可以包含单词字符、.-\_
优先级 介于 100 和 4096 之间的数字。 规则按优先级顺序处理,优先处理较小的数字,因为较小的数字具有较高的优先级。 一旦流量与某个规则匹配,处理即会停止。 因此,不会处理具有与优先级较高的规则具有相同属性的任何优先级较低(较高数字)的规则。
Azure 默认安全规则的优先级最低(最高数字),以确保始终先处理自定义规则。
源或目标 可以指定 Any、单个 IP 地址、CIDR 块(例如 10.0.0.0/24)、 服务标记应用程序安全组。 若要指定特定的 Azure 资源,请使用分配给资源的专用 IP 地址。 对于入站流量,网络安全组在 Azure 将公共 IP 地址转换为专用 IP 地址后处理流量。 对于出站流量,网络安全组在将专用 IP 地址转换为公共 IP 地址之前处理流量。
输入范围、服务标记或应用程序安全组以减少所需的安全规则数。 扩充式安全规则允许在单个规则中指定多个单独的 IP 地址和范围。 但是,不能在单个规则中指定多个服务标记或应用程序组。 扩充式安全规则仅在通过 Resource Manager 部署模型创建的网络安全组中可用。 在经典部署模型中,无法在单个规则中指定多个 IP 地址和范围。
例如,如果源是子网 10.0.1.0/24(其中 VM1 位于何处),并且目标为子网 10.0.2.0/24(其中 VM2 所在的位置),则网络安全组会筛选 VM2 的流量。 发生此行为的原因是 NSG 与 VM2 的网络接口相关联。
协议 TCP、UDP、ICMP、ESP、AH 或 任何协议。 ESP 和 AH 协议目前无法通过 Azure 门户使用,但可通过 ARM 模板使用。
方向 规则适用于入站流量还是出站流量。
端口范围 可以指定单个端口或端口范围。 例如,可以指定 80 或 10000-10005;或者,对于单个端口和范围的混合,可以使用逗号分隔它们,例如 80、10000-10005。 指定范围和逗号分隔可让你创建更少的安全规则。 只能在通过资源管理器部署模型创建的网络安全组中创建扩充式安全规则。 在通过经典部署模型创建的网络安全组中,不能在同一个安全规则中指定多个端口或端口范围。
行动 允许或拒绝指定的流量。

根据源、源端口、目标、目标端口和协议的五元组信息评估并应用安全规则。 不能创建具有相同优先级和方向的两个安全规则,因为这样可以在系统处理流量的方式中引入冲突。 将为现有连接创建流记录。 是允许还是拒绝通信取决于流记录的连接状态。 流记录允许网络安全组有状态。 例如,如果针对通过端口 80 访问的任何地址指定了出站安全规则,则不需要指定入站安全规则来响应出站流量。 如果通信是从外部发起的,则只需指定入站安全规则。 相反,如果允许通过端口的入站流量,则不需要指定出站安全规则来响应通过端口的流量。

删除允许连接的安全规则时,现有连接将保持不间断。 网络安全组规则仅影响新连接。 网络安全组中的新规则或更新的规则仅适用于新连接,使现有连接不受更改影响。 例如,如果虚拟机具有活动的 SSH 会话,然后删除允许该 SSH 流量的安全规则,则当前的 SSH 会话将保持连接并正常运行。 但是,如果在删除安全规则后尝试建立新的 SSH 连接,则会阻止新的连接尝试。

在网络安全组中,可以创建的安全规则数和其他属性都有一定限制。 有关详细信息,请参阅 Azure 限制

默认安全规则

Azure 在你所创建的每个网络安全组中创建以下默认规则:

入站

AllowVNetInBound
优先级 源端口 目标 目标端口 协议 访问
65000 虚拟网络 0-65535 虚拟网络 0-65535 任意 允许
AllowAzureLoadBalancerInBound (允许Azure负载均衡器入站)
优先级 源端口 目标 目标端口 协议 访问
65001 Azure负载均衡器 0-65535 0.0.0.0/0 0-65535 任意 允许
DenyAllInbound
优先级 源端口 目标 目标端口 协议 访问
65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 任意 拒绝

出站

AllowVnetOutBound
优先级 源端口 目标 目标端口 协议 访问
65000 虚拟网络 0-65535 虚拟网络 0-65535 任意 允许
AllowInternetOutBound
优先级 源端口 目标 目标端口 协议 访问
65001 0.0.0.0/0 0-65535 Internet 0-65535 任意 允许
DenyAllOutBound
优先级 源端口 目标 目标端口 协议 访问
65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 任意 拒绝

“源 ”和 “目标” 列中, VirtualNetworkAzureLoadBalancerInternet服务标记 ,而不是 IP 地址。 在 “协议 ”列中, 任何 都包含 TCP、UDP 和 ICMP。 创建规则时,可以指定 TCP、UDP、ICMP 或 Any。 目标列中的 0.0.0.0/0 表示所有 IP 地址。 Azure 门户、Azure CLI 或 PowerShell 等客户端可以使用 * 或任何用于此表达式。

不能删除默认规则,但可以通过创建更高优先级的规则来替代默认规则。

扩充式安全规则

扩充式安全规则简化了虚拟网络的安全定义,允许使用更少的规则定义更大且复杂的网络安全策略。 可将多个端口和多个显式 IP 地址和范围合并成一个易于理解的安全规则。 可在规则的源、目标和端口字段中使用扩充式规则。 若要简化安全规则定义的维护,可将扩充式安全规则与服务标记应用程序安全组合并。 在安全规则中可以指定的地址、范围和端口数有限制。 有关详细信息,请参阅 Azure 限制

服务标记

服务标记代表给定 Azure 服务中的一组 IP 地址前缀。 它有助于最大程度地减少网络安全规则上频繁更新的复杂性。

有关详细信息,请参阅 Azure 服务标记。 有关如何使用存储服务标记限制网络访问的示例,请参阅限制对 PaaS 资源的网络访问

应用程序安全组

使用应用程序安全组可将网络安全性配置为应用程序结构的固有扩展,从而可以基于这些组将虚拟机分组以及定义网络安全策略。 可以大量重复使用安全策略,而无需手动维护显式 IP 地址。 若要了解详细信息,请参阅应用程序安全组

安全管理规则

安全管理员规则是全局网络安全规则,用于在虚拟网络上强制实施安全策略。 安全管理员规则源自 Azure 虚拟网络管理器,该服务使网络管理员能够跨订阅全局对虚拟网络进行分组、配置、部署和管理。

安全管理员规则的优先级始终高于网络安全组规则,因此首先进行评估。 “允许”安全管理规则将继续通过匹配网络安全组规则进行评估。 但“始终允许”和“拒绝”安全管理规则在处理安全管理规则后终止流量评估。 “始终允许”安全管理员规则将流量直接发送到资源,从而绕过可能存在冲突的网络安全组规则。 “拒绝”安全管理员规则会阻止流量,而无需将其传送到目标,强制实施基线安全策略,而不会造成网络安全组冲突、配置错误或引入安全漏洞的风险。 这些安全管理规则操作类型可用于强制实施流量传递,并防止下游网络安全组规则发生冲突或意外行为。

此行为对于理解非常重要,因为“始终允许”或“拒绝”作类型的流量匹配安全管理规则将无法访问网络安全组规则进行进一步评估。 若要了解详细信息,请参阅 安全管理员规则

流超时

重要

2027 年 9 月 30 日,网络安全组(NSG)流日志将停用。 作为此停用的一部分,从 2025 年 6 月 30 日起,您将无法再创建新的 NSG 流日志。 建议迁移虚拟网络流日志,从而克服 NSG 流日志的限制。 停用日期后,将不再支持使用 NSG 流日志启用的流量分析,并且订阅中的现有 NSG 流日志资源将被删除。 但是,不会删除 NSG 流日志记录,并且将继续遵循其各自的保留策略。 有关详细信息,请查看官方公告

流超时设置确定流记录在过期前保持活动状态的时间。 可以使用 Azure 门户或通过命令行配置此设置。 有关更多详细信息,请参阅 NSG 流日志概述

Azure 平台注意事项

  • 主机节点的虚拟 IP:基本的基础结构服务(如 DHCP、DNS、IMDS 和运行状况监视)通过虚拟化主机 IP 地址 168.63.129.16 和 169.254.169.254 提供。 这些 IP 地址属于 Microsoft,并且是所有区域中用于此目的的唯一虚拟化 IP 地址。 默认情况下,这些服务不受配置的网络安全组的限制,除非针对每个服务设定了特定的服务标记。 若要替代此基本基础结构通信,可以在网络安全组规则上使用以下服务标记创建一个安全规则来拒绝流量:AzurePlatformDNS、AzurePlatformIMDS、AzurePlatformLKM。 了解如何诊断网络流量筛选诊断网络路由

  • 许可(密钥管理服务) :在虚拟机中运行的 Windows 映像必须获得许可。 为了确保许可,系统会向处理此类查询的密钥管理服务主机服务器发送请求。 该请求是通过端口 1688 以出站方式提出的。 对于使用 默认路由 0.0.0.0/0 配置的部署,将禁用此平台规则。

  • 负载均衡池中的虚拟机:应用的源端口和地址范围来自源计算机,而不是来自负载均衡器。 目标端口和地址范围是目标计算机的,而不是负载均衡器的。

  • Azure 服务实例:多个 Azure 服务的实例(例如 HDInsight、应用程序服务环境和虚拟机规模集)部署在虚拟网络子网中。 查看 可部署到虚拟网络中的服务的完整列表。 在将网络安全组应用到子网之前,请熟悉每个服务的端口要求。 如果拒绝服务所需的端口,则服务无法正常运行。

  • 发送出站电子邮件:Microsoft 建议你利用经过身份验证的 SMTP 中继服务(通常通过 TCP 端口 587 进行连接,但也经常使用其他端口)从 Azure 虚拟机发送电子邮件。 SMTP 中继服务专门从事发件人信誉,以最大程度地减少合作伙伴电子邮件提供商拒绝邮件的可能性。 此类 SMTP 中继服务包括但不限于:Exchange Online Protection 和 SendGrid。 在 Azure 中使用 SMTP 中继服务绝不会受限制,不管订阅类型如何。

    如果在 2017 年 11 月 15 日之前创建了 Azure 订阅,除了能够使用 SMTP 中继服务外,还可以直接通过 TCP 端口 25 发送电子邮件。 如果在 2017 年 11 月 15 日之后创建了订阅,则可能无法直接通过端口 25 发送电子邮件。 经端口 25 的出站通信行为取决于订阅类型,如下所示:

    • 企业协议:在标准企业协议订阅下部署的虚拟机,TCP端口25上的出站SMTP连接不会被阻止。 但是,不能保证外部域接受来自 VM 的传入电子邮件。 如果外部域拒绝或筛选电子邮件,请联系外部域的电子邮件服务提供商来解决问题。 Azure 支持不予涵盖这些问题。

      对于 Enterprise 开发/测试订阅,默认情况下会阻止端口 25。 有可能删除这块障碍。 若要请求删除这项阻止,请转到 Azure 门户中 Azure 虚拟网络资源的“诊断和解决”设置页面的“无法发送电子邮件(SMTP-端口 25)”部分,并运行诊断程序。 此过程自动免除限定的企业开发/测试订阅。

      当订阅被豁免于此阻止条件,并在停止和重启 VM 后,该订阅内的所有 VM 未来都将被豁免。 豁免仅适用于所请求的订阅,仅适用于直接路由到 Internet 的 VM 流量。

    • 即用即付:阻止所有资源通过端口 25 进行出站通信。 无法提出解除限制的请求,因为请求不会被批准。 若需从虚拟机发送电子邮件,则需使用 SMTP 中继服务。

    • MSDN、Azure Pass、Azure 开放式许可、教育、免费试用版:阻止所有资源经端口 25 进行出站通信。 无法提出解除限制的请求,因为请求不会被批准。 若需从虚拟机发送电子邮件,则需使用 SMTP 中继服务。

    • 云服务提供商:阻止所有资源通过端口 25 进行出站通信。 无法提出解除限制的请求,因为请求不会被批准。 若需从虚拟机发送电子邮件,则需使用 SMTP 中继服务。

后续步骤