使用SAS认证通过URI直接访问Azure Blob Storage遇403错误求助
解决Azure Blob Storage通过SAS直接访问的403认证错误
核对存储账户名一致性
确保spark.conf配置中的<storage-account>和读取路径里的<storage-account-name>完全一致(Azure存储账户名是小写格式,需注意拼写错误、大小写差异)。验证SAS令牌的有效性与权限
- 确认SAS令牌未过期,没有设置IP限制或其他访问控制规则阻挡当前Databricks集群的IP。
- 确保SAS令牌拥有**读取(Read)**权限,且资源范围覆盖目标路径:如果是容器级SAS,需包含对应容器的权限;如果是对象级SAS,要确保路径与令牌授权范围匹配。
- 注意令牌格式:去掉开头的
?符号,只保留sv=...&ss=...&srt=...这类核心内容。
简化Spark配置参数
替换原有的FixedSASTokenProvider配置,改用更直接的容器级SAS配置方式:# 替换为实际存储账户名、容器名和SAS令牌 spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "SAS") spark.conf.set("fs.azure.sas.<container-name>.<storage-account>.dfs.core.windows.net", "<token>")这种方式无需指定令牌提供者,减少配置复杂度。
检查ABFS路径格式
确认读取路径格式正确:spark.read.load("abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path-to-data>")路径中不要包含多余的斜杠或特殊字符,确保
<path-to-data>指向正确的文件或目录。
内容的提问来源于stack exchange,提问作者Tarique
相关产品推荐
相关产品推荐

