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

Azure Storage BLOB通过SAS令牌URL公网访问的最佳实践咨询

Azure Blob SAS链接公网访问最佳实践

针对你遇到的问题,这里提供几个可行的最佳实践方案,并非只能开启全网络访问:

方案1:限定权限的SAS令牌 + 存储账户全网络访问

  • 生成SAS令牌时,严格控制权限:只授予读权限(避免写/删除等高风险操作),仅针对单个目标Blob生成,不要给容器级SAS。
  • 缩短SAS令牌的有效期:根据业务需求设置最短可行时间(比如1-24小时),降低链接泄露后的风险。
  • 保持容器/Blob的匿名访问禁用状态,确保只有持有有效SAS令牌的用户才能访问。
  • 这种方案实现简单,适合大多数公网分发场景,只要SAS令牌的权限和有效期管控到位,安全性可以得到保障。

方案2:Azure CDN中转访问(无需存储账户开全网络)

  • 将存储账户配置为Azure CDN的源端点,存储账户的防火墙仅允许Azure CDN的IP范围访问(Azure官方提供CDN的IP段列表可直接导入防火墙规则)。
  • 用户通过CDN的公网端点访问Blob,你可以将SAS令牌附加到CDN的请求URL中,CDN会自动中转请求到存储账户。
  • 这种方案既保证了存储账户的网络隔离,又能让公网用户正常访问,同时CDN还能提供缓存、加速的额外优势,适合大文件或高访问量场景。

方案3:用户委派SAS令牌(适配Azure AD集成场景)

  • 如果你的系统已经集成Azure AD,可以使用用户委派SAS令牌:基于用户的Azure AD身份生成SAS,权限与用户的AD权限绑定。
  • 存储账户配置为仅允许Azure AD身份访问(禁用账户密钥访问),用户通过有效AD身份获取或使用你生成的用户委派SAS链接访问Blob。
  • 这种方案安全性最高,无需开放存储账户公网访问,适合企业内部或有身份管控需求的场景。

关于你遇到的AuthorizationFailure错误

该错误确实是因为存储账户的网络防火墙限制了公网IP访问,即使持有SAS令牌,不在允许IP列表里的请求会被直接拦截。上述方案都能解决这个问题,可根据你的业务场景选择最适合的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:03:25