このページでは、ユーザーとその Azure Databricks ワークスペース間の接続をセキュリティで保護するフロントエンド プライベート接続を構成する手順について説明します。
- Azure Databricks へのバックエンド プライベート接続を有効にするには、 Azure Private Link の概念を参照してください。
- サーバーレス コンピューティング プレーンから Azure リソースに接続するには、「Azure リソース へのプライベート接続を構成する」を参照してください。
フロントエンド接続を選択する理由
サーバーレス コンピューティングとクラシック コンピューティングのどちらを使用する場合でも、ユーザーは Azure Databricks に接続する必要があります。 組織は、次のようないくつかの理由で Azure Databricks に接続することを選択します。
- セキュリティ強化: プライベート エンドポイントへのすべてのアクセスを制限し、パブリック アクセスを無効にすると、攻撃対象領域を最小限に抑え、セキュリティで保護されたプライベート ネットワークを介して Azure Databricks とのすべてのユーザー操作が発生することを確認できます。
- コンプライアンス要件: 多くの組織では、Azure Databricks などの SaaS サービスの場合でも、すべてのデータおよび管理プレーン トラフィックをプライベート ネットワークの境界に留める必要がある厳格なコンプライアンスの義務があります。
- ネットワーク アーキテクチャの簡略化 (特定のユース ケースの場合): サーバーレス コンピューティングのみを使用している場合、または Azure Databricks との主要な対話が Web UI または REST API を使用していて、Azure Databricks (バックエンド接続が必要) からの データ ソースへのプライベート接続がすぐに必要ない場合は、フロントエンドのみのセットアップによってネットワーク全体の設計が簡略化されます。
- データ流出防止: パブリック アクセスを防ぎ、プライベート エンドポイント経由ですべてのトラフィックを強制することで、データ流出のリスクを軽減し、認証されたネットワーク環境からのみトラフィックにアクセスできるようにします。
接続モデル
プライベート接続は、次の 2 つの方法のいずれかで構成できます。
- パブリック アクセスなし: この構成では、ワークスペースへのすべてのパブリック アクセスが無効になります。 すべてのユーザー トラフィックは、プライベート エンドポイントを介して接続された VNet から送信される必要があります。 このモデルは、完全なトラフィックの民営化に必要です。 完全なトラフィックの民営化には、バックエンドの Private Link 接続も必要です。 Azure Private Link の概念を参照してください。
- ハイブリッド アクセス: Private Link はアクティブですが、パブリック アクセスはコンテキストベースのイングレス制御と IP アクセス リストで有効なままです。 コンテキストベースのイングレス制御を使用すると、ID、要求の種類、ネットワーク ソースに基づいてアクセスを制限できます。 これにより、プライベート接続にPrivate Link を引き続き使用しながら、信頼されたパブリック ソース (静的企業 IP など) からのアクセスを安全に許可できます。
このガイドでは、推奨される パブリック アクセスなし モデルを実装する方法について説明します。 これは、標準的なハブアンドスポーク ネットワーク トポロジを使用して実現します。
アーキテクチャの概要
このモデルでは、トランジット VNet を使用します。
- トランジット VNet: これは、ワークスペースへのクライアント アクセスとブラウザー認証に必要なすべてのプライベート エンドポイントを含む中央仮想ネットワークです。 ブラウザー認証ワークスペースもこの VNet に接続されています。
開始する前に
次の前提条件と推奨事項を確認します。
Requirements
- ワークスペースは Premium プラン上にあります。
- VNet インジェクションを使用してデプロイされた Azure Databricks ワークスペースがある。 Azure 仮想ネットワークへの Azure Databricks のデプロイ (VNet インジェクション) に関するページを参照してください。
- プライベート エンドポイントを作成し、DNS レコードを管理するには、Azure のアクセス許可が必要です。
ネットワーク構成
- 次の目的で構成されたトランジット VNet:
- これは、Azure ネットワークに接続するすべてのユーザー/クライアント トラフィックのプライマリ トランジット ポイントとして機能します。
- オンプレミスまたはその他の外部ネットワークに一元的な接続を提供します。
- 共有サービスを管理し、送信インターネット トラフィック (エグレス) のプライマリ ルートを含みます。
- 専用サブネットは、プライベート エンドポイント専用にワークスペース VNet 内に存在する必要があります。 存在しない場合は、作成します。
- プライベート DNS ゾーンは、Azure DNS によって管理されます。
ベスト プラクティス
回復性が高く管理しやすいセットアップには、Azure Databricks で次のことをお勧めします。
- アーキテクチャ: ネットワークは、Microsoft が推奨するハブスポーク アーキテクチャに従う必要があります。 Azure のハブスポーク ネットワーク トポロジを参照してください。
-
分離認証ワークスペース: 回復性を向上させるために、トランジット VNet 内に別のブラウザー認証ワークスペースを作成します。 この専用ワークスペースでは、ブラウザー認証のプライベート エンドポイントをホストする必要があります。これにより、他のワークスペースが削除された場合に単一障害点が回避されます。
「手順 3:
browser_authenticationプライベート エンドポイントを作成する」を参照してください。
既存のワークスペースのプライベート接続を構成する
開始する前に、クラスター、プール、クラシック SQL ウェアハウスなどのすべてのコンピューティング リソースを停止する必要があります。 ワークスペースのコンピューティング リソースを実行できないか、アップグレードの試行が失敗します。 Azure Databricks では、ダウンタイムのためにアップグレードのタイミングを計画することをお勧めします。
- [ワークスペース] ページ で 、[コンピューティング] を選択 します。
- アクティブな各コンピューティング クラスターを選択し、右上の [ 終了] をクリックします。
手順 1: パブリック アクセスが有効になっている VNet によって挿入されたワークスペースを確認する
- Azure portal で Azure Databricks ワークスペースに移動します。
- ワークスペースの概要セクションで、Azure Databricks ワークスペースで独自の仮想ネットワークが使用されていることを確認します。
- [ 設定] で、[ ネットワーク ] タブを選択します。次の設定を確認します。
- セキュリティで保護されたクラスター接続 (パブリック IP なし) が有効になっている。
- [パブリック ネットワーク アクセスを許可する] が有効になっています。
- [ 設定] で、[ ネットワーク ] タブを選択します。次の設定を確認します。
手順 2: プライベート エンドポイント databricks_ui_api 作成する
- ワークスペースの [ ネットワーク ] タブで、[ プライベート エンドポイント接続] を選択します。
- [
プライベート エンドポイント。
- エンドポイントのリソース グループを選択し、
my-workspace-fe-peなどの名前を指定します。 リージョンがワークスペースと一致するかどうかを確認します。 - [ 次へ: リソース] をクリックします。
-
ターゲット サブリソースを
databricks_ui_apiに設定します。 - [ 次へ: 仮想ネットワーク] をクリックします。
- トランジット VNet を選択します。 トランジット VNet は、送信トラフィックを管理およびセキュリティで保護するネットワーク アーキテクチャ内の既存の独立した VNet であり、多くの場合、中央のファイアウォールが含まれています。
- プライベート エンドポイントをホストするサブネットを選択します。
- [ 次へ ] をクリックし、[ プライベート DNS ゾーンとの統合 ] が [ はい] に設定されていることを確認します。
privatelink.azuredatabricks.netゾーンが自動的に選択されます。
注
プライベート DNS ゾーンをトランジット VNet にリンクし、組織を改善するために、他のプライベート DNS ゾーンと別のリソース グループに配置します。
手順 3: browser_authentication プライベート エンドポイントを作成する
ブラウザー認証用のプライベート エンドポイントを作成して、プライベート ネットワーク パス経由の SSO をサポートします。 Azure Databricks では、専用のプライベート Web 認証ワークスペースでこのエンドポイントをホストすることをお勧めします。
リソース グループを作成する
- Azure portal で、 リソース グループに移動して選択します。
- [+ 作成] をクリックします。
- リソース グループの 名前 (
web-auth-rg-eastusなど) を指定します。 - [リージョン] で、運用 Databricks ワークスペースがデプロイされているのと同じ Azure リージョンを選択します。
- [確認と作成]、[作成] の順にクリックします。
VNet を作成する
- Azure portal で、 [仮想ネットワーク] を検索して選択します。
- [+ 作成] をクリックします。
- [基本] タブで、先ほど作成したリソース グループを選択し、などのわかりやすい
web-auth-vnet-eastusを VNet に付けます。 - リージョンがリソース グループと一致するかどうかを確認します。
- [ IP アドレス] タブで、VNet の IP アドレス空間を定義します (例:
10.20.0.0/16)。 また、初期サブネットを作成するように求められます。 - [ 確認と作成]、[ 作成] の順に選択します。
プライベート Web 認証ワークスペースを作成してセキュリティで保護する
- Azure portal で、 Azure Databricks を検索して選択します。 [+ 作成] をクリックします。
- [ 基本 ] タブで、次を構成します。
- 先ほど作成した リソース グループ を選択します。
- ワークスペースに、
WEB_AUTH_DO_NOT_DELETE_<region>などのわかりやすい名前を付けます。 - リソース グループと VNet と同じリージョンを選択します。
- [ 次へ:ネットワーク ] をクリックし、次を構成します。
- セキュリティで保護されたクラスター接続 (パブリック IP なし) を使用して Azure Databricks ワークスペースをデプロイする: [はい] を選択します。
- 独自の仮想ネットワーク (VNet) に Azure Databricks ワークスペースをデプロイする: [はい] を選択します。
- 仮想ネットワーク: 先ほど作成した VNet を選択します。 サブネット範囲を定義するように求められます。
- パブリック ネットワーク アクセス: [無効] を選択します。
- 必要な NSG ルール: NoAzureDatabricksRules を選択します。
- [確認と作成]、[作成] の順にクリックします。
ワークスペースが作成されたら、誤って削除されないように保護する必要があります。
- Azure portal で、先ほど作成したワークスペースに移動します。
- [設定] に移動し、[ロック] を選択します。
- [+ 追加] をクリックします。
- [ロックの種類] を [削除] に設定し、わかりやすいロック名を指定します。
- OK をクリックします。
注
- このワークスペースでは、クラスター、ジョブなどの Databricks ワークロードを実行しないでください。
-
browser_authentication以外のプライベート エンドポイントは追加しないでください。 具体的には、このワークスペースのdatabricks_ui_apiエンドポイントを作成しないでください。
手順 4: DNS を構成して確認する
プライベート エンドポイントをデプロイした後、DNS によって Azure Databricks URL が新しいプライベート IP アドレスに正しく解決されることを確認する必要があります。
- プライベート DNS ゾーン レコードを確認します。
- Azure portal で、という名前の
privatelink.azuredatabricks.netを検索して移動します。 - 次の
Aレコードが存在し、エンドポイントのプライベート IP アドレスをポイントすることを確認します。-
ワークスペース UI/API レコード:
-
名前: 次のような一意のワークスペース ID
adb-xxxxxxxxxxxxxxxx.x -
値:
databricks_ui_apiプライベート エンドポイントのプライベート IP アドレス。
-
名前: 次のような一意のワークスペース ID
-
ブラウザー認証レコード:
-
名前:
pl-auth.<your_region>のようなわかりやすい名前を選択します。 -
値:
browser_authenticationプライベート エンドポイントのプライベート IP アドレス。
-
名前:
-
ワークスペース UI/API レコード:
- Azure portal で、という名前の
手順 5: プライベート ネットワーク アクセスを確認する
プライベート ネットワーク接続を介してワークスペースにアクセスできることを確認します。
接続されているネットワークから
オンプレミスネットワークが既に VPN または ExpressRoute によって Azure VNet に接続されている場合、テストは簡単です。
- コンピューターから Web ブラウザーを開き、Azure Databricks ワークスペースの URL に直接移動してログインします。 ログインが成功すると、プライベート接続が動作していることを確認します。
テスト VM の使用
現在の場所からワークスペース VNet にアクセスできない場合は、テストする一時的な仮想マシン ("ジャンプ ボックス") を作成します。
- VM を作成します。 Azure portal で、Windows 仮想マシンを作成します。 フロントエンド プライベート エンドポイントを構成したのと同じトランジット VNet を使用して、サブネットに配置します。
- VM に接続します。 リモート デスクトップ クライアントを使用して、新しい VM に接続します。
- VM からテストします。 VM に接続したら、Web ブラウザーを開き、Azure portal に移動して、Azure Databricks ワークスペースを見つけます。
- ワークスペースの起動: [ ワークスペースの起動] をクリックします。 ログインが成功すると、プライベート VNet 内からのアクセスが正しく動作していることを確認します。
nslookup を使用して DNS を確認する
- 構成した VNet 内の仮想マシン、または VPN または Azure ExpressRoute 経由でオンプレミス ネットワークに接続します。 マシンで Azure のプライベート DNS を使用できる必要があります。
- コマンド プロンプトまたはターミナルを開き、
nslookupを使用して DNS 解決を確認します。
# Verify the workspace URL resolves to a private IP
nslookup adb-xxxxxxxxxxxxxxxx.x.azuredatabricks.net
# Expected output:
# Server: <your-dns-server>
# Address: <your-dns-server-ip>
#
# Name: adb-xxxxxxxxxxxxxxxx.x.privatelink.azuredatabricks.net
# Address: 10.10.1.4 <-- This should be the private IP of your 'databricks_ui_api' endpoint
# Aliases: adb-xxxxxxxxxxxxxxxx.x.azuredatabricks.net
カスタム DNS 構成
独自のカスタム DNS でプライベート フロントエンド エンドポイントを使用する場合は、ワークスペース URL と SSO (シングル サインオン) 認証 URL の両方がプライベート エンドポイントの IP アドレスに正しく解決されることを確認する必要があります。
推奨: 条件付き転送
最も信頼性の高い方法は、すべての Databricks ドメインのクエリを Azure の内部 DNS に転送するように DNS サーバーを構成することです。
- 次のドメインの条件付き転送を Azure DNS サーバーに設定します。
*.azuredatabricks.net*.privatelink.azuredatabricks.net*.databricksapps.com
- VNet が Azure プライベート DNS ゾーンにリンクされていることを確認します。
これにより、Azure では、SSO やワークスペース URL を含め、必要なすべてのホスト名をプライベート エンドポイントの IP アドレスに自動的に解決できます。
代替案: 手動のAレコード
条件付き転送がオプションではない場合は、DNS A レコードを手動で作成する必要があります。
-
ワークスペース URL:
Aなどのワークスペースごとの URL をプライベート エンドポイントの IP アドレスにマッピングするadb-1111111111111.15.azuredatabricks.netレコードを作成します。 -
SSO 認証 URL:
Aなどのリージョン SSO URL をwestus.pl-auth.azuredatabricks.netプライベート エンドポイント IP アドレスにマッピングする レコードを作成します。
一部の Azure リージョンでは、SSO に複数のコントロール プレーン インスタンスが使用されます。 認証のために複数の A レコードを作成することが必要になる場合があります。 リージョンのドメインの完全な一覧については、Azure Databricks アカウント チームにお問い合わせください。