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

Azure扩展支持云服务访问存储Blob时出现认证失败问题

排查云服务访问受限存储Blob的认证错误

以下是针对问题的具体排查步骤:

1. 确认云服务出站IP的完整性

  • 经典云服务的出站IP包含云服务VIP和实例级出站IP,需确保所有实际用于访问存储账户的IP都已添加到存储账户的允许IP列表中。
  • 可通过Azure门户查看云服务「属性」中的完整出站IP集合,或使用Azure PowerShell命令获取:
    Get-AzCloudService -ResourceGroupName <你的资源组> -Name <云服务名称> | Select-Object -ExpandProperty PublicIpAddresses
    
  • 注意:云服务缩放、重启后可能会变更出站IP,需定期核对允许列表是否更新。

2. 检查存储账户的网络例外设置

当存储账户限制为选定网络访问时,若使用存储账户密钥访问,需确认是否开启了「允许受信任的Microsoft服务访问此存储账户」选项(位于存储账户「网络」设置的「例外」区域)。即使云服务IP已加入允许列表,未开启此选项时,使用密钥的请求仍会被拦截。

3. 验证Azure AD令牌的有效性

若代码中使用应用注册的Azure AD令牌认证:

  • 解码令牌检查核心字段:
    • aud(受众)需为https://storage.azure.com/或目标存储账户的专属URL
    • exp(过期时间)需确保请求时令牌未失效
  • 确认应用注册的角色分配已生效:可通过Azure CLI验证角色分配状态:
    az role assignment list --assignee <应用注册客户端ID> --scope "/subscriptions/<订阅ID>/resourceGroups/<资源组>/providers/Microsoft.Storage/storageAccounts/<存储账户>/blobServices/default/containers/<容器名称>"
    

4. 确认云服务的实际出站IP

查看存储账户的「监控」→「日志」,筛选StorageBlobLogs中的失败请求,检查clientIpAddress字段,确认该IP是否已在允许列表中。若不在,说明云服务的出站流量未使用你添加的IP,需排查网络路由(如UDR、代理等)是否改变了源IP。

5. 考虑切换至VNet集成访问

若经典云服务部署在Azure VNet中,可将存储账户的允许列表改为添加该VNet,而非固定IP。这种方式无需维护IP列表,能避免IP变更导致的访问失败,同时更符合Azure网络安全最佳实践。


内容的提问来源于stack exchange,提问作者Elena Kennedy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:15:22