Azure App Service绑定VNet+NSG后报403,如何实现指定IP访问?
解决方案:通过VNet+NSG实现Azure App Service的特定IP访问(关闭App Service访问限制时)
核心问题分析
你遇到的403错误,本质是NSG规则未放行Azure App Service必需的健康检查与管理流量,同时规则优先级或范围配置不当。移除NSG或放宽IP范围时,这些必要流量被放行,服务因此恢复正常。
正确配置步骤
确认NSG关联对象
- 确保NSG关联到App Service集成的目标子网上,而非其他无关子网。
配置NSG入站规则(按优先级从高到低)
- 规则1:允许指定客户端IP访问
- 优先级:100(需高于默认拒绝规则)
- 源:填写你要允许的特定IP/IP段
- 目标:
Any(或子网地址范围) - 目标端口:
80,443(对应HTTP/HTTPS) - 协议:
TCP - 动作:
Allow
- 规则2:允许Azure健康检查流量
- 优先级:110(低于规则1,但高于默认拒绝)
- 源:选择
AzureLoadBalancer(Azure服务健康检查的来源) - 目标:
Any - 目标端口:
80,443 - 协议:
TCP - 动作:
Allow
- 保留默认拒绝规则:无需修改
DenyAllInBound(优先级65500),确保未被允许的流量全部被拒绝。
- 规则1:允许指定客户端IP访问
验证配置
- 用允许的IP访问API,确认返回正常响应;
- 用未授权的IP测试,确认返回403 Forbidden;
- 查看App Service的健康状态,确保实例未被标记为“不健康”。
之前测试有效的原因
- 移除NSG后,无任何流量限制,Azure健康检查和你的客户端流量都能正常到达;
- 添加所有出站IP+本地IP时,无意中包含了Azure健康检查的IP段,服务能正常响应,但这种配置不符合“仅允许特定IP”的需求。
内容的提问来源于stack exchange,提问作者Tahami Rizwan
相关产品推荐
相关产品推荐

