介绍 Azure 网络安全组
使用网络安全组 (NSG),可以筛选流入和流出 Azure 虚拟网络中 Azure 资源(例如虚拟机)的网络流量。 NSG 由定义如何筛选流量的规则组成。 只能将一个网络安全组与虚拟机中的每个虚拟网络子网和网络接口相关联。 但是可将同一网络安全组关联到所选的任意数量的多个子网和网络接口。
在下面的高度简化的图中,可以看到一个 Azure 虚拟网络,它有两个子网连接到 Internet,每个子网都有一台虚拟机。 子网 1 分配有一个 NSG,用于筛选对需要更高级别的访问权限的 VM1 的入站和出站访问。 相比之下,VM2 可以代表不需要 NSG 的面向公众的虚拟机。
入站和出站安全规则
NSG 由入站和出站安全规则组成。 为了确定是允许还是拒绝流量,使用 5 个信息点(源、源端口、目标、目标端口和协议)按优先级对 NSG 安全规则进行评估。 默认情况下,Azure 会创建一系列规则(三个入站规则和三个出站规则),以提供基线级别的安全性。 无法删除默认规则,但可创建优先级更高的新规则来替代它们。
每个规则指定以下一个或多个属性:
- 名称:每个 NSG 规则都需要有一个描述其用途的唯一名称。 例如,AdminAccessOnlyFilter。
- 优先级:规则按优先级顺序进行处理,其中编号更小的规则先于编号更大的数字进行处理。 当流量与规则匹配时,处理就会停止。 也就是说,其他任何具有较低优先级(较高数字)的规则都不会被处理。
- 源或目标:指定单个 IP 地址或 IP 地址范围、服务标记(来自给定 Azure 服务的一组 IP 地址前缀)或应用程序安全组。 指定范围、服务标记或应用程序安全组可以减少创建的安全规则数。
- 协议:规则将检查什么网络协议? 协议的值可以是“TCP”、“UDP”、“ICMP”或“任何”。
- 方向:规则是应该应用于入站流量,还是应用于出站流量。
- 端口范围:可以指定单个端口,也可以指定端口范围。 通过指定范围,可以提高创建安全规则的效率。
- 操作:最后,需要决定在此规则触发时执行什么操作。
下面的屏幕截图显示了所有 NSG 中包含的默认入站规则和出站规则。
默认入站规则的说明如下:
AllowVNetInBound - 首先处理 AllowVNetInBound 规则,因为它的优先级值最低。 回想一下,首先处理优先级值最低的规则。 此规则允许流量使用任何协议从具有 VirtualNetwork 服务标记的源到任何端口上具有 VirtualNetwork 服务标记的目标。 如果找到了此规则的匹配项,则不会处理其他规则。 如果未找到匹配项,则将处理下一个规则。
AllowAzureLoadBalancerInBound - 其次处理 AllowAzureLoadBalancerInBound 规则,因为它的优先级值高于 AllowVNetInBound 规则。 此规则允许流量使用任何协议从具有 AzureLoadBalancer 服务标记的源到任何端口上具有 AzureLoadBalancer 服务标记的目标,再到任何端口上的任何 IP 地址。 如果找到了此规则的匹配项,则不会处理其他规则。 如果未找到匹配项,则将处理下一个规则。
DenyAllInBound - 此 NSG 中的最后一个规则是 DenyAllInBound 规则。 此规则使用任何协议拒绝从任何端口上的任何源 IP 地址到任何端口上的任何其他 IP 地址的所有流量。
总之,此 NSG 分配到的任何虚拟网络子网或网络接口卡仅允许来自 Azure 虚拟网络或 Azure 负载均衡器的入站流量(如它们各自的服务标记所定义)。 拒绝所有其他入站网络流量。 无法删除默认规则,但可创建优先级更高的新规则来替代它们(低优先级值)。
网络安全组 (NSG) 和 Azure 防火墙之间有何区别?
了解网络安全组和Azure 防火墙后,你可能想知道它们的不同之处,因为它们都保护虚拟网络资源。 Azure 防火墙服务为网络安全组功能提供了补充。 两者共同提供了更好的“深层防御”网络安全性。 网络安全组提供分布式网络层流量筛选,以将流量限制为每个订阅中虚拟网络内的资源。 Azure 防火墙是一种完全处于监控状态的集中式网络防火墙即服务,可跨不同的订阅和虚拟网络提供网络和应用程序级保护。