Azure數據湖存儲Gen1的網絡配置導致ADLException:獲取文件信息的錯誤

了解如何在使用Azure數據湖存儲Gen1和Databricks時解決憑據傳遞失敗。

寫的亞當Pavlacka

最後發布日期:2022年12月7日

問題

訪問Azure數據湖存儲Gen1 (ADLS Gen1)失敗ADLException:獲取文件<文件名>的信息錯誤當網絡配置如下時:

  • Azure Databricks工作空間部署在您自己的虛擬網絡中(使用VNet注入)。
  • 流量允許通過Azure數據湖存儲憑據傳遞。
  • 開啟ADLS Gen1存儲防火牆。
  • Azure Active Directory (Azure AD)服務端點已為Azure Databricks工作空間的虛擬網絡啟用。

導致

Azure Databricks使用位於其自己的虛擬網絡中的控製平麵,該控製平麵負責從Azure AD獲取令牌。ADLS憑據傳遞使用控製平麵獲取Azure AD令牌,用ADLS Gen1對交互用戶進行身份驗證。

當您在自己的虛擬網絡中部署Databricks工作空間(使用VNet注入)時,Azure Databricks集群將在自己的虛擬網絡中創建。為了提高安全性,您可以通過將ADLS Gen1防火牆配置為隻允許來自您自己的虛擬網絡的請求來限製對ADLS Gen1帳戶的訪問,方法是實現Azure AD的服務端點。

但是,ADLS憑據傳遞在這種情況下會失敗。原因是,當ADLS Gen1檢查創建令牌的虛擬網絡時,它發現該網絡是Azure Databricks控製平麵,而不是發出原始直通調用的客戶提供的虛擬網絡。

解決方案

若要將ADLS憑據傳遞與服務端點、存儲防火牆和ADLS Gen1一起使用,請啟用允許訪問Azure服務防火牆設置

如果您對在防火牆中啟用此設置有安全顧慮,則可以升級到ADLS Gen2。ADLS Gen2與上麵描述的網絡配置一起工作。

有關更多信息,請參見:


這篇文章有用嗎?