如何在Azure Data Lake Gen2中限制特定团队仅访问指定容器?
Azure Data Lake Storage 容器权限隔离实现方案
核心逻辑:两个团队当前持有资源组级别的访问权限,默认会向下继承到存储账户,导致可查看所有容器。需要先阻断全局容器枚举权限,再针对单个容器配置独立访问权限。
前置准备
将团队1、团队2的成员分别加入两个独立的Azure AD安全组,后续所有权限均绑定安全组,方便后续人员调整时不需要反复修改权限配置。
步骤1:阻断存储账户层面的全局容器枚举权限
进入对应ADLS存储账户的「访问控制(IAM)」页面:
- 找到两个团队对应的AAD安全组,分别为其添加拒绝权限:
- 权限范围选择「此资源」
- 操作选择
Microsoft.Storage/storageAccounts/blobServices/containers/read - 保存配置
- 该拒绝权限优先级高于继承的资源组允许权限,配置后两个团队都无法在存储账户层面枚举所有容器列表。
步骤2:为单个容器配置专属访问权限
分别进入container1、container2的「访问控制(IAM)」页面:
- 针对container1:添加团队1的AAD安全组,分配对应业务需要的角色,常用角色如下:
- 读写权限:
存储 Blob 数据参与者 - 只读权限:
存储 Blob 数据读者
- 读写权限:
- 针对container2:添加团队2的AAD安全组,分配对应业务需要的角色
- 上述权限仅作用于当前单个容器,不会影响其他容器的访问权限。
步骤3:验证隔离效果
配置完成后做如下校验:
- 团队1成员登录Azure Portal/存储资源管理器,访问该存储账户时仅能看到container1,无法查看、访问container2的任何内容
- 团队2成员登录后仅能看到container2,无法查看、访问container1的任何内容
注意事项
- 建议关闭存储账户的共享密钥访问功能,强制所有访问走Azure AD身份认证,避免权限管控被绕过
- 如果团队持有资源组级别的所有者权限,需要先调整资源组权限分配,避免所有者可自行修改存储账户的IAM配置绕过隔离规则
内容的提问来源于stack exchange,提问作者Techno_Eagle
相关产品推荐
相关产品推荐

