このページでは、ユーザーとAzure Databricksワークスペース間の受信プライベート接続を設定する手順が紹介されています。
- Azure Databricks へのクラシック コンピューティング プレーンプライベート接続を有効にするには、「 Azure Databricks へのクラシック コンピューティング プレーンプライベート接続を構成する」を参照してください。
- サーバーレス コンピューティング プレーンから Azure リソースに接続するには、「Azure リソース へのプライベート接続を構成する」を参照してください。
受信接続を選択する理由
サーバーレス コンピューティングとクラシック コンピューティングのどちらを使用する場合でも、ユーザーは Azure Databricks に接続する必要があります。 組織は、次のようないくつかの理由で Azure Databricks に接続することを選択します。
- セキュリティの強化: プライベート エンドポイントへのすべてのアクセスを制限し、パブリック アクセスを無効にすると、攻撃対象領域を最小限に抑え、セキュリティで保護されたプライベート ネットワーク経由でAzure Databricksとのすべてのユーザー操作が発生することを確認できます。
- コンプライアンス要件: 多くの組織では、Azure Databricksなどの SaaS サービスの場合でも、すべてのデータおよび管理プレーン トラフィックをプライベート ネットワーク境界に留める必要がある厳格なコンプライアンス要件があります。
- 簡略化されたネットワーク アーキテクチャ (特定のユース ケース向け): サーバーレス コンピューティングのみを使用している場合、またはAzure Databricksとの主な対話が Web UI または REST API を介している場合、Azure Databricksからのデータ ソースへのプライベート接続は必要ありません (従来のコンピューティング プレーンPrivate Link接続)、受信専用セットアップを使用すると、ネットワーク全体の設計が簡略化されます。
- データ流出防止: パブリック アクセスを防ぎ、すべてのトラフィックをプライベート エンドポイント経由で強制することで、データ流出のリスクを軽減し、認証済みのネットワーク環境からのみトラフィックにアクセスできるようにします。
接続モデル
プライベート接続は、次の 2 つの方法のいずれかで構成できます。
- パブリック アクセスなし: この構成では、ワークスペースへのすべてのパブリック アクセスが無効になります。 すべてのユーザー トラフィックは、プライベート エンドポイントを介して接続された VNet から送信される必要があります。 このモデルは、完全なトラフィックの民営化に必要です。 完全なトラフィックの民営化には、クラシック コンピューティング プレーンの Private Link 接続も必要です。 Private Linkの概念を参照してください。
- ハイブリッド アクセス: Private Link はアクティブですが、パブリック アクセスはコンテキストベースのイングレス制御と IP アクセス リストで有効なままです。 コンテキストベースのイングレス制御を使用すると、ID、要求の種類、ネットワーク ソースに基づいてアクセスを制限できます。 これにより、プライベート接続に Private Link を引き続き使用しながら、信頼されたパブリック ソース (静的企業 IP など) からのアクセスを安全に許可できます。
このガイドでは、ハイブリッド アクセス モデルを実装する方法について説明します。 これは、標準的なハブアンドスポーク ネットワーク トポロジを使用して実現します。
アーキテクチャの概要
このモデルでは、トランジット VNet を使用します。
- トランジット VNet: これは、ワークスペースへのクライアント アクセスとブラウザー認証に必要なすべてのプライベート エンドポイントを含む中央仮想ネットワークです。 ブラウザー認証ワークスペースもこの VNet に接続します。
開始する前に
次の前提条件と推奨事項を確認します。
Requirements
- ワークスペースは Premium プラン上にあります。
- ワークスペースでは VNet インジェクションが使用されます。 Azure 仮想ネットワークへの Azure Databricks のデプロイ (VNet インジェクション) に関するページを参照してください。
- プライベート エンドポイントを作成し、DNS レコードを管理するには、Azure のアクセス許可が必要です。
ネットワーク構成
- 次の目的で構成されたトランジット VNet:
- これは、Azure ネットワークに接続するすべてのユーザー/クライアント トラフィックのプライマリ トランジット ポイントとして機能します。
- オンプレミスまたはその他の外部ネットワークに一元的な接続を提供します。
- 共有サービスを管理し、送信インターネット トラフィック (エグレス) のプライマリ ルートを含みます。
- プライベート DNS ゾーンは、Azure DNS によって管理されます。
ベスト プラクティス
回復性が高く管理しやすいセットアップには、Azure Databricks で次のことをお勧めします。
- アーキテクチャ: ネットワークは、Microsoft推奨されるハブスポーク アーキテクチャに従う必要があります。 Azure のハブスポーク ネットワーク トポロジを参照してください。
- 分離認証ワークスペース: 回復性を向上させるために、トランジット VNet 内に別のブラウザー認証ワークスペースを作成します。 この専用ワークスペースでは、ブラウザー認証のプライベート エンドポイントをホストする必要があります。これにより、他のワークスペースが削除された場合に単一障害点が回避されます。 「
browser_authenticationワークスペースを作成する」をご覧ください。
既存のワークスペースのプライベート接続を構成する
開始する前に、クラスター、プール、クラシック SQL ウェアハウスなどのすべてのコンピューティング リソースを停止する必要があります。 ワークスペースのコンピューティング リソースを実行できないか、アップグレードの試行が失敗します。 Azure Databricks では、ダウンタイムのためにアップグレードのタイミングを計画することをお勧めします。
- [ワークスペース] ページ で 、[コンピューティング] を選択 します。
- アクティブな各コンピューティング クラスターを選択し、右上の [ 終了] をクリックします。
公開アクセスが有効になったVNet注入ワークスペースを検証してください
- Azure portal で Azure Databricks ワークスペースに移動します。
- ワークスペースの概要セクションで、Azure Databricks ワークスペースで独自の仮想ネットワークが使用されていることを確認します。
- [ 設定] で、[ ネットワーク ] タブを選択します。次の設定を確認します。
- セキュリティで保護されたクラスター接続 (パブリック IP なし) が有効になっている。
- [パブリック ネットワーク アクセスを許可する] が有効になっています。
- [ 設定] で、[ ネットワーク ] タブを選択します。次の設定を確認します。
プライベートエンドポイント databricks_ui_api 作成
- ワークスペースの [ ネットワーク ] タブで、[ プライベート エンドポイント接続] を選択します。
- [
プライベート エンドポイント。
- エンドポイントのリソース グループを選択し、
my-workspace-fe-peなどの名前を指定します。 リージョンがワークスペースと一致するかどうかを確認します。 - [ 次へ: リソース] をクリックします。
-
ターゲット サブリソースを
databricks_ui_apiに設定します。 - [ 次へ: 仮想ネットワーク] をクリックします。
- トランジット VNet を選択します。 トランジット VNet は、送信トラフィックを管理およびセキュリティで保護するネットワーク アーキテクチャ内の既存の独立した VNet であり、多くの場合、中央のファイアウォールが含まれています。
- プライベート エンドポイントをホストするサブネットを選択します。
- [ 次へ ] をクリックし、[ プライベート DNS ゾーンとの統合 ] が [ はい] に設定されていることを確認します。
privatelink.azuredatabricks.netゾーンが自動的に選択されます。
注
プライベート DNS ゾーンをトランジット VNet にリンクし、組織を改善するために、他のプライベート DNS ゾーンと別のリソース グループに配置します。
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エンドポイントを作成しないでください。
browser_authentication プライベート エンドポイントを作成する
ワークスペースを作成したら、 browser_authentication プライベート エンドポイントを作成してトランジット VNet に接続する必要があります。
- Web 認証ワークスペースの [ ネットワーク ] タブで、[ プライベート エンドポイント接続] を選択します。
- [
プライベート エンドポイント。
- エンドポイントのリソース グループを選択し、
web-auth-browser-auth-peなどの名前を指定します。 リージョンがワークスペースと一致するかどうかを確認します。 - [ 次へ: リソース] をクリックします。
-
ターゲット サブリソースを
browser_authenticationに設定します。 - [ 次へ: 仮想ネットワーク] をクリックします。
- トランジットVNet(
databricks_ui_apiプライベートエンドポイントで使われているVNetと同じもの)を選択してください。 - プライベート エンドポイントをホストするサブネットを選択します。
- [ 次へ ] をクリックし、[ プライベート DNS ゾーンとの統合 ] が [ はい] に設定されていることを確認します。
privatelink.azuredatabricks.netゾーンが自動的に選択されます。 - エンドポイントの作成を完了します。
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 で、という名前の
プライベートネットワークアクセスの確認
プライベート ネットワーク接続を介してワークスペースにアクセスできることを確認します。
接続されているネットワークから
オンプレミス ネットワークが既に VPN または ExpressRoute によって Azure VNet に接続している場合、テストは簡単です。
- コンピューターから Web ブラウザーを開き、Azure Databricks ワークスペースの URL に直接移動してログインします。 ログインが成功すると、プライベート接続が機能することを確認します。
テスト VM の使用
現在の場所からワークスペース VNet にアクセスできない場合は、テストする一時的な仮想マシン ("ジャンプ ボックス") を作成します。
- VM の作成: Azure ポータルで、Windows仮想マシンを作成します。 受信プライベート エンドポイントを構成したのと同じトランジット VNet を使用して、サブネットに配置します。
- VM に接続する: リモート デスクトップ クライアントを使用して新しい VM に接続します。
- VM からテストする: VM に接続したら、Web ブラウザーを開き、Azure ポータルに移動して、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
プライベートエンドポイント general_access 作成
Important
一般アクセスエンドポイントを使ったワークスペースへのプライベートアクセスはベータ版です。
ワークスペースへのカスタムURLアクセス用のプライベートエンドポイントを作成しましょう。 このステップは、例えばカスタムURLでワークスペースにアクセスしたい場合のみ必要 <my-custom-account-name>.azuredatabricks.net。
注
すでにアカウントレベルのリソースへのインバウンドPrivate LinkにカスタムURLを使っている場合(アカウントレベルのリソースについては「インバウンドPrivate Linkの設定」を参照)、既存のgeneral_accessプライベートエンドポイントを再利用してアカウントレベルのリソースにアクセスできます。 この場合、コンテキストベースのイングレスを使用するワークスペースに対してプライベート エンドポイントを許可リストに追加するだけで済みます。
VNetとサブネットを準備します
プライベート エンドポイントをホストする VNet とサブネットを準備します。 新しいVNetを作成したり、既存のもの、例えばワークスペースのVNetを再利用したりできます。
- 新しい VNet を作成するには、Azure Virtual Network の作成 を参照してください。
- サブネットを追加するには、「 仮想ネットワーク サブネットの追加、変更、または削除」を参照してください。
- サブネットでプライベート エンドポイント ネットワーク ポリシーが無効になっていることを確認します。 これが既定の設定です。 詳細については、 プライベート エンドポイントのネットワーク ポリシーの管理に関するページを 参照してください。
既存のワークスペース VNet を再利用する場合は、ワークスペースで使用されるサブネットとは異なるサブネットを使用または作成する必要があります。 プライベート エンドポイントをホストしている VNet が VNet 送信トラフィックと異なる場合は、VNet ピアリングまたは接続を構成します。 VNet 接続の確認を参照してください。
プライベートエンドポイントを展開する
- Azure portal で、Microsoft Marketplace で プライベート エンドポイントを 検索し、[ 作成] を選択します。
- 名前とネットワーク インターフェイス名を入力し、ワークスペースの VNet リージョンと一致するようにリージョンを設定します。
- [ 次へ: リソース] をクリックします。
- [リソース ID またはエイリアスで Azure リソースに接続する] を選択します。
- [リソース ID] フィールドまたは [エイリアス] フィールドに、リージョンの
general_accessサービスの Private Link サービス リソース ID を入力します。 リソース ID の一覧については、「パフォーマンスを重視するサービスと一般アクセス向けの Private Link Service Resource IDs」を参照してください。 - [ ターゲットサブリソース ] フィールドに「
general_access」と入力します。 - [ 次へ: 仮想ネットワーク] をクリックします。
- 「VNet とサブネットの準備」セクションで準備した仮想ネットワーク とサブネットを 選択します。
- [ 次へ: DNS] をクリックします。
- [プライベート DNS ゾーンとの統合] を [いいえ] に設定したままにしておきます。 DNSの設定は後で手動で設定します。
- [ 次へ: タグ] をクリックします。
- [次へ: 確認と作成] をクリックします。
- 構成を確認し、[ 作成 ] をクリックしてプライベート エンドポイントをデプロイします。
- デプロイが完了したら、次の値を記録します。
- プライベート エンドポイント名: プライベート エンドポイントの名前。
-
リソース GUID: プライベート エンドポイント リソースに移動し、[ JSON ビュー] をクリックして、
properties.resourceGuidで値を見つけます。 これは、プライベート エンドポイントを登録するときに必要です。 -
プライベート IP アドレス: JSON ビューで、
properties.customDnsConfigs[0].ipAddresses[0]で IP アドレスを見つけます。 これは、DNS を構成するときに必要です。
注
デプロイ後、プライベート エンドポイントの接続状態は [保留中] と表示されます。 これは予期されることです。 プライベート エンドポイントを登録するまで、エンドポイントは 保留中 の状態のままになります。
プライベート エンドポイントを登録する
Azure portal でプライベート エンドポイントを作成したら、それを Azure Databricks に登録します。
- Azure Databricks アカウント コンソールに移動します。
- サイドバーで、[ セキュリティ>ネットワーキング>エンドポイント>エンドポイントを登録]をクリックします。
コンテキストベースのイングレスを使用して、プライベートエンドポイントをワークスペース向けの許可リストに追加する
Important
コンテキストベースの入力を使ったワークスペースへのプライベートアクセスはベータ版です。
- アカウント コンソールで、サイドバーの [ セキュリティ ] をクリックします。
- サイドバー のコンテキストベースのイングレスおよびエグレスコントロール をクリックします。
- ワークスペースレベルのポリシーで「新しいワークスペースポリシー」をクリックします。
-
「Ingress > Private Network Access」の項目で、プライベートアクセスポリシーを定義してください。
- デフォルトでは、登録済みのすべてのエンドポイントは以下の通りです: すべてのプライベートエンドポイントからのアクセスを許可します。 もしこれが許容されるなら、次のステップに進みましょう。 このデフォルトには最初の200個の登録済みプライベートエンドポイントのみが含まれます。もし保険契約でより多くの料金が求められている場合は、アカウントチームに連絡して増額を求めてください。
- 登録済みエンドポイントを許可リストにし、他のすべてのエンドポイントを拒否したい場合は、「 すべてのプライベートエンドポイントからのアクセスを許可 」のチェックを外し、許可ルールを追加してください。
- アクセスを許可したいアイデンティティとワークスペースの宛先を選択します(デフォルトではすべてのアイデンティティと宛先が許可されています)。
- ソースタイプでは「選択されたプライベートエンドポイント」を選択し、登録した一般アクセスのプライベートエンドポイントを選択します。 このプライベートエンドポイントのリージョンは、必ずしもワークスペースのリージョンと一致する必要はありません。 どのリージョンでも一般的なアクセスエンドポイントは、どのリージョンでもワークスペースにサービスを提供することができます。
- [Confirm](確認) をクリックします。
- また、ポリシーに「 拒否ルール 」を追加し、許可ルールの例外を定義することもできます。
- プライベートアクセスポリシーの設定が終わったら、 Ingress > Public Network Accessでパブリックアクセスポリシーを設定することもできます。 すべてのパブリック IP からのアクセスを許可 のチェックを外すと、すべてのパブリック IP からのアクセスを無効にすることができます。 Azure Databricksは、DNS設定のテスト中はパブリックアクセスを有効にしておき、DNSが確定したら無効にして排他的なプライベート接続を強制することを推奨しています。
- 最初にドライ ラン モード でイングレス ポリシーをテストしてから、 適用に切り替えます。 ドライランモードのアクセス拒否は
system.access.inbound_networkシステムテーブルに記録されますが、アクセスをブロックすることはありません。 - 避難方針が正しいか必ず確認してください。
- ネットワークポリシーをワークスペースに紐付けてください。 この一般的なアクセスエンドポイントが許可リストされていないワークスペースは、カスタムURLからはアクセスできません。
- ネットワークポリシーを保存しましょう。 コンテキストベースのイングレス ポリシーの更新が有効になるまでに 10 分かかります。
一般アクセスエンドポイントのDNS設定
プライベートエンドポイントが登録されallowlistに登録された後、DNSを設定してワークスペースのトラフィックがカスタムドメイン <my-custom-account-name>.azuredatabricks.netを経由するようにします。
-
<my-custom-account-name>.azuredatabricks.netという名前の Azure プライベート DNS ゾーンを作成します。 すでにアカウントレベルのリソースへのPrivate Linkgeneral_accessプライベートエンドポイントを設定している場合(アカウントレベルのリソースについては「インバウンドPrivate Linkの設定」を参照)、既存の<my-custom-account-name>.azuredatabricks.netゾーンを再利用してください。 新しいゾーンについては、「Azure ポータルを使用してAzureプライベート DNS ゾーンを作成するを参照してください。 - プライベート DNS ゾーンを、プライベート エンドポイントをホストしている VNet にリンクします。 仮想ネットワークのリンクを参照してください。
DNS A レコードを作成する
- 新しいプライベート DNS ゾーンに移動します。
- [DNS 管理] の [レコードセット] タブを選択します。
- [ 追加] をクリックしてレコード セットを追加します。
-
Aレコードの設定:-
名前:
@ - 型: A
- IPアドレス:プライベートエンドポイントからのプライベートIPアドレスです。
-
名前:
- [ OK] を クリックしてレコードを保存します。
DNS 解決を確認する
VNet 内のマシンまたはプライベート DNS ゾーンに接続されているワークスペース ジョブから、DNS クエリがプライベート エンドポイント IP に解決されることを確認します。
nslookup <my-custom-account-name>.azuredatabricks.net
または、 digを使用します。
dig <my-custom-account-name>.azuredatabricks.net
どちらのコマンドも、プライベート エンドポイントのプライベート IP アドレスを返します。
VNet接続性の検証
トラフィックを生成する VNet がプライベート エンドポイントをホストしている VNet と異なる場合は、それらの間の VNet ピアリングまたは接続を構成します。 詳細なガイダンスについては、「 Azure プライベート エンドポイント DNS 統合シナリオ 」を参照してください。
カスタム DNS 構成
独自のカスタム DNS でプライベート受信エンドポイントを使用する場合は、ワークスペース URL と SSO (シングル サインオン) 認証 URL の両方がプライベート エンドポイントの IP アドレスに正しく解決されることを確認する必要があります。
推奨: 条件付き転送
最も信頼性の高い方法は、すべての Databricks ドメインのクエリを Azure の内部 DNS に転送するように DNS サーバーを構成することです。
- 次のドメインの条件付き転送を Azure DNS サーバーに設定します。
*.azuredatabricks.net*.privatelink.azuredatabricks.net*.databricksapps.com- あなたのカスタムURL:
<my-custom-account-name>.azuredatabricks.net
- VNet が Azure プライベート DNS ゾーンにリンクされていることを確認します。
これにより、Azure では、SSO やワークスペース URL を含め、必要なすべてのホスト名をプライベート エンドポイントの IP アドレスに自動的に解決できます。
代替案: 手動のAレコード
条件付き転送がオプションではない場合は、DNS A レコードを手動で作成する必要があります。
- ワークスペース URL:
Aなどのワークスペースごとの URL をプライベート エンドポイントの IP アドレスにマッピングするadb-1111111111111.15.azuredatabricks.netレコードを作成します。 - SSO認証URL:
westus.pl-auth.azuredatabricks.netなどの地域SSO URLをプライベートエンドポイントのIPアドレスにマッピングするAレコードを作成します。 - カスタムURL:
<my-custom-account-name>.azuredatabricks.netなどのカスタムURLをプライベートエンドポイントのIPアドレスにマッピングするAレコードを作成します。
一部の Azure リージョンでは、SSO に複数のコントロール プレーン インスタンスが使用されます。 認証のために複数の A レコードを作成することが必要になる場合があります。 リージョンのドメインの完全な一覧については、Azure Databricks アカウント チームにお問い合わせください。