問題: Azure Data Lake Storage Gen1 原因のネットワーク構成が ADLException: Error getting info for fileProblem: Network Configuration of Azure Data Lake Storage Gen1 Causes ADLException: Error getting info for file

問題点Problem

次のネットワーク構成が配置されている場合は、Azure Data Lake Storage Gen1 (ADLS Gen1) へのアクセスが ADLException: Error getting info for file <filename> で失敗します。Access to Azure Data Lake Storage Gen1 (ADLS Gen1) fails with ADLException: Error getting info for file <filename> when the following network configuration is in place:

  • Azure Databricks ワークスペースは、独自の仮想ネットワークにデプロイされます (VNet 挿入を使用します)。Azure Databricks workspace is deployed in your own virtual network (uses VNet injection).
  • トラフィックは Azure Data Lake Storage 資格情報のパススルーを介して許可されます。Traffic is allowed via Azure Data Lake Storage credential passthrough.
  • ADLS Gen1 ストレージファイアウォールが有効になっています。ADLS Gen1 storage firewall is enabled.
  • Azure Active Directory (Azure AD) サービスエンドポイントが、Azure Databricks ワークスペースの仮想ネットワークに対して有効になっています。Azure Active Directory (Azure AD) service endpoint is enabled for the Azure Databricks workspace’s virtual network.

no-代替テキスト no-alternative-text

原因Cause

Azure Databricks は、独自の仮想ネットワークに配置されているコントロール平面を使用し、コントロールプレーンは Azure AD からトークンを取得する役割を担います。Azure Databricks uses a control plane located in its own virtual network, and the control plane is responsible for obtaining a token from Azure AD. ADLS 資格情報のパススルーでは、コントロールプレーンを使用して、ADLS Gen1 で対話型ユーザーを認証するための Azure AD トークンを取得します。ADLS credential passthrough uses the control plane to obtain Azure AD tokens to authenticate the interactive user with ADLS Gen1.

(VNet インジェクションを使用して) 独自の仮想ネットワークに Databricks ワークスペースをデプロイすると、Azure Databricks クラスターが独自の仮想ネットワークに作成されます。When you deploy your Databricks workspace in your own virtual network (using VNet injection), Azure Databricks clusters are created in your own virtual network. セキュリティを強化するために、サービスエンドポイントを Azure AD に実装することによって、独自の仮想ネットワークからの要求のみを許可するように ADLS Gen1 ファイアウォールを構成することによって、ADLS Gen 1 アカウントへのアクセスを制限することができます。For increased security, you can restrict access to the ADLS Gen 1 account by configuring the ADLS Gen1 firewall to allow only requests from your own virtual network, by implementing service endpoints to Azure AD.

ただし、この場合、ADLS 資格情報のパススルーは失敗します。However, ADLS credential passthrough fails in this case. その理由は、トークンが作成された仮想ネットワークが ADLS Gen1 によって確認されると、元のパススルー呼び出しが行われた顧客が指定した仮想ネットワークではなく、Azure Databricks コントロールプレーンであるネットワークを検出するためです。The reason is that when ADLS Gen1 checks for the virtual network where the token was created, it finds the network to be the Azure Databricks control plane and not the customer-provided virtual network where the original passthrough call was made.

ソリューションSolution

サービスエンドポイント、ストレージファイアウォール、および ADLS Gen1 で ADLS 資格情報のパススルーを使用するには、ファイアウォール設定で [ Azure サービスへのアクセスを許可する] を有効にします。To use ADLS credential passthrough with a service endpoint, storage firewall, and ADLS Gen1, enable Allow access to Azure services in the firewall settings.

ファイアウォールでこの設定を有効にするためのセキュリティ上の懸念がある場合は、ADLS Gen2 にアップグレードできます。If you have security concerns about enabling this setting in the firewall, you can upgrade to ADLS Gen2. ADLS Gen2 は、前述のネットワーク構成で動作します。ADLS Gen2 works with the network configuration described above.

詳細については、以下を参照してください。For more information, see: