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

从Databricks访问存储账户子目录时遇403授权错误(疑网络问题)

解决VNet注入Databricks访问存储账户子目录403权限问题

问题现象

  • 执行dbutils.fs.ls("abfss://bronze@mycontainer.dfs.core.windows.net/")可正常列出容器根目录内容
  • 执行dbutils.fs.ls("abfss://bronze@mycontainer.dfs.core.windows.net/graph_api/")或dbutils.fs.put操作时返回403错误:This request is not authorized to perform this operation
  • 存储账户网络设置改为“允许所有网络访问”时,子目录操作恢复正常

现有配置与环境

  • 已配置关联Workspace访问连接器的外部位置,连接器拥有存储账户Storage blob data contributor权限
  • 本人是存储账户和外部位置的所有者,且自身拥有Storage blob data contributor权限
  • 环境为VNet注入的Databricks,存储账户网络设置为“允许选定虚拟网络和IP地址访问”,已将两个子网加入白名单,子网附加了存储账户服务端点,未使用专用端点

排查与解决步骤

1. 确认子网服务端点覆盖范围

检查加入存储账户白名单的两个子网是否完全覆盖Databricks的控制平面和数据平面子网。VNet注入的Databricks依赖这两个子网的流量,需确保它们都已添加到存储账户的虚拟网络允许列表,且都启用了Microsoft.Storage服务端点。

2. 验证子目录级权限配置

  • 若存储账户启用分层命名空间(ADLS Gen2),检查graph_api/子目录的自定义ACL设置,确保Workspace访问连接器或你的账户拥有读写权限
  • 确认Storage blob data contributor角色的作用范围包含目标子目录(或上级容器/存储账户),避免权限仅作用于根目录

3. 检查集群网络路由与NSG规则

  • 查看Databricks集群子网的路由表,确保没有将Microsoft.Storage流量路由到公网的规则,保证流量通过服务端点访问存储账户
  • 验证NSG规则是否允许集群子网出站访问Microsoft.Storage的HTTPS流量(端口443)

4. 检查外部位置配置

确认外部位置的路径是否指向容器根目录(abfss://bronze@mycontainer.dfs.core.windows.net/),若外部位置路径限制到特定子目录,会导致访问其他子目录失败。同时确认外部位置的权限已正确关联到Databricks工作区。

5. 开启存储账户的信任服务访问选项

在存储账户的防火墙设置中,开启“允许受信任的Microsoft服务访问此存储账户”选项,避免Databricks控制平面的操作被拦截。

6. 排查RBAC权限的继承问题

若子目录继承了异常的权限设置,可通过Azure CLI重置子目录的权限继承:

az storage fs access set --account-name <存储账户名> --file-system bronze --path graph_api --inherit true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:47:14