Share via


ワークスペース ストレージ アカウントのファイアウォール サポートを有効にする

新しい Azure Databricks ワークスペースを作成すると、ワークスペース ストレージ アカウントと呼ばれる Azure ストレージ アカウントが管理対象リソース グループに作成されます。 ワークスペース ストレージ アカウントには、ワークスペース システム データ (ジョブ出力、システム設定、ログ)、DBFS ルート、場合によってはUnity Catalog ワークスペース カタログが含まれます。 この記事では、ARM テンプレートを使用して、承認されたリソースとネットワークからのみワークスペース ストレージ アカウントへのアクセスを制限する方法について説明します。

ワークスペース ストレージ アカウントのファイアウォールサポートとは

既定では、ワークスペース ストレージ アカウントの Azure ストレージ アカウントは、すべてのネットワークからの認証済み接続を受け入れます。 ワークスペース ストレージ アカウントのファイアウォール サポートを有効にすることで、このアクセスを制限できます。 これにより、パブリック ネットワーク アクセスが禁止され、承認されていないネットワークからワークスペース ストレージ アカウントにアクセスできなくなります。 ストレージ アカウントがプライベートであることを保証する Azure ポリシーが組織にある場合は、これを構成することをおすすめします。

ワークスペース ストレージ アカウントのファイアウォールサポートが有効になっている場合、Azure Databricks 外のサービスからのすべてのアクセスは、Private Link で承認済みのプライベート エンドポイントを使用する必要があります。 Azure Databricks は、Azure マネージド ID を使用してストレージに接続するためのアクセス コネクタを作成します。 Azure Databricks サーバーレス SQL ウェアハウスからのアクセスには、サービス エンドポイントまたはプライベート エンドポイントのいずれかを使用する必要があります。

Note

モデル サービスは、ワークスペース ストレージ アカウントのファイアウォール サポートではサポートされていません。

要件

  • ワークスペースで VNet インジェクションを有効にする必要があります。

    新しいワークスペースを作成する場合は、「仮想ネットワークの要件」の手順に従って、仮想ネットワークと 2 つのサブネットを作成します。

  • ワークスペースでは、セキュリティで保護されたクラスター接続 (パブリック IP/NPIP なし) を有効にする必要があります。

  • ワークスペースは Premium プランに配置されている必要があります。

  • ストレージ アカウントのプライベート エンドポイント用に個別のサブネットが必要です。 これは、基本的な Azure Databricks 機能の主な 2 つのサブネットに加えて行われます。

    サブネットは、ワークスペースと同じ VNet 内、またはワークスペースがアクセスできる別の VNet 内にある必要があります。 最小サイズの /28 を CIDR 表記で使用します。

  • Microsoft Fabric Power BI サービスで Cloud Fetch を使用している場合は、ワークスペース ストレージ アカウントへのプライベート アクセスに常にゲートウェイを使用するか、Cloud Fetch を無効にする必要があります。 「手順 3 (推奨): Cloud Fetch クライアント VNet のプライベート エンドポイントを構成する」を参照してください。

手順 1: 必要な ARM テンプレートをデプロイする

  1. 既存のワークスペースを使用している場合は、ワークスペース内のすべてのコンピューティング リソースをシャットダウンします。
  2. Azure portal で、Deploy a custom template を検索して選択します。
  3. [エディターで独自のテンプレートをビルド] をクリックします。
  4. ワークスペース ストレージ アカウントのファイアウォールサポート用の ARM テンプレートから ARM テンプレートをコピーし、エディターに貼り付けます。
  5. [保存] をクリックします。
  6. フィールドを確認および編集します。 フィールドの説明については、ARM テンプレート フィールドを参照してください。
  7. [確認と作成] をクリックして、[作成] をクリックします。

プライベート エンドポイントを作成するまで、ワークスペースは一時的にノートブックまたはジョブを実行できません。

手順 2: ストレージ アカウントへのプライベート エンドポイントを作成する

ターゲット サブリソースの値 (dfsblob) の VNet インジェクションに使用した VNet からワークスペース ストレージ アカウントへの 2 つのプライベート エンドポイントを作成します。

  1. Azure portal でワークスペースに移動します。

  2. Essentials で、管理対象リソース グループの名前をクリックします。

  3. [リソース] で、dbstorage で始まる名前を持つストレージ アカウントの種類のリソースをクリックします。

  4. サイドバーで [ネットワーク] をクリックします。

  5. [プライベート エンドポイント接続] をクリックします。

  6. [+ プライベート エンドポイント] をクリックします.

  7. [リソース グループ名] フィールドで、リソース グループを設定します。 これは、ワークスペース ストレージ アカウントが存在する管理対象リソース グループと同じにすることはできません。

  8. [名前] フィールドに、このプライベート エンドポイントの一意の名前を入力します。

    • ソース ネットワークごとに作成する最初のプライベート エンドポイントに対して、DFS エンドポイントを作成します。 Databricks では、サフィックス -dfs-pe を追加することをおすすめします
    • ソース ネットワークごとに作成する 2 番目のプライベート エンドポイントに対して、BLOB エンドポイントを作成します。 Databricks では、サフィックス -blob-pe を追加することをおすすめします

    ネットワーク インターフェイス名フィールドが自動的に設定されます。

  9. リージョン フィールドをワークスペースのリージョンに設定します。

  10. 次へ をクリックします。

  11. ターゲット サブリソースで、ターゲット リソースの種類をクリックします。

    • ソース ネットワークごとに作成する最初のプライベート エンドポイントに対して、これを dfs に設定します。
    • ソース ネットワークごとに作成する 2 番目のプライベート エンドポイントに対して、これを BLOB に設定します。
  12. [仮想ネットワーク] フィールドで、VNet を選択します。

  13. [サブネット] フィールドで、ストレージ アカウントのプライベート エンドポイントに対して持っている別のサブネットにサブネットを設定します。

    このフィールドにはプライベート エンドポイントのサブネットが自動的に設定される場合がありますが、明示的に設定する必要がある場合があります。 基本的な Azure Databricks ワークスペース機能 (通常は private-subnetpublic-subnet と呼ばれます) に使用される 2 つのワークスペース サブネットのいずれかを使用することはできません。

  14. 次へ をクリックします。 [DNS] タブには、以前に選択した適切なサブスクリプションとリソース グループが自動的に設定されます。 必要に応じて変更します。

  15. [次へ] をクリックし、必要に応じてタグを追加します。

  16. [次へ] をクリックし、フィールドを確認します。

  17. Create をクリックしてください。

ワークスペース ストレージ アカウントのファイアウォールのサポートを無効にするには、上記と同じプロセスを使用しますが、パラメーター Storage Account Firewall (テンプレートのstorageAccountFirewall ) を Disabled に設定し、ワークスペースで Unity Catalog ワークスペース カタログを使用するかどうかに基づいて、Workspace Catalog Enabled フィールドを true または false に設定します。 「カタログ」をご覧ください。

Cloud Fetch は、ODBC と JDBC のメカニズムで、クラウド ストレージを介してデータを並列にフェッチして、データをより高速に BI ツールに取り込みます。 BI ツールから 1 MB を超えるクエリ結果をフェッチしている場合は、Cloud Fetch を使用している可能性があります。

Note

Azure Databricks で Microsoft Fabric Power BI サービスを使用している場合は、この機能によって Fabric Power BI からワークスペース ストレージ アカウントへの直接アクセスがブロックされるため、Cloud Fetch を無効にする必要があります。 あるいは、仮想ネットワーク データ ゲートウェイまたはオンプレミス データ ゲートウェイを構成して、ワークスペース ストレージ アカウントへのプライベート アクセスを許可することもできます。 これは Power BI Desktop には適用されません。 Cloud Fetch を無効にするには、構成 EnableQueryResultDownload=0 を使用します。

Cloud Fetch を使用する場合は、Cloud Fetch クライアントの任意の VNet からワークスペース ストレージ アカウントへのプライベート エンドポイントを作成します。

Cloud Fetch クライアントのソース ネットワークごとに、dfsblob の 2 つの異なる ターゲット サブリソース値を使用する 2 つのプライベート エンドポイントを作成します。 詳細な手順については、「手順 2: ストレージ アカウントへのプライベート エンドポイントを作成する」を参照してください。 これらの手順では、プライベート エンドポイントの作成時に [仮想ネットワーク] フィールドに対して、クラウド フェッチ クライアントごとにソース VNet を指定してください。

手順 4: エンドポイントの承認を確認する

ストレージ アカウントに対するすべてのプライベート エンドポイントを作成したら、それらが承認されているかどうかを確認します。 自動承認される場合もあれば、ストレージ アカウントで承認する必要がある場合もあります。

  1. Azure portal でワークスペースに移動します。
  2. Essentials で、管理対象リソース グループの名前をクリックします。
  3. [リソース] で、dbstorage で始まる名前を持つストレージ アカウントの種類のリソースをクリックします。
  4. サイドバーで [ネットワーク] をクリックします。
  5. [プライベート エンドポイント接続] をクリックします。
  6. 接続状態を確認して「承認済み」と表示されていることを確認するか、接続状態を選択して [承認] をクリックします。

手順 5: サーバーレス SQL ウェアハウス接続を承認する

ネットワーク接続構成 (NCC) をワークスペースにアタッチすることにより、サーバーレス SQL ウェアハウスがワークスペース ストレージ アカウントに接続することを承認する必要があります。 NCC がワークスペースにアタッチされると、ネットワーク ルールはワークスペース ストレージ アカウントの Azure ストレージ アカウントに自動的に追加されます。 手順については、「サーバーレス コンピューティング プレーン ネットワーク」をご覧ください。

プライベート エンドポイントを使用して Azure Databricks サーバーレス SQL ウェアハウスからのアクセスを有効にする場合は、Azure Databricks アカウント チームにお問い合わせください。