如何限制Azure Databricks用户访问特定ADLS挂载点
核心原因
现有挂载点绕过ADLS RBAC的本质是:创建挂载时使用了存储账户密钥、高权限服务主体或工作区托管标识作为统一认证凭据,挂载完成后所有能访问该挂载路径的用户,都会自动继承该预置凭据的ADLS访问权限,完全不会触发单个用户的ADLS RBAC校验,才会出现门户侧权限生效、Databricks侧访问不受限的问题。
可落地的权限限制方案
按管控强度和长期适配性排序,可选择以下方案:
- 方案1:Azure AD凭据直通认证挂载(最适配现有RBAC配置)
先删除原有使用静态凭据创建的受限ADLS挂载点,重新挂载时开启Azure AD凭据直通功能。开启后用户访问挂载路径时,Databricks不会使用预置的高权限凭据请求ADLS,而是直接透传当前登录用户的个人Azure AD身份做权限校验,你此前在ADLS侧配置的RBAC、ACL规则会完全生效,未授权用户访问时会直接返回403,和Azure门户侧的权限逻辑完全对齐。
注意需要在访问该挂载的集群、SQL仓库配置中提前开启凭据直通选项,不要给集群配置额外的高权限服务主体,避免出现权限越界。 - 方案2:Unity Catalog(UC)统一管控(长期最优方案)
如果已经部署或计划部署Databricks Unity Catalog,直接下线旧的/mnt路径下的受限存储全局挂载,将受限ADLS注册为UC的外部存储位置,在UC侧给存储位置、对应路径/外部表配置细粒度访问权限,仅向指定授权用户/用户组开放读写、浏览权限。
UC的权限校验是Databricks平台原生强制的,不管用户通过什么集群、什么接口访问存储路径,都会先经过UC权限校验,未授权的请求根本不会发送到ADLS侧,管控粒度更细,同时自带访问审计能力,适合敏感数据存储的长期管控。配置时可以直接在工作区设置中关闭非管理员创建全局挂载点的权限,避免后续再出现违规挂载。 - 方案3:挂载点路径权限拦截(临时过渡方案)
如果短期内无法调整挂载的认证方式,可以做兜底拦截:在Databricks工作区给受限存储的挂载路径配置对象访问权限,仅给授权用户组开放该路径的浏览、读写权限,普通用户无权限查看挂载点目录。
注意该方案属于平台侧软拦截,如果用户获得了高权限集群的执行权限存在绕过后门,仅适合临时过渡使用,不能作为长期安全管控手段。
配置避坑
- 禁止使用存储账户访问密钥挂载受限ADLS,密钥对应存储账户级全量权限,无法做路径、用户维度的细粒度管控,泄露风险极高
- 传统
/mnt路径下的全局挂载默认对所有有集群附加权限的用户开放,敏感数据存储不要使用该方式挂载 - 权限配置完成后必须使用未授权的普通用户账号做实际访问验证,确认访问受限路径返回403后再正式上线,不要仅依赖配置界面的状态判断有效性
内容的提问来源于stack exchange,提问作者Pulkit
相关产品推荐
相关产品推荐

