不优先使用VNet集成时,如何限制仅Azure App Service可访问Azure存储端点?
仅允许指定App Service访问Blob容器的实现方案(VNet集成作为备选)
以下方案均不需要配置VNet集成,可根据业务改造成本、安全要求选择适配方案:
- 方案1:存储账户防火墙白名单App Service出站IP
将存储账户公网访问模式设置为*「启用所选虚拟网络和IP地址」*,在防火墙白名单中添加对应App Service的所有出站IP。App Service的出站IP可在其配置页的「属性」板块直接获取,仅当调整App Service的SKU/区域时才需要更新白名单。该方案无需修改现有业务代码,配置完成后可直接关闭Blob容器的匿名访问权限,阻断公网其他用户的直接访问。 - 方案2:托管身份 + 存储RBAC权限控制
为App Service启用系统分配或用户分配托管身份,在Blob容器的IAM配置中,为该托管身份授予存储Blob数据参与者/读取者(根据实际操作需求选择对应权限)的RBAC角色。业务代码可直接通过Azure.Identity库的DefaultAzureCredential调用存储接口,无需维护任何存储密钥或访问凭证。该方案完全基于身份鉴权,安全性最高,无需配置IP规则,配置完成后同样建议关闭容器匿名访问权限。 - 方案3:受限共享访问签名(SAS)访问
生成仅授予App Service所需操作权限、设置合理过期时间、限制仅允许App Service出站IP访问的SAS令牌,将该令牌配置到App Service的环境变量中,业务代码调用Blob接口时携带该SAS即可。你可以同步将Blob容器设置为私有,所有访问必须携带有效SAS才能完成,无需调整存储防火墙规则即可阻断匿名访问请求。
所有方案都建议在验证可用性后关闭Blob容器的匿名访问权限,从根源降低未授权访问风险。
内容的提问来源于stack exchange,提问作者nen
相关产品推荐
相关产品推荐

