You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需使用VNET将Azure App Service连接到受IP限制的存储账户

可行方案

方案1:补全App Service出站IP白名单(无需改代码)

  • 进入App1的「属性」页面,复制所有出站IP和附加出站IP两个字段下的全部IP地址,不要遗漏
  • 把上述所有IP添加到存储账户的防火墙白名单中,保留原有公司内部IP段的配置
  • 原有存储连接字符串可直接沿用,不需要修改App代码
  • 注意:App Service出站IP会在你变更服务计划层级、切换区域、开启缩放等操作时变动,需要同步更新存储白名单。

方案2:托管标识+存储资源实例规则(最稳定,无需维护IP)

  • 确认你已经为App1开启系统分配托管标识,并为该标识分配了对应存储账户/目标Blob容器的「存储Blob数据参与者」权限
  • 进入存储账户「网络」配置页,找到「资源实例」配置区域
  • 资源类型选择Microsoft.Web/sites,实例选择你的App1,保存配置
  • 修改App1中存储连接字符串为:DefaultEndpointsProtocol=https;AccountName=<替换为你的存储账户名>;EndpointSuffix=core.windows.net
  • 调整存储访问代码,使用DefaultAzureCredential类进行身份验证,.NET Framework 4.8原生支持该认证方式
  • 该规则会让App1的流量直接绕过存储的IP防火墙校验,仅验证身份权限,不需要维护IP白名单,安全性更高。

方案3:SAS令牌访问(无需改身份配置)

  • 为App1使用的存储容器生成带权限限制、有有效期的SAS令牌
  • App1使用SAS令牌拼接的连接字符串访问存储,不需要调整存储网络配置
  • 注意需要定期轮换SAS令牌,避免泄露风险。

之前配置未生效的原因
  1. 「允许受信任服务列表中的Azure服务访问此存储账户」开关仅对微软官方托管的第一方服务生效,普通用户创建的Web App不在受信任服务列表中,所以开启后也不会生效,必须手动配置资源实例规则才能让你的App绕过IP校验。
  2. 仅为App1分配RBAC权限无法绕过存储的网络防火墙规则,存储的网络访问校验优先级高于身份权限校验,只要流量不在允许的网络范围内,就算身份权限正确也会被拦截。
  3. 如果你之前添加App出站IP时只加了部分出站IP,没有包含附加出站IP,也会出现部分请求被拦截的情况。

内容的提问来源于stack exchange,提问作者Daniel Procházka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:24:07