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

使用Azure Blob Storage如何实现同一容器内不同Blob的访问权限隔离

同容器下Blob路径级互斥访问的实现方案

Azure Blob Storage本身没有原生的文件夹实体,路径本质是Blob名称的前缀,你可以通过以下3种主流方案实现前缀维度的访问隔离:

  • 方案1:AAD RBAC + ABAC条件控制(推荐无外部用户的内部场景使用)
    直接给不同授权主体分配存储内置角色(比如存储Blob数据读取者、存储Blob数据贡献者),在角色分配时添加ABAC过滤条件,限制主体只能访问匹配指定前缀的Blob。
    以授权某AAD用户仅可访问images容器下design1/前缀的资源为例,添加的条件规则如下:
    操作集:匹配所有数据操作
    表达式:@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:prefix] StringEquals 'images/design1/'
    
    也可以添加拒斥条件,禁止主体访问其他路径前缀的资源,实现严格的互斥访问。这个方案无需额外开发,所有权限控制由Azure原生能力实现,审计也更方便。
  • 方案2:前缀限定的SAS令牌(推荐外部用户访问场景使用)
    如果你需要给没有AAD身份的外部主体授权,可以生成带路径前缀限制的SAS令牌。生成服务SAS或者用户委托SAS时,指定prefix=design1/参数,生成的令牌仅能访问对应前缀下的所有Blob,将不同前缀的SAS分发给对应主体即可实现隔离。
    示例SAS参数片段:
    sp=r&st=2024-05-01T00:00:00Z&se=2024-06-01T00:00:00Z&spr=https&sv=2022-11-02&sr=c&prefix=design1/&sig=xxx
  • 方案3:绑定存储访问策略的SAS
    如果需要灵活调整权限有效期、随时回收权限,可以先给每个路径前缀创建独立的存储访问策略,再将SAS和对应策略绑定。后续需要回收权限直接删除对应策略即可,无需重新分发新的SAS。

注意事项:所有路径级访问控制都是基于前缀匹配实现的,命名路径前缀时要避免重叠,比如不要同时出现design1/和design12/这类前缀,否则会出现误匹配的权限泄露问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:24:03