最近遇到一个客户提出的关于App Services出站IP地址的需求,具体如下:

需求:

运行在App Services上的应用程序需要和很多外部系统做集成,也就是说,应用系统需要访问到外部应用获取一些业务数据。为了确保数据的安全性,外部系统需要配置相关白名单来限制谁可以获取数据。默认情况下Azure App Services的出站IP是不固定的,微软给我们提供了一个可能会使用的出站IP List,但是客户嫌List内的IP地址太多,所以想把范围缩小,最好有一个固定的出站IP地址来解决这个问题。

经过一番研究以后,笔者给到客户如下解决方案:

解决方案:

对需要访问外部应用获取数据的App Services配置虚拟网络集成,配置完虚拟网络集成以后,虚拟网络集成负责App Services的出站流量。此时,我们还需部署一个Azure NAT Gateway并关联到虚拟网络集成的子网,这时App Services的站就会通过Azure Nat Gateway的固定IP出站。

配置方式:

配置App Services虚拟网络集成:

切换到对应的App Services,点击“网络”--“VNet“集成”:

解决Azure App Services出站IP不固定问题_虚拟网络

配置App Services集成到VNet的特定Subnet:

解决Azure App Services出站IP不固定问题_App_02

配置完成,如下图所示:

解决Azure App Services出站IP不固定问题_App_03

创建并配置Azure NAT Gateway

创建一个NAT网关,输入名称,选择区域:

解决Azure App Services出站IP不固定问题_IP_04

配置公共IP地址,有需要也可使用公共IP前缀:

解决Azure App Services出站IP不固定问题_App_05

配置虚拟网络和子网关联,关联以后,子网内的App Services出站就会使用NAT网关出站:

解决Azure App Services出站IP不固定问题_IP_06

确认无误点击创建:

解决Azure App Services出站IP不固定问题_App_07

创建完成,如下图所示,此时可以看到子网已经关联到了NAT网关中:

解决Azure App Services出站IP不固定问题_App_08

此时出站的IP即为一个固定的公网IP:

解决Azure App Services出站IP不固定问题_虚拟网络_09