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

使用Azure Synapse Analytics笔记本写数据到ADLS Gen2出现403错误如何解决

报错诱因
  • 核心原因是Spark存储账户授权配置的键名格式错误:你当前写的spark.conf.set的配置键拼接了容器名、路径,不符合ADLS Gen2的Spark配置规范,系统无法识别到正确的存储账户密钥,导致请求被拒绝返回403。
  • 次要可能诱因:
    • 存储账户密钥填写错误
    • 存储账户设置了IP访问限制,未放行Synapse工作区的出站IP
    • 若使用托管身份认证而非账户密钥,Synapse工作区托管身份未被授予存储容器的对应读写权限
修复方案

方案1:使用存储账户密钥认证(快速修复)

替换你原代码中错误的配置行,正确的配置格式如下:

# 替换原spark.conf.set那一行
spark.conf.set(f'fs.azure.account.key.{account_name}.dfs.core.windows.net', "你的存储账户访问密钥")

注意:不要在代码中硬编码密钥,建议通过Synapse的Linked Service关联存储账户,或从Azure Key Vault中读取密钥。

方案2:使用托管身份认证(更安全,推荐)

无需硬编码密钥,提前在Azure门户给Synapse工作区的系统托管身份分配目标存储容器的「存储Blob数据贡献者」权限,然后用以下配置:

spark.conf.set(f'fs.azure.account.auth.type.{account_name}.dfs.core.windows.net', 'OAuth')
spark.conf.set(f'fs.azure.account.oauth.provider.type.{account_name}.dfs.core.windows.net', 'org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider')

配置完成后再执行写入操作即可。

额外排查项

如果修改配置后依然报错:

  • 确认存储账户访问密钥/角色权限配置正确
  • 检查存储账户的防火墙设置,放行Synapse工作区的IP段,或开启「允许受信任的Azure服务访问此存储账户」选项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:27:03