Databricks へのプライベート接続を構成する
このページでは、ユーザーと Databricks ワークスペース間の フロントエンド プライベート接続の構成手順について説明します。ワークスペースのサーバレス実装にセキュリティを追加するには、フロントエンドのプライベート接続が必要です。
- Databricksでのプライベート接続の概要については、「クラシック コンピュート プレーン ネットワーク」を参照してください。
- Databricks へのバックエンドのプライベート接続を有効にするには、「 ワークスペースのプライベートサービス接続を有効にする」を参照してください。
ワークスペースのフロントエンド Private サービス Connect を有効にする
フロントエンドの Private サービス Connect を使用して、Google Cloud VPC またはオンプレミス ネットワークから Databricks サービスへの安全なプライベート接続を確立します。これにより、パブリック インターネットではなく VPC インターフェース エンドポイントを介してトラフィックがルーティングされます。
フロントエンドのPrivate サービス Connect では、次のことができます。
- プライベート アクセスの構成 : フロントエンド プライベート サービス Connect は、 Databricks Web アプリケーション、 REST API、 Databricks Connect APIへの接続をサポートします。
- プライベート アクセスを簡単に有効にする : フロントエンド Private サービス Connect は、新しいワークスペースの作成時に構成することも、既存のワークスペースで有効にすることもできます。
- 必須のプライベート接続を強制 する: ワークスペースのプライベート接続を強制するには、ユーザーから Databricks へのプライベート接続、およびコントロール プレーンからコンピュート プレーンへのプライベート接続を構成して、ワークスペースのプライベート接続を必須にする必要があります。
REST API を使用するには、 Private Access Settings API リファレンスを参照してください。
Databricks アカウント チームに連絡して、ワークスペースで Private Service Connect を有効にするためのアクセスを要求する必要があります。Private サービス Connect を使用したプライベート接続の Databricks サポートが一般提供されています。
要件と制限事項
フロントエンド Private サービス Connect を有効にするには、次の要件を満たす必要があります。
- Databricks アカウントは Premium プランである必要があります。
- 新しいワークスペースのみ : ワークスペースを作成するときに、Private サービス Connect 接続を追加する必要があります。 Private サービス Connect 接続を既存のワークスペースに追加することはできません。
- 顧客管理VPC が必要です : 顧客管理VPCを使用する必要があります。 VPC は、Google Cloud コンソールまたは別のツールで作成する必要があります。VPC が使用可能な場合は、Databricks アカウント コンソールまたは API を使用してネットワーク構成を作成します。この構成では、新しい VPC を参照し、Private サービス Connect の特定の設定を含める必要があります。
- Enable your account : Private サービス Connect を使用するには、最初に Databricksによる有効化が必要です。 Databricks アカウント チームに連絡して、アクティブ化をリクエストしてください。Google Cloud リージョンとホスト プロジェクト ID を指定して、必要なプライベート サービス Connect 接続割り当てを予約できるように Databricks 。 アカウントが有効になっていることを確認したら、 Databricks アカウント コンソールまたは APIを使用して、Private サービス Connect オブジェクトを設定し、ワークスペースを作成できます。
- クォータ: のホスト プロジェクトごとにリージョンごとに最大 2 つの Private サービス Connect エンドポイント VPC Databricks構成できます。Private サービス Connect エンドポイントはリージョン固有のリソースであるため、同じ およびリージョン内の複数の Databricksワークスペースでこれらのエンドポイントを共有する必要があります。VPCこのクォータに設定に制限がある場合は、アカウントチームにお問い合わせください。
- リージョン間接続なし : Private サービス Connect ワークスペース コンポーネントは、次のような同じリージョンに存在する必要があります。
- トランジット VPC ネットワークとサブネット。
- ネットワークとサブネット VPC プレーン。
- Databricks ワークスペース。
- Private サービス Connect エンドポイント。
- Private サービス Connect エンドポイント サブネット。
ネットワークトポロジの複数のオプション
プライベート Databricks ワークスペースをデプロイする場合は、次のいずれかのネットワーク構成オプションを選択する必要があります。
- Databricks ユーザー (クライアント) と Databricks クラシック コンピュート プレーンを同じネットワーク上でホストする : このオプションでは、トランジット プレーン VPC とコンピュート プレーン VPC、同じ基になるVPC ネットワークを参照できます。このトポロジを選択した場合、そのDatabricks から ワークスペースへのすべてのアクセスは、その のフロントエンドVPC PrivateVPC サービス接続を経由する必要があります。「要件と制限事項」を参照してください。
- Databricks ユーザー (クライアント) と Databricks クラシック コンピュート プレーンを別々のネットワークでホスト する: このオプションでは、ユーザーまたはアプリケーション クライアントは、異なるネットワーク パスを使用して異なるDatabricksワークスペースにアクセスできます。オプションで、トランジット VPC のユーザーが Private サービス Connect 接続を介してプライベートワークスペースにアクセスできるようにしたり、パブリックインターネット上のユーザーがワークスペースにアクセスできるようにしたりできます。
フロントエンドの Private サービス Connect を使用するワークスペースと、同じ交通機関 VPC内にないワークスペースを混在させることはできません。 1 つのトランジット VPC を複数のワークスペースで共有できますが、トランジット VPC 内のすべてのワークスペースは、フロントエンドのプライベート サービス コネクトを使用するか、まったく使用しないか、同じ種類である必要があります。 この要件は、Google Cloud での DNS 解決の詳細によるものです。
地域別サービス添付資料参照
フロントエンドの Private サービス接続を有効にするには、リージョンのワークスペース エンドポイントのサービス添付ファイル URI が必要です。 URI はサフィックス plproxy-psc-endpoint-all-ports
で終わります。このエンドポイントには 2 つの役割があります。これは、フロントエンドの Private サービス Connect がトランジット VPC アプリケーションをワークスペース Web アプリケーションや REST APIsに接続するために使用し、バックエンドの Private サービス Connect が REST APIsのコントロール プレーンに接続するためにも使用されます。
リージョンのワークスペース エンドポイントとサービス添付ファイル URI を見つけるには、「Databricks サービスと資産の IP アドレスとドメイン」を参照してください。
ステップ1:アカウントをPrivate Service Connectに有効にする
Google Cloud プロジェクトからのプライベート サービス コネクト接続を受け入れる Databricks 、 Databricks アカウント チームに連絡し、プライベート サービス コネクトを有効にするワークスペースごとに次の情報を提供する必要があります。
-
DatabricksアカウントID
- アカウント管理者として、 Databricks アカウント コンソールに移動します。
- 右上のユーザープロファイルアイコンをクリックします。
- メニューで、コピーアイコンをクリックしてアカウントIDをコピーします。
-
トランジット VPC の VPC ホストプロジェクト ID
-
ワークスペースのリージョン
Databricks担当者は、Google Cloud プロジェクトからのプライベート サービス Connect 接続を受け入れるように設定されるとDatabricks確認の返信をします。これには最大3営業日かかる場合があります。
ステップ 2: サブネットを作成する
コンピュート プレーン VPC ネットワークで、Private サービス Connect エンドポイント専用の サブネット を作成します。 次の手順は、Google Cloud コンソールを使用していることを前提としていますが、 gcloud
CLI を使用して同様のタスクを実行することもできます。
サブネットを作成するには:
-
Google Cloud Cloud コンソールで、 VPC リストページに移動します。
-
[ サブネットの追加 ] をクリックします。
-
名前、説明、および地域を設定します。
-
[Purpose ] フィールドが表示されている場合 (表示されない場合があります)、[ None] を選択します。
-
サブネットのプライベート IP 範囲 (
10.0.0.0/24
など) を設定します。Private サービス Connect エンドポイントをホストするのに十分な IP スペースを割り当てる必要があります。次のいずれについても、IP範囲を重複させることはできません。- BYO VPC のサブネット。
- Private サービス Connect エンドポイントを保持するサブネット。
-
サブネットが VPC の Google Cloud コンソールの VPC ビューに追加されたことを確認します。
手順 3: フロントエンドのプライベート アクセスを構成する
フロントエンドの Databricks クライアントからのプライベート アクセスをフロントエンド Private サービス Connect に構成するには:
-
トランジット VPC ネットワークを作成するか、既存のネットワークを再利用します。
-
フロントエンドの Private サービス Connect エンドポイントにアクセスできる プライベート IP 範囲 を持つサブネットを作成または再利用します。
ユーザーがそのサブネット上の VM またはコンピュート リソースにアクセスできることを確認します。
-
トランジット VPC からワークスペース (
plproxy-psc-endpoint-all-ports
) サービスアタッチメントへの VPC エンドポイントを作成します。リージョンで使用するフルネームを取得するには、「 Databricks サービスと資産の IP アドレスとドメイン」を参照してください。
ステップ 4: VPC エンドポイントを登録する
Google Cloud エンドポイントを登録する Databricks アカウント コンソールを使用します。 VPC エンドポイント設定 API を使用することもできます。
-
Databricks アカウント コンソールに移動します。
-
[ クラウドリソース ] タブをクリックし、[ VPC エンドポイント] をクリックします。
-
[ エンドポイント VPC 登録する ] をクリックします。
-
Private サービス Connect エンドポイントごとに、新しい VPC エンドポイントを登録するための必須フィールドに入力します。
- VPC エンドポイント名 : VPC エンドポイントを識別するための人間が判読できる名前。Databricks では、Private サービス Connect エンドポイント ID と同じ名前を使用することをお勧めしますが、これらが一致している必要はありません。
- リージョン : この Private サービス Connect エンドポイントが定義されている Google Cloud リージョン。
- Google Cloud VPC ネットワーク プロジェクト ID : このエンドポイントが定義されている Google Cloud プロジェクト ID。これは、ユーザー接続の起点となる VPC のプロジェクト ID で、トランジット VPC と呼ばれることもあります。
次の表に、エンドポイントに必要な情報を示します。
エンドポイントの種類 | フィールド | 例 |
---|---|---|
フロントエンドトランジットVPCエンドポイント( | VPC エンドポイント名 (Databricks では Google Cloud エンドポイント ID を一致させることをお勧めします) |
|
Google Cloud VPCネットワークのプロジェクトID |
| |
Google Cloud リージョン |
|
完了したら、アカウントコンソールの VPC エンドポイントリストを使用して、エンドポイントのリストを確認し、情報を確認できます。
手順 5: Databricks のプライベート アクセス設定オブジェクトを作成する
ワークスペースのいくつかの Private Service Connect 設定を定義するプライベート アクセス設定オブジェクトを作成します。 このオブジェクトはワークスペースにアタッチされます。1 つのプライベート アクセス設定オブジェクトを複数のワークスペースにアタッチできます。
-
アカウント管理者として、アカウントコンソールに移動します。
-
サイドバーで、「 クラウドリソース 」をクリックします。
-
非公開アクセス設定 をクリックします。
-
[ プライベートアクセス設定を追加 ]をクリックします。
-
新しいプライベートアクセス設定オブジェクトの名前を入力します。
-
ワークスペースと同じリージョンを選択します。
-
[パブリック アクセスが有効] オプションを設定します。これは、プライベートアクセス設定オブジェクトの作成後に変更することはできません。
- パブリック アクセスが有効になっている場合 、ユーザーは、このプライベート アクセス設定オブジェクトを使用するワークスペースへの (パブリック インターネットからの) パブリック アクセスを許可またはブロックするように IP アクセス リスト を構成できます。
- パブリック アクセスが無効になっている場合 、パブリック トラフィックは、このプライベート アクセス設定オブジェクトを使用するワークスペースにアクセスできません。IP アクセス リストは、パブリック アクセスに影響を与えません。
いずれの場合も、IP アクセス リストはパブリック サービス コネクトからのプライベートトラフィックをブロックできません。これは、アクセス リストがパブリック インターネットからのアクセスのみを制御するためです。
-
「 プライベート・アクセス・レベル 」を選択して、許可されたプライベート・サービス接続へのアクセスを制限します。
- アカウント: VPCDatabricksアカウントに登録されているすべての エンドポイントが、このワークスペースにアクセスできます。これがデフォルト値です。
- エンドポイント : 指定した VPC エンドポイントのみがワークスペースにアクセスできます。この値を選択すると、登録済みの VPC エンドポイントから選択できます。
-
[ プライベートアクセス設定を追加 ]をクリックします。
ステップ 6: ネットワーク構成を作成する
Databricksワークスペースの顧客管理 に関する情報を含むVPC ネットワーク構成を作成します。このオブジェクトはワークスペースにアタッチされます。ネットワーク構成 API を使用することもできます。
- Databricks アカウント コンソールに移動します。
- 「 クラウドリソース 」タブをクリックし、「 ネットワーク設定 」をクリックします。
- [ネットワーク設定の追加 ] をクリックします。
次の表に、各エンドポイントで使用する必要がある情報を示します。
フィールド | 値の例 |
---|---|
ネットワーク設定名 |
|
ネットワーク GCP プロジェクト ID |
|
VPC名 |
|
サブネット名 |
|
サブネットのリージョン |
|
GKEポッドのセカンダリIP範囲名 |
|
GKEサービスのセカンダリIP範囲名 |
|
セキュアなクラスター接続を中継するためのVPCエンドポイント |
|
VPCのRESTAPI エンドポイント (ワークスペースへのバックエンド接続) |
|
ステップ 7: ワークスペースを作成する
アカウントコンソールを使用して作成したネットワーク設定を使用するワークスペースを作成します。ワークスペース APIを使用することもできます。
-
Databricks アカウント コンソールに移動します。
-
「 ワークスペース」 タブをクリックします。
-
[ ワークスペースの作成 ] をクリックします。
-
次の標準ワークスペース フィールドを設定します。
- ワークスペース名。
- ワークスペース リージョン。
- Google Cloud プロジェクト ID(ワークスペースのコンピュート リソースのプロジェクトで、 VPCのプロジェクト ID とは異なる場合があります)。
-
Private サービス Connect 固有のフィールドを設定します。
- [詳細設定 ] をクリックします。
- [ ネットワーク設定 ] フィールドで、前の手順で作成したネットワーク設定を選択します。
- [ プライベート接続 ] フィールドで、前のステップで作成したプライベートアクセス設定オブジェクトを選択します。1 つのプライベート アクセス設定オブジェクトを複数のワークスペースにアタッチできます。
-
保存 をクリックします。
手順 8: ワークスペースの構成を検証する
ワークスペースを作成したら、ワークスペース ページに戻り、新しく作成したワークスペースを見つけます。通常、ワークスペースが PROVISIONING
状態から RUNNING
状態に移行するには、30 秒から 3 分かかります。ステータスが RUNNING
に変わったら、ワークスペースは正常に構成されています。
Databricks アカウント コンソールを使用して構成を検証できます。
-
[クラウドリソース ]、[ ネットワーク設定 ]の順にクリックします。VPC のネットワーク設定を見つけて、すべてのフィールドが正しいことを確認します。
-
[ワークスペース ] をクリックし、ワークスペースを見つけます。ワークスペースが実行されていることを確認します。
API を使用してワークスペースのセットを確認する場合は、https://accounts.gcp.databricks.com/api/2.0/accounts/<account-id>/workspaces
エンドポイントに対してGET
要求を行います。「 すべてのワークスペースを取得する」を参照してください。
ステップ 9: DNS を構成する
フロントエンド接続用のプライベート DNS ゾーンを作成します。1 つのトランジット VPC を同じリージョン内の複数のワークスペースで共有できますが、Google Cloud の DNS 解決では 1 つのトランジット VPC で両方のタイプを混在させることをサポートしていないため、フロントエンド PSC を使用するワークスペースと使用しないワークスペースのどちらかのみを含める必要があります。
-
デプロイした Databricks ワークスペースのワークスペース URL が https://33333333333333.3.gcp.databricks.com の形式であることを確認します。この URL は、ワークスペースを表示しているときに Web ブラウザーから取得するか、ワークスペースの一覧の アカウント コンソール から取得できます。
-
トランジット VPC ネットワークを含むプライベート DNS ゾーンを作成します。Google Cloud Console の [Cloud DNS] ページで、[ ゾーンを作成] をクリックします。
- [DNS 名 ] フィールドに「
gcp.databricks.com
」と入力します。 - [ ネットワーク] フィールドで、トランジット VPC ネットワークを選択します。
- [ 作成 ]をクリックします。
- [DNS 名 ] フィールドに「
-
DNS
A
レコードを作成して、ワークスペースの URL をplproxy-psc-endpoint-all-ports
Private サービス Connect エンドポイント IP にマップします。plproxy-psc-endpoint-all-ports
Private サービス Connect エンドポイントの Private サービス Connect エンドポイント IP を見つけます。この例では、Private サービス Connect エンドポイントpsc-demo-user-cp
の IP が10.0.0.2
であると仮定します。A
レコードを作成して、ワークスペースの URL を Private サービス Connect エンドポイント IP にマップします。この場合、一意のワークスペース ドメイン名 (33333333333333333.3.gcp.databricks.com
など) を Private サービス Connect エンドポイントの IP アドレス (前の例では10.0.0.2
でしたが、番号が異なる場合があります) にマップします。A
レコードを作成して、dp-<workspace-url>
を Private サービス Connect エンドポイント IP にマップします。この場合、サンプルのワークスペース URL を使用すると、dp-333333333333333.3.gcp.databricks.com
10.0.0.2
にマップされますが、これらの値は異なる場合があります。
-
ユーザーがユーザー VPC のウェブブラウザを使用してワークスペースにアクセスする場合、認証をサポートするには、
<workspace-gcp-region>.psc-auth.gcp.databricks.com
を10.0.0.2
にマッピングするA
レコードを作成する必要があります。この場合、us-east4.psc-auth.gcp.databricks.com
を10.0.0.2
にマッピングします。 フロントエンド接続の場合、通常、この手順が必要ですが、トランジット ネットワークからのフロントエンド接続を (Web ブラウザーのユーザー アクセスではなく) REST API のみ計画する場合は、この手順を省略できます。
ワークスペース URL と Databricks 認証サービスにマップされる A
レコードを含むゾーンのフロントエンド DNS 構成は、通常、次のようになります。
DNS 設定の検証
トランジット VPC ネットワークで、 nslookup
ツールを使用して、次の URL がフロントエンドの Private サービス Connect エンドポイント IP に解決されるようになったことを確認します。
<workspace-url>
dp-<workspace-url>
<workspace-gcp-region>.psc-auth.gcp.databricks.com
Private サービスコネクトの中間 DNS 名
バックエンドまたはフロントエンドの Private サービス Connect を有効にするワークスペースの中間 DNS 名は <workspace-gcp-region>.psc.gcp.databricks.com
です。 これにより、アクセスする必要があるワークスペースのトラフィックを、アカウント コンソールなど、プライベート サービス Connect をサポートしていない他の Databricks サービスから分離できます。
ステップ 10 (オプション): IP アクセスリストの設定
By デフォルト, front-end connections to Private サービス Connect ワークスペースは、パブリックアクセスを許可します。 公開アクセスを制御するには、非公開アクセス設定オブジェクトを作成します。詳細情報。
パブリック アクセスを管理するには、次の手順に従います。
-
パブリックアクセスを決定します。
- パブリックアクセスを拒否する : ワークスペースへのパブリック接続は許可されません。
- パブリックアクセスを許可する : IPアクセスリストを使用して、アクセスをさらに制限できます。
-
パブリック アクセスを許可する場合は、IP アクセス リストを設定します。
- IP アクセス リストを設定して 、Databricks ワークスペースにアクセスできるパブリック IP アドレスを制御します。
- IP アクセス リストは、インターネット経由のパブリック IP アドレスからの要求にのみ影響します。Private サービス Connect からのプライベートトラフィックはブロックされません。
-
すべてのインターネットアクセスをブロックするには:
- ワークスペースの IP アクセス リストを有効にします。ワークスペースの IP アクセス リストの構成を参照してください
- IP アクセス リスト ルールを作成します:
BLOCK 0.0.0.0/0
。
IP アクセス リストは、Private サービス コネクトで接続した VPC ネットワークからのリクエストには影響しません。 これらの接続は、Private サービス Connect のアクセスレベル設定を使用して管理されます。 「手順 5: Databricks プライベート アクセス設定オブジェクトを作成する」を参照してください。
ステップ 11 (オプション): VPC Service Controls を構成する
Databricksへのプライベート接続を強化するには、VPC Service Controls を Private サービス Connect と共に実装して、トラフィックをプライベートに保つための追加のセキュリティ層を提供します。この組み合わせたアプローチにより、Google Cloud リソースを分離し、VPC ネットワークへのアクセスを制御することで、データ流出のリスクを効果的に軽減できます。
コンピュート プレーン VPC から Cloud Storage へのバックエンド プライベート アクセスを構成する
「限定公開 Google アクセス」または「非公開サービス コネクト」を設定すると、コンピュート平面 VPCからクラウドストレージリソースにプライベートアクセスすることができます。
コンピュート平面プロジェクトを VPC Service Controls サービス境界に追加する
Databricks ワークスペースごとに、次の Google Cloud プロジェクトを VPC Service Controls サービス境界に追加できます。
- コンピュートプレーン VPC ホストプロジェクト
- ワークスペースのストレージバケットを含むプロジェクト
- ワークスペースのコンピュート リソースを含むサービス プロジェクト
この設定では、次の両方にアクセス権を付与する必要があります。
- Databricks コントロール プレーンからのコンピュート リソース バケットとワークスペース ストレージ バケット
- Databricksコンピュート平面 からの 管理ストレージバケットVPC
上記の VPC Service Controls サービス境界で、次の上り(内向き)ルールと下り(外向き)ルールを使用して、上記のアクセス権を付与できます。
これらのイングレス ルールとエグレス ルールのプロジェクト番号を取得するには、「 Databricks サービスと資産の IP アドレスとドメイン」を参照してください。
イングレス ルール
Databricks コントロールプレーン VPC から VPC Service Controls サービス境界へのアクセスを許可するには、イングレスルールを追加する必要があります。次に、イングレス ルールの例を示します。
From:
Identities: ANY_IDENTITY
Source > Projects =
<regional-control-plane-vpc-host-project-number-1>
<regional-control-plane-vpc-host-project-number-2>
<regional-control-plane-uc-project-number>
<regional-control-plane-audit-log-delivery-project-number>
To:
Projects =
<list of compute plane Project Ids>
Services =
Service name: storage.googleapis.com
Service methods: All actions
Service name: compute.googleapis.com
Service methods: All actions
Service name: container.googleapis.com
Service methods: All actions
Service name: logging.googleapis.com
Service methods: All actions
Service name: cloudresourcemanager.googleapis.com
Service methods: All actions
Service name: iam.googleapis.com
Service methods: All actions
イングレス ルールのプロジェクト番号を取得するには、「 Private サービス Connect (PSC) 添付ファイルの URI とプロジェクト番号」を参照してください。
エグレス ルール
DatabricksVPCで管理されるストレージバケットへのアクセスを許可するには、エグレスルールを追加する必要があります。次に、出力ルールの例を示します。
From:
Identities: ANY_IDENTITY
To:
Projects =
<regional-control-plane-asset-project-number>
<regional-control-plane-vpc-host-project-number-1>
<regional-control-plane-vpc-host-project-number-2>
Services =
Service name: storage.googleapis.com
Service methods: All actions
Service name: artifactregistry.googleapis.com
Service methods:
artifactregistry.googleapis.com/DockerRead'
エグレスルールのプロジェクト番号を取得するには、「 Private サービス接続 (PSC) アタッチメント URI とプロジェクト番号」を参照してください。
VPC Service Controls によって保護されたデータレイク ストレージ バケットにアクセスする
データレイク ストレージ バケットを含む Google Cloud プロジェクトを VPC Service Controls サービス境界に追加できます。
データレイク ストレージ バケットと Databricks ワークスペース プロジェクトが同じ VPC Service Controls サービス境界にある場合、追加のイングレス ルールまたはエグレス ルールは必要ありません。
データレイク ストレージ バケットが別の VPC Service Controls サービス境界にある場合は、次のように設定する必要があります。
-
データレイクサービス境界のイングレスルール:
- Databricksコンピュート平面VPCからCloud Storageへのアクセスを許可する
- リージョン ページに記載されているプロジェクト ID を使用して、Databricks コントロール プレーン VPC から Cloud Storage へのアクセスを許可します。このアクセスは、 Databricks が Unity Catalogなどの新しいデータガバナンス機能を導入する際に必要になります。
-
Egress rules on Databricks コンピュート プレーン サービス境界:
- データレイク プロジェクト上の Cloud Storage への下り(外向き)を許可する