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

Databricks中ADLS2的受限访问挂载方案咨询

ADLS2挂载Databricks实现团队数据隔离方案

针对你提到的"挂载ADLS2后避免所有用户访问、实现多团队数据隔离"的需求,以下是几种可行的落地方案,完全适配多集群场景:

方案1:集群专属挂载+分团队服务主体

这是适配多团队独立集群场景的直接方案,核心是用专属服务主体+集群级挂载替代全局共享挂载:

  • 先在ADLS2端做权限隔离:为每个团队创建专属Azure服务主体(ASP),通过ADLS2的RBAC(如Storage Blob Data Contributor)或文件夹ACL,仅赋予该SP访问对应团队子文件夹(如/team-a/、/team-b/)的权限。
  • 取消全局挂载:不要在公共Notebook中执行挂载命令(这种挂载会对所有集群生效),而是将挂载逻辑写入集群初始化脚本,或在集群的Spark配置中添加挂载参数。这样挂载点仅在当前集群可见,其他集群无法访问。
  • 绑定团队与集群:给每个团队分配专属集群,通过Databricks工作区权限限制仅该团队用户能启动/使用集群。用户只能通过所属团队的集群,以对应SP的身份访问ADLS2数据,自然实现隔离。

挂载命令示例(写入集群初始化脚本):

dbutils.fs.mount(
  source = "abfss://container@your-adls-account.dfs.core.windows.net/team-a",
  mount_point = "/mnt/team-a",
  extra_configs = {
    "fs.azure.account.auth.type": "OAuth",
    "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
    "fs.azure.account.oauth2.client.id": "<team-a-sp-client-id>",
    "fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope="team-a-secret-scope", key="sp-secret"),
    "fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<your-tenant-id>/oauth2/token"
  }
)

注意:服务主体密钥必须存在Databricks密钥保管库(Secret Scope),禁止明文暴露。

方案2:用Unity Catalog(UC)实现细粒度权限管控

如果你的Databricks工作区已启用Unity Catalog,这是更合规、可审计的长期方案:

  • 注册ADLS2为外部位置:将ADLS2的容器或团队专属子文件夹注册为UC外部位置,关联拥有对应ADLS2权限的服务主体。
  • 映射数据为UC资产:基于外部位置创建UC目录(如team_a_db)、表,把ADLS2的非结构化/结构化数据映射为可管控的UC对象。
  • 分配组权限:在UC中给每个团队的Databricks用户组分配对应目录/表的权限(如SELECT、MODIFY)。用户仅能访问所属组有权限的UC资产,彻底实现数据隔离。

这种方式无需手动挂载,直接通过UC的统一权限体系管控,还能支持访问审计、数据 lineage 追踪。

方案3:DBFS路径权限+集群访问控制(无UC场景)

若暂时无法启用UC,可结合DBFS路径权限与集群访问控制实现隔离:

  • 按团队分路径挂载:将每个团队的ADLS2文件夹单独挂载到DBFS的独立路径(如/mnt/team-a、/mnt/team-b)。
  • 设置DBFS路径权限:用dbutils.fs.setPermission命令限制挂载路径的访问范围,仅允许特定用户组读写:
    dbutils.fs.setPermission("/mnt/team-a", "rwxr-x---")
    
  • 限制集群访问:为每个集群设置访问控制规则,仅对应团队的用户能启动和使用集群,避免跨集群访问其他团队的挂载路径。

关键注意事项

  • 禁止用单个服务主体全局挂载ADLS2根目录,这会导致所有用户都能通过该SP的权限访问全量数据。
  • ADLS2本身的RBAC/ACL是核心:挂载后的访问权限完全依赖于挂载所用SP的权限,务必先在ADLS2端做好团队级权限隔离。
  • 所有敏感信息(如SP密钥)必须存入Databricks Secret Scope,禁止明文出现在代码或配置中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:50:29