メインコンテンツまでスキップ

ワークスペースのインバウンドプライベート サービス接続を構成する

このページでは、ユーザーとそのDatabricksワークスペース間のインバウンドプライベート接続の構成ステップについて説明します。インバウンドプライベート接続は、パブリックインターネットではなくプライベートEndpointを介して、ユーザーのトラフィックをDatabricks WebアプリケーションおよびREST APIsにルーティングします。

インバウンドPrivate Service Connectを使用してGoogle Cloud VPCまたはオンプレミスネットワークからDatabricksサービスへの安全なプライベート接続を確立します。これにより、パブリックインターネットではなくPrivate Service Connect Endpoint経由でトラフィックがルーティングされます。

インバウンドEndpointはトランジット VPC から発信され、通常はユーザーのウェブアプリケーションアクセスのソースとして機能します。クラシックコンピュートを使用している場合、これはワークスペースのコンピュートプレーンVPCとは別のVPCである可能性があり、オンプレミスネットワークに接続できます。

ワークスペースへのインバウンド Private Service Connect を使用すると、次のことができます。

  • プライベート アクセスを構成する: Databricks Web アプリケーション、REST API、および Databricks Connect API へのをインバウンド Private Service Connect 接続を構成します。
  • プライベート接続を強制する:ユーザーからDatabricksへのプライベート接続を構成します。
  • コンテキストベースのイングレス(ベータ版)でプライベートアクセスを制御する:IDとリクエストタイプの条件と組み合わせて、特定の登録済みEndpointからのアクセスを許可または拒否します。プライベートアクセス ポリシーの構成を参照してください。

要件と制限事項​

  • Databricks アカウントはEnterprise プランにあります。

  • トランジットVPCにサブネットとPrivate サービス Connect Endpointを作成するために必要なすべてのGoogle Cloud権限が必要です。

  • クォータ: Endpointの制限は、VPCごとではなく、ホストプロジェクトごとです。ホストプロジェクトのリージョンごとに、各タイプのPrivate Service Connect Endpointを最大10個まで構成できます。インバウンド Private サービス Connect は、一般的なアクセス Endpoint を使用し、クラシック コンピュート プレーン Private サービス Connect には、独自の制限である10を持つセキュア クラスター接続 (SCC) リレー Endpoint が追加されます。Private Service Connect Endpoint はリージョン固有のリソースであるため、同じVPCおよびリージョン内の複数のDatabricksワークスペースがこれらのEndpointを共有します。このクォータがセットアップの制限になる場合は、アカウントチームにお問い合わせください。

  • リージョン間の接続なし:Private Service Connect ワークスペースコンポーネントは、以下を含め、すべて同じリージョンにある必要があります:

    • トランジット VPC ネットワークとサブネット。
    • ネットワークとサブネット VPC プレーン。
    • Databricks ワークスペース。
    • Private サービス Connect エンドポイント。
    • Private サービス Connect エンドポイント サブネット。

    コンテキストベースのイングレスプライベートアクセスポリシーを使用して汎用アクセスEndpointを許可リストに登録する場合、Endpointとそれに関連するトランジットVPCはワークスペースと同じリージョンにある必要はありません。任意のリージョンの汎用アクセスEndpointは、任意のリージョンのワークスペースにサービスを提供できます。プライベートアクセスポリシーの構成を参照してください。

ネットワークトポロジの複数のオプション​

プライベート Databricks ワークスペースをデプロイする場合は、次のいずれかのネットワーク構成オプションを選択する必要があります。

  • Databricks ユーザー (クライアント) と Databricks クラシック コンピュート プレーンを同じネットワーク上に配置する : このオプションでは、トランジット VPC とコンピュート プレーン VPC は、同じ基盤となる VPC ネットワークを参照します。このトポロジを選択した場合、そのVPCからのDatabricksワークスペースへのすべてのアクセスは、そのVPCのインバウンドのプライベートサービス接続を経由する必要があります。要件と制限を参照してください。
  • Databricks ユーザー(クライアント)と Databricks クラシックコンピュートプレーンを別々のネットワークに配置する : このオプションでは、ユーザーまたはアプリケーションクライアントは、異なるネットワークパスを使用して異なる Databricks ワークスペースにアクセスできます。オプションで、トランジット VPC 上のユーザーが Private Service Connect 接続を介してプライベートワークスペースにアクセスできるようにし、パブリックインターネット上のユーザーがワークスペースにアクセスできるようにすることもできます。

インバウンド Private Service Connect を使用するワークスペースと、同じトランジットVPC内にないワークスペースを混在させることはできません。 1 つのトランジットVPC複数のワークスペースで共有できますが、トランジットVPC内のすべてのワークスペースは同じタイプである必要があり、すべてがインバウンド Private Service Connect を使用するか、まったく使用しないかのどちらかです。 この要件は、Google クラウドでの DNS 解決の詳細によるものです。

地域別サービス添付資料参照​

インバウンド Private Service Connect を有効にするには、地域の全般アクセス Endpoint のサービス アタッチメント URI が必要です。URI はサフィックス plproxy-psc-endpoint-all-portsで終わります。このEndpointには 2 つの役割があります。これは、トランジットVPCワークスペース Web アプリケーションおよびREST APIsに接続するためにインバウンド Private サービス Connect によって使用され、また、 REST APIsのコントロール プレーンに接続するためにクラシック コンピュート プレーン Private サービス Connect によっても使用されます。

リージョンのサービス アタッチメント URI を見つけるには、「Private Service Connect (PSC) 添付ファイル URI とプロジェクト番号 」の 全般アクセス 値を使用します。

インバウンドプライベート サービス 接続をセットアップする​

サブネットの作成​

トランジット VPC ネットワーク内に、インバウンド Private Service Connect Endpoint 専用の サブネット を作成します。これは、Databricks クライアントの接続元となるネットワークです。まだ作成していない場合は、最初にトランジット VPC ネットワークを作成してください。以下の手順では Google Cloud コンソールを使用することを前提としていますが、gcloud CLI を使用して同様のタスクを実行することもできます。

サブネットを作成するには:

  1. Google Cloudコンソールで、VPCリストページに移動します。

  2. [ サブネットの追加 ] をクリックします。

  3. 名前、説明、および地域を設定します。

  4. Purpose フィールドが表示されている場合 (表示されない場合があります)、 None を選択します。

  5. 10.0.0.0/28 のような、サブネットのプライベートIP範囲を設定します。Private Service Connect Endpointをホストするために十分なIPアドレスを割り当てる必要があります。

重要

ユーザーがこのサブネット上のVMまたはコンピュートリソースにアクセスできることを確認してください。

  1. サブネットが VPC の Google Cloud コンソールの VPC ビューに追加されたことを確認します。

    すべてのサブネットを一覧表示します。

VPC Endpointの作成​

ヒント

For workspace private access with context-based ingress, you can reuse a General Access VPC endpoint that you already created for another workspace. The region of this endpoint does not have to match the region of your workspace. A General Access endpoint in any region can serve workspaces in any region.

作成したトランジットVPCサブネットからplproxy-psc-endpoint-all-portsサービス添付ファイルへの汎用アクセスVPC Endpointを作成します。Endpointに名前を付ける際、Databricks では「databricks-general-access-psc」のように「general-access」を含めることを推奨しています。

地域の完全なサービス アタッチメント名を取得するには、「 Private サービス Connect (PSC) 添付ファイル URI とプロジェクト番号」を参照してください。

VPC Endpointの登録​

Google CloudコンソールでVPC Endpointを作成した後、それをDatabricksに登録します。VPC Endpoint設定APIを使用することもできます。

  1. Databricks アカウント コンソールに移動します。
  2. サイドバーの [セキュリティ] をクリックします。
  3. プライベートEndpoint をクリックします。
  4. **プライベートエンドポイントを登録する**をクリックします。
  5. Private サービス Connect エンドポイントごとに、新しい VPC エンドポイントを登録するための必須フィールドに入力します。
    • VPC エンドポイント名 : VPC エンドポイントを識別するための人間が判読できる名前。Databricks では、Private サービス Connect エンドポイント ID と同じ名前を使用することをお勧めしますが、これらが一致している必要はありません。
    • リージョン : この Private サービス Connect エンドポイントが定義されている Google Cloud リージョン。
    • Google Cloud VPC ネットワーク プロジェクト ID : このエンドポイントが定義されている Google Cloud プロジェクト ID。これは、ユーザー接続の起点となる VPC のプロジェクト ID で、トランジット VPC と呼ばれることもあります。
    • Google Cloud Private Service Connect(PSC)Endpoint ID : Google Cloud で作成した PSC エンドポイントの ID。

次の表に、エンドポイントに必要な情報を示します。

Field

Example

VPC endpoint name

psc-demo-user-cp

Region

us-east4

Google Cloud VPC network project ID

databricks-dev-entd-demo

Google Cloud Private Service Connect (PSC) endpoint ID

psc-demo-user-cp

Field

Example

VPC endpoint name

psc-demo-user-cp

Region

us-east4

Google Cloud VPC network project ID

databricks-dev-entd-demo

Google Cloud Private Service Connect (PSC) endpoint ID

psc-demo-user-cp

完了したら、アカウントコンソールの Private Endpoints リストを使用して、Endpointリストを確認し、情報を確定します。

プライベートアクセスポリシーを構成する​

汎用アクセスVPC Endpointを登録した後、ワークスペースのプライベートアクセス ポリシーを設定する方法は2つあります。コンテキストベースのイングレスを使用する方法と、プライベートアクセス設定を使用する方法です。コンテキストベースのイングレスを使用すると、ID、リクエストタイプ、ネットワークソースの条件を組み合わせて、きめ細かなアクセスを構成できます。コンテキストベースのイングレスプライベートアクセス ポリシーもリージョンにバインドされないため、任意のリージョンのEndpointを許可リストに追加して、別のリージョンのワークスペースにサービスを提供できます。コンテキストベースのイングレス制御を参照してください。プライベートアクセス設定は、オールオアナッシングのリージョンバインドポリシーです。

トラフィックを許可するには、プライベートアクセス設定とコンテキストベースのイングレスの両方でEndpointを許可する必要があります。defaultでは、コンテキストベースのイングレスは [すべてのプライベートEndpointからのアクセスを許可] に設定されており、アクセス決定はワークスペースのプライベートアクセス設定に委ねられます。コンテキストベースのプライベートアクセス ポリシーを使用するには、すべての登録済みプライベートEndpointを許可するプライベートアクセス設定オブジェクトをアタッチします(メソッド1の最後のステップを参照)。これにより、アクセス決定はワークスペースのコンテキストベースのイングレスポリシーに委ねられます。

注記

To configure private access to workspaces using context-based ingress, an account admin must turn on Context-Based Ingress: Workspace Private Access Policies from the account console Previews page. See Manage account-level previews.

  1. アカウント コンソールで、サイドバーの [セキュリティ] をクリックします。

  2. サイドバーで コンテキストベースのイングレスとエグレス制御 をクリックします。

  3. 「 ワークスペースレベルポリシー 」で、「 新しいワークスペースポリシー 」をクリックします。

  4. Ingress > Private Network Access で、プライベートアクセスポリシーを定義してください。

    1. defaultでは、登録されているすべてのEndpointが許可されています: すべてのプライベートEndpointからのアクセスを許可 。これで問題がなければ、次のステップに進みます。この default には、登録された最初の 200 個の VPC Endpoint のみが含まれます。ポリシーでそれ以上が必要な場合は、アカウントチームに連絡して増加を依頼してください。
    2. 特定の登録済みEndpointを許可リストに登録しながら他のすべてのEndpointを拒否するには、 すべてのプライベートEndpointからのアクセスを許可 をオフにして、許可ルールを追加します。
      1. アクセスを許可する ID とワークスペースの送信先を選択します。defaultでは、すべての ID と宛先が許可されています。
      2. ソースタイプ には、 選択されたプライベートEndpoint を選択し、登録した汎用アクセスVPCEndpointを選択します。これらのEndpointのリージョンは、ワークスペースのリージョンと一致する必要はありません。
      3. 確認 をクリックします。
      4. 必要に応じて、許可ルールの例外を定義するために、ポリシーに 拒否ルール を追加します。
  5. [イングレス] > [パブリックネットワークアクセス] でパブリックアクセス ポリシーを構成します。すべてのパブリック IP アクセスを無効にするには、 [すべてのパブリック IP からのアクセスを許可] のチェックを外します。Databricksは、DNS構成のテスト中はパブリックアクセスを有効にしておき、DNSが最終決定された後に無効にして排他的なプライベート接続を強制することをお勧めします。

  6. ドライランモード でイングレスポリシーをテストしてから、 適用 に切り替えます。ドライランモードでのアクセス拒否はsystem.access.inbound_networkシステムテーブルにログされますが、アクセスはブロックされません。

  7. エグレス ポリシーが正しいことを確認してください。

  8. ネットワークポリシーをワークスペースに適用してください。

  9. ネットワークポリシーを保存します。コンテキストベースのイングレス ポリシーの更新は、通常 10 分以内に有効になります。

  10. ワークスペースに「すべてのアクセスを許可」プライベートアクセス設定オブジェクトをアタッチします。プライベートアクセス設定オブジェクトがアタッチされていないワークスペースは、ネットワークポリシーに関係なく、すべてのプライベートアクセスが拒否されます。

    1. アカウント コンソールで、サイドバーの [セキュリティ] をクリックします。
    2. 非公開アクセス設定 をクリックします。
    3. [プライベートアクセス設定の追加] をクリックします。
    4. 新しいプライベートアクセス設定オブジェクトの名前を入力します。
    5. ワークスペースと同じリージョンを選択します。
    6. [Public access enabled] を [True] に設定します。コンテキストベースのイングレスポリシーを使用してパブリックアクセスを制限します。
    7. [Private Access Level] を アカウント に設定します。
    8. [プライベートアクセス設定の追加] をクリックします。
    9. アカウントコンソールで、[ ワークスペース ] をクリックし、次に対象のワークスペースをクリックします。
    10. [詳細設定 ] をクリックします。
    11. プライベート接続 フィールドで、作成したプライベートアクセス設定オブジェクトを選択します。
    12. 保存 をクリックします。
ヒント

If multiple workspaces share the same ingress and egress policies, they can share the same network policy, so you can define it one time and attach it anywhere.

ヒント

You can reuse the same "allow all access" private access settings object across any workspace in the same region.

DNSを構成する​

ワークスペース URL、データ プレーン URL、およびブラウザー認証 URL をインバウンド Private サービス Connect Endpoint のプライベート IP に解決する クラウド DNS プライベート ゾーンをトランジット VPC に構成します。

Cloud DNS ゾーンのセットアップ、A レコード、nslookup による検証、およびクラシック コンピュート プレーンの Private Service Connect 全体で一貫した DNS 解決を行うためのベストプラクティスを含む詳細な手順については、「Google Cloud インバウンド Private Service Connect の DNS を構成する」を参照してください。

重要

A transit VPC can contain only workspaces that use inbound Private Service Connect or only workspaces that do not. Google Cloud DNS resolution does not support mixing both types in a single transit VPC.

VPC Service Controlsの構成 (オプション)​

トラフィックのプライバシーを維持するための追加のセキュリティレイヤーを提供するプライベートサービスコネクトと並行してVPC Service Controlsを実装することで、Databricksへのプライベート接続を強化します。この組み合わせたアプローチにより、Google Cloud リソースを分離し、VPC ネットワークへのアクセスを制御することで、データ流出のリスクを効果的に軽減します。

コンピュート プレーンVPCからクラウド ストレージへのクラシック コンピュート プレーン プライベート アクセスを構成する​

プライベート 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 =
<us-central1-control-plane-vpc-host-project-numbers> # Only required for workspace creation
<regional-control-plane-vpc-host-project-numbers>
<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-numbers>
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 へのアクセスを許可します。このアクセスは、Unity Catalogなどの新しいデータガバナンス機能を導入するDatabricks必須です。
  • Egress rules on Databricks コンピュート プレーン サービス境界:

    • データレイク プロジェクト上の Cloud Storage への下り(外向き)を許可する

その他のリソース​