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

Databricks读取Azure Blob存储文件身份验证失败,求其他解决办法

Databricks访问Azure存储认证错误的额外排查方案

问题场景

在Databricks中执行以下代码读取Azure存储CSV文件时:

date_config = spark.read.option("header", True).option("inferSchema", True).csv(f"{DBX_SAMPLE_MNT}/dateconfig/date_config.csv")

触发认证错误:

shaded.databricks.org.apache.hadoop.fs.azure.AzureException: hadoop_azure_shaded.com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.

已尝试但无效的操作:

  • 在存储账户和容器级别生成新的SAS令牌;
  • 调整存储账户网络设置的“允许访问来源”(全部/选定网络);
  • 确认账户密钥无误;
  • 开关VPN并检查本地设备时间。

此前可用的SAS令牌尚未过期却突发该问题,以下是额外可行的解决办法:

1. 校验SAS令牌的权限与路径匹配度

  • 检查SAS的资源类型:若为容器级SAS,确认挂载路径对应容器与授权容器一致;若为对象级SAS,需保证访问的文件路径完全在授权范围内。
  • 验证SAS的权限参数:确保包含r(读取)权限,避免因权限缺失导致认证失败。
  • 检查SAS签名版本:旧版本签名可能与Databricks的Hadoop SDK不兼容,尝试生成V2及以上版本的SAS令牌。

2. 重新检查并重置Databricks挂载配置

  • 核对挂载命令参数:确认dbutils.fs.mount中的source指向正确存储容器URL,extra_configs里的凭据无多余空格、转义错误。
  • 执行卸载后重新挂载:先用dbutils.fs.unmount("/mnt/your-mount-path")移除现有挂载,再使用有效凭据重新挂载,清除缓存的旧凭据。

3. 细化存储账户网络规则检查

  • 确认“允许受信任的Microsoft服务访问”选项:即使设置了全部网络访问,若未勾选该选项,Databricks作为受信任服务仍可能被拦截。
  • 选定网络场景下的额外检查:确保Databricks工作区所在VNet已加入存储账户允许列表,同时确认服务端点或专用链接配置正常,保证网络连通。

4. 验证Databricks集群节点时间同步

  • 本地设备时间正常不代表集群节点时间同步,在集群中执行!date查看节点时间,若与Azure服务器时间偏差超过15分钟,重启集群完成时间同步。

5. 检查存储账户状态与ACL权限

  • 确认存储账户状态:在Azure门户查看是否有账户锁定、配额超限等异常告警。
  • 核查容器ACL与RBAC权限:若使用Azure AD托管标识或RBAC,确认集群使用的服务主体拥有目标容器/文件的读取权限,ACL限制可能覆盖SAS令牌权限。

6. 排查Databricks Runtime版本兼容性

  • 若近期升级过Runtime,可能存在Hadoop Azure SDK版本不兼容问题,尝试切换回之前正常运行的Runtime版本测试,或查阅对应Runtime文档确认推荐的SAS配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:13:11