Azure WebApp静态出站IP

时间:2019-09-04 12:25:20

标签: azure azure-virtual-network azure-app-service-plans azure-application-gateway

我正在尝试解决问题。我必须从Azure托管的Web API访问本地服务器(本地)上托管的API。

问题是我的本地服务器仅允许列出白名单的IP。我知道我们可以从我们的Web应用程序(Azure托管)中获取出站IP。但是我不确定它们是静态的还是会根据缩放比例而变化。

另一个解决方案是创建VNET并将该Web应用程序添加到该VNET中。但我希望有人提出更好的解决方案。

4 个答案:

答案 0 :(得分:1)

您有几种选择。

首先,您可以查看应用服务的possibleOutboundIpAddress并将此IP列入白名单。但是,这也为您的应用服务未真正使用的IP打开了大门。

az webapp show --resource-group <group_name> --name <app_name> --query possibleOutboundIpAddresses --output tsv

其次,您可以将NAT网关置于App Service的前面。但是,这需要支持虚拟网络集成的App Service Plan。

  1. 从您的应用程序服务内部配置区域虚拟网络集成。
  2. 强制所有源自该应用程序的出站流量通过虚拟网络传播。通过在您的Web应用程序配置中设置WEBSITE_VNET_ROUTE_ALL = 1属性来完成
  3. 创建公共IP地址。
  4. 添加NAT网关,将其附加到包含应用程序服务的子网中,并使用在步骤3中创建的公共IP。

如果您还想使用静态入站IP,则可以找到更多信息here

答案 1 :(得分:0)

Azure App服务的出站IP通常是静态的,并且在扩展时不会更改。通常有4个出站IP,并且只有在更改SKU或MS端需要增加其数据中心的容量时才更改(很少或在不久的将来可能不会发生)。

我建议创建一个VNET,因为它比在本地服务中将IP列入白名单更安全。但是,如果要列出出站IP,我建议在Azure中为您的本地API创建包装,并在本地防火墙中为这些IP创建IP白名单。这样可以确保您不必每次都要在Azure中创建需要访问内部API的API时都将其列入白名单。

答案 2 :(得分:0)

不幸的是,在Azure for App Services中没有直接的方法可以做到这一点,最近我也遇到了这个问题。 到目前为止,唯一的解决方案是将App Service的出站IP列表添加到您的允许规则中。

请注意在各层之间进行扩展,因为这会更改出站IP地址。 https://docs.microsoft.com/en-us/azure/app-service/overview-inbound-outbound-ips#when-outbound-ips-change

最简单的方法是使用带有静态公共IP的Azure VM,该IP用于入站和出站。 山姆·科根(Sam Cogan)的博客文章不错,他确实做了几个选择。 https://samcogan.com/obtaining-a-static-outbound-ip-from-an-azure-virtual-network/

答案 3 :(得分:0)

混合连接 https://docs.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections 怎么样?我认为它们是为访问本地服务而设计的。