应用网关受IP限制

Mar*_*als 4 azure azure-application-gateway

我们有一个 azure 的 VM 集群,暴露了一些内部 API。为了更安全,我们使用应用程序网关来卸载 ssl。但我们也想限制可以访问此 API 的外部 IP。有没有办法只允许一定范围的 IP 通过应用程序网关连接?

谢谢。

4c7*_*b41 6

问:应用程序网关子网是否支持网络安全组?
应用程序网关子网支持网络安全组,但必须为端口 65503-65534 设置例外,以便后端运行正常。不应阻止出站互联网连接。

因此,只需在 NSG 的子网上创建一个网络安全组并限制 IP。网络安全组基本上是一个防火墙。
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-nsg


Cra*_*ons 6

对于那些在 2020 年看到这个问题的人,我要补充一点,与V2应用程序网关 sku 相比, V1 sku的端口范围是不同的。

如果您希望将网络安全组添加到应用程序网关所在的子网,则需要允许以下端口范围的所有入站流量:

V1:65503-65534

V2:65200-65535

作为参考,如果您尝试将 NSG 分配到应用程序网关子网,而不首先允许所需的端口范围(我的详细信息已被删除),Azure 门户将引发以下错误。

无法保存子网“xxxxxxxxxx”。错误:“网络安全组 xxxxxxxxxx/providers/Microsoft.Network/networkSecurityGroups/”。xxxxxxxxxx 阻止端口 65200 - 65535 到与应用程序网关 /subscriptions/xxxxxxxxxx/resourceGroups/xxxxxxxxxx/providers/ 关联的子网 /subscriptions/xxxxxxxxxx/resourceGroups/xxxxxxxxxx/providers/Microsoft.Network/virtualNetworks/xxxxxxxxxx/subnets/xxxxxxxxxx 的传入 Internet 流量Microsoft.Network/applicationGateways/xxxxxxxxxx。对于具有 V2 Sku 的应用程序网关来说,这是不允许的。

一般说明:

  1. 创建您的网络安全组。确保您创建两个传入规则 - (1) 允许上述定义的适用端口范围的所有传入流量,(2) 允许必要的应用程序端口,例如80443,它们是标准 HTTP 和 HTTPS 流量端口。当然,这应该与您的应用程序网关上的任何规则/侦听器配置相匹配。
  2. 从“虚拟网络”边栏选项卡中,选择适用的虚拟网络,然后从侧边栏中选择“子网”。然后,选择适用的子网,此时会出现一个配置面板,您可以通过该面板将 NSG 分配到您的子网。

我将进一步提请大家注意一些可能有帮助的提示。

  1. 为了管理公共 IP 流量,将网络安全组应用于后端池中定义的虚拟机将不起作用。路由到您的虚拟机的流量来自您的应用程序网关,当然,它是与您的应用程序网关关联的实例的 IP,而不是您可能尝试定位的面向公众的客户端 IP。
  2. 如果您正在测试策略(可能使用您自己的公共 IP),请务必注意,如果您尝试从现有浏览器会话访问应用程序,则不会反映这一点。通话将继续进行,直到您完全关闭浏览器或以其他方式使用隐身模式。
  3. 可以安全地向应用程序网关分配网络安全组,因为它不会导致停机(除非您忘记创建入站应用程序规则)。