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

Synapse Pyspark Notebook访问ADLS Gen2报403未授权问题咨询

问题现象

在Azure Synapse Analytics的PySpark Notebook中执行以下命令,尝试访问ADLS Gen2存储账户下的指定目录:

mssparkutils.fs.ls("abfss://mycontainer@myadfs.dfs.core.windows.net/myfolder/")

执行后抛出如下403异常:

Py4JJavaError: An error occurred while calling z:mssparkutils.fs.ls.
: java.nio.file.AccessDeniedException: Operation failed: "This request is not authorized to perform this operation.", 403, GET, https://myadfs.dfs.core.windows.net/mycontainer?upn=false&resource=filesystem&maxResults=5000&directory=myfolder&timeout=90&recursive=false, AuthorizationFailure, "This request is not authorized to perform this operation.

已完成配置:参照官方指引为个人账号、Synapse工作区托管标识在目标存储容器(文件系统)层级分配了「Storage Blob Data Contributor」角色,仍持续触发上述报错,需排查遗漏的配置步骤。

根因排查与解决方案

按优先级从高到低逐项排查以下配置点,绝大多数场景下前两项即可解决问题:

  • 检查存储账户网络防火墙配置
    1. 如果存储账户防火墙设置为「选定网络」访问模式,必须勾选允许受信任的Microsoft服务访问此存储账户选项,Synapse属于微软官方认定的受信任服务,未开启该选项时,哪怕角色权限配置完全正确也会被防火墙直接拦截返回403。
    2. 如果Synapse工作区开启了托管VNet,必须为目标ADLS Gen2存储创建指向dfs.core.windows.net端点的托管专用终结点,且在存储账户侧批准该终结点的连接请求,公网访问受限场景下未配置专用终结点会直接被网络层拦截。
    3. 若没有配置专用终结点,需要把Synapse工作区的出站公网IP段加入存储账户防火墙的允许IP列表。
  • 检查Notebook会话的运行身份配置
    打开Notebook顶部的会话配置面板,确认当前会话使用的身份和你分配权限的身份匹配:
    1. 如果会话身份选择的是「工作区托管标识」,给个人账号分配的权限不会在当前会话生效
    2. 如果会话身份选择的是「用户AAD身份直通」,给托管标识分配的权限不会在当前会话生效
      身份匹配错误是双权限都配置完仍报403的最常见原因。
  • 检查权限拦截策略
    1. Azure RBAC角色分配最长需要10分钟完成全局同步,刚分配完权限立刻执行命令会因为权限未生效报错,等待后重试即可。可以在Notebook中执行mssparkutils.credentials.getToken("https://storage.azure.com/")验证当前会话是否能正常拿到存储资源的访问令牌。
    2. 检查是否存在作用域覆盖目标存储的Azure Policy拒绝分配、自定义角色拒绝规则,拒绝策略的优先级高于所有允许类角色分配,会直接覆盖Storage Blob Data Contributor的权限。
    3. 如果使用用户身份直通访问,检查是否有AAD条件访问策略拦截了当前访问请求,比如要求指定IP范围、强制MFA的策略,未满足策略要求时身份校验会直接失败。
  • 检查ADLS Gen2的ACL权限配置
    ADLS Gen2采用RBAC+POSIX ACL的双层权限模型,仅配置RBAC角色不足够:如果容器或目标目录配置了自定义ACL,当前使用的身份必须拥有从容器根目录到目标路径所有层级的*执行(X)权限,以及目标目录的读(R)*权限,ACL拒绝规则会直接覆盖RBAC的允许权限。

快速定位技巧:可以临时将存储账户防火墙调整为「所有网络可访问」,将Notebook会话身份切为工作区托管标识,在容器根目录为托管标识同时配置访问ACL、默认ACL的全量权限,等待10分钟后重试。如果重试成功,再逐项收紧配置定位具体的拦截点即可。

内容的提问来源于stack exchange,提问作者Quynh-Mai Chu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:03:31