如何在外部App Service Environment(ASE)中实现Web应用差异化访问控制?
需求可行性确认
完全可以通过单个外部App Service Environment(ASE)实现你的需求!外部ASE本身是面向互联网的,但我们可以通过**网络安全组(NSG)**结合Web应用的访问控制策略,精准区分不同Web应用的访问路径,不用额外部署ILB ASE,刚好契合你减少ASE数量的要求。
具体配置方案
一、NSG核心规则配置
外部ASE所在的子网会关联一个NSG,我们需要在这个NSG上添加以下规则(记住NSG规则是优先匹配序号越小的规则,所以把严格的规则放在前面):
允许VPN客户端/本地网络访问Web应用A、B
- 规则优先级:100(数值越小优先级越高)
- 方向:入站
- 源:你的P2S VPN客户端地址池 + S2S VPN对等的本地网络地址范围
- 目标:Web应用A、B的ASE出站IP(或者直接指定ASE子网的地址范围,更灵活)
- 端口:80(HTTP)、443(HTTPS)
- 动作:允许
拒绝互联网直接访问Web应用A、B
- 规则优先级:110
- 方向:入站
- 源:Internet(或0.0.0.0/0)
- 目标:Web应用A、B的ASE出站IP
- 端口:80、443
- 动作:拒绝
允许互联网通过Azure WAF访问Web应用C
- 规则优先级:120
- 方向:入站
- 源:Azure WAF的公网IP(如果是应用网关集成的WAF,就是应用网关的前端IP)
- 目标:Web应用C的ASE出站IP
- 端口:80、443
- 动作:允许
保留NSG自带的默认入站拒绝规则(优先级65500),不用修改,作为最后一道拦截防线。
二、Web应用层面的强化配置
光靠NSG还不够,在Web应用本身加一层防护更稳妥:
- 对于Web应用A、B:进入配置 > 网络 > 访问限制,添加允许规则,只放行你的VPN地址池和本地网络地址,拒绝其他所有来源。就算NSG规则有疏漏,应用层面也能二次拦截。
- 对于Web应用C:把它关联到Azure WAF(可以是应用网关集成的WAF,或者Azure Front Door WAF),确保所有互联网流量先经过WAF过滤再到应用。同时在Web应用C的访问限制里,只允许WAF的IP访问,避免有人绕开WAF直接访问。
三、关键注意事项
- 别删ASE部署时自动添加的NSG规则:这些规则是用来允许Azure管理服务访问ASE的,删了可能导致ASE无法正常更新或维护。
- 如果用应用网关WAF:要把应用网关部署在和ASE同VNet或者对等互联的VNet里,保证流量能正常转发到Web应用C。
- 定期检查配置:隔段时间看看NSG规则和Web应用的访问限制,确保没有误拦截或者漏拦截的情况。
内容的提问来源于stack exchange,提问作者DevUser
相关产品推荐
相关产品推荐

