Databricks访问连接器是否为Azure受信任资源?Unity Catalog存储403排查
针对你遇到的测试连接成功但Notebook访问403的问题,核心原因是测试连接与Notebook运行的流量路径完全不同:测试连接由Databricks控制平面发起,而Notebook代码由计算集群节点执行,流量走集群的网络出口。以下是具体排查和修复步骤:
确认托管标识权限的作用范围与生效状态
检查Blob Contributor权限是否直接添加到了目标存储账户或具体容器上,而非仅添加到父资源组(若存储账户未开启权限继承则无效)。同时等待5-10分钟,确保Azure RBAC权限完成同步(部分场景下存在延迟)。验证外部位置与凭证的绑定关系
确认创建外部位置时指定的凭证,是否正确关联了拥有Blob Contributor权限的托管标识。可通过以下SQL语句核对:DESCRIBE CREDENTIAL <your-credential-name>;输出中的
IDENTITY字段应匹配你配置的托管标识ID。修正集群网络的存储访问权限
你提到的“将连接器加入受信任资源”仅能让Databricks控制平面绕过存储网络规则(对应测试连接场景),但Notebook运行的计算集群流量不受此规则覆盖:- 若使用VNet注入集群:将集群所在的子网添加到存储账户的“允许的虚拟网络”列表中;
- 若使用默认集群:获取集群的出站IP地址(可在集群详情页的“网络”标签查看),将其添加到存储账户的防火墙允许IP列表。
检查存储账户的防火墙额外设置
若存储账户开启了严格的网络限制,确认是否勾选了“允许受信任的Microsoft服务访问此存储账户”——虽然这对Databricks计算集群流量无直接作用,但部分场景下可避免控制平面与存储的交互异常,间接影响外部位置的可用性。直接在Notebook中验证权限
执行以下命令测试基础访问,定位问题是否在权限或网络层面:dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/")若仍返回403,优先排查网络规则;若返回权限错误,重新核对托管标识的RBAC配置。
内容的提问来源于stack exchange,提问作者Bobby

