顧客管理VPCの構成
このページでは、顧客管理VPCの利点と実装について説明します。
この機能を使用するには、お客様のアカウントがプレミアムプランである必要があります。
概要
デフォルトでは、 Databricks は、 Databricks Runtime クラスタリングなどのワークスペースの従来のコンピュート リソースを Google コンピュート エンジン (GCE) クラスタリングで設定します。 このGCEクラスタリングは、Google Cloudアカウントで 自動的に作成および管理するVirtual Private Cloud()ネットワークVPCに存在します。Databricks
または、Google Cloud アカウントで作成および管理する既存の VPC 内に Databricks ワークスペースをデプロイすることもできます。これは 、顧客管理VPC と呼ばれます。
顧客管理VPC は、次の場合に使用します。
- 強化された制御: ネットワーク構成をより直接的に制御できます。
- コンプライアンス: 組織が必要とする特定のクラウドセキュリティまたはガバナンス基準を満たします。
- 内部ポリシー: プロバイダーが VPC を自動的に作成できないようにするセキュリティポリシーを遵守します。
- 明確な承認プロセス: VPC の作成と設定が特定の内部チーム (情報セキュリティ、クラウド エンジニアリングなど) によって処理される内部プロセスに合わせます。
- Private サービス Connect: VPC任意の接続タイプに対して Private サービス Connect を構成する必要がある場合は、顧客管理 を使用する必要があります。
カスタマーマネージドVPCのメリットは次のとおりです。
- 低い特権レベル: Databricks では、デフォルトの設定と比較して Google Cloud アカウントで必要な権限が少なくなるため、内部承認が簡素化される可能性があります。
- 統合ネットワーキング: 複数の Databricks ワークスペースを構成して 1 つのコンピュート プレーン VPCを共有すると、多くの場合、課金とインスタンス管理が簡素化されます。
顧客管理VPC を使用するには、Databricksアカウント コンソール で ワークスペースを作成するときに指定する必要があります。Databricks マネージド VPC を持つ既存のワークスペースを自分の VPC に移動することはできません。 また、ワークスペースの作成後は、ワークスペースが使用する顧客管理VPC を変更することはできません。
顧客管理VPCの権限レベルが低い
ワークスペースの作成中に、Databricks はサービス アカウントを作成し、Databricks がワークスペースを管理するために必要な アクセス許可を持つ ロールを付与します。
ワークスペースで顧客管理VPCを使用している場合、それほど多くの権限は必要ありません。 Databricks が作成するロールでは、ネットワーク、ルーター、サブネットなどのオブジェクトの作成、更新、削除などの権限が省略されます。 完全な一覧については、「 ワークスペース サービス アカウントに必要なアクセス許可」を参照してください。
必要条件
このトピックの内容:
エグレス要件
ワークスペースに対して Private サービス Connect が構成されていない場合は、提供されているサブネットを構成して、送信パブリック インターネット トラフィックを許可する必要があります。
下り(外向き)を有効にするには、Google Cloud NAT を追加するか、同様のアプローチを使用します。 「 ステップ 1: VPC を作成して設定する」を参照してください。
IP アクセス リストを設定する場合は、それらのパブリック IP アドレスを許可リストに追加する必要があります。 ワークスペースの IP アクセス リストの構成を参照してください。
ネットワーク要件
次の表は、CIDR表記を使用したネットワークリソースと属性の要件を示しています。
ネットワークリソースもしくは属性 | 説明 | 有効範囲 |
---|---|---|
サブネット範囲 | ワークスペースの GCE VM を割り当てる VPC の IP 範囲。サイジングの推奨事項と計算については、「 新しいワークスペースのサブネットサイジング」を参照してください。 |
|
サブネットのリージョン | サブネットのリージョン | サブネットのリージョンは、Databricks が GCE VM をプロビジョニングするためのワークスペースの リージョン と一致する必要があります。 |
1 つの VPC を複数のワークスペースで共有する
1 つの Google Cloud VPC を複数のワークスペースで使用できます。VPC のプロジェクトとは別に、ワークスペースごとに個別の Google Cloud プロジェクトを使用するには、Google が 共有 VPC と呼ぶものを使用します。詳細については、「 プロジェクトの要件」を参照してください。
プロジェクトの要件
VPC に関連付けられた Google Cloud プロジェクトは 、ワークスペースのプロジェクトと一致することができますが、一致する必要はありません。
Googleが スタンドアロンVPC と呼ぶ標準VPCを使用する場合、Databricksは次の両方に同じGoogle Cloud プロジェクトを使用します。
- VPCネットワーク
- Databricks がワークスペースごとに作成するリソース、コンピュート、ストレージ リソース。コンピュート リソースには、GCE VM が含まれます。 ストレージリソースには、システムデータとDBFSルート用の2つのGCSバケットが含まれます。
VPCにコンピュートリソースやストレージリソースとは異なるGoogle Cloud プロジェクトを持たせる場合は、スタンドアロンVPCではなく、Googleが 共有VPC と呼ぶものを作成する必要があります。共有VPCを使用すると、複数のプロジェクトのリソースを共通のVPCネットワークに接続し、そのネットワークの内部IPを使用して相互に通信できます。
用語解説
- 共有VPC という用語を、複数のワークスペースがVPCを共有しているかどうかを混同しないでください。スタンドアロンVPCも共有VPCも、単一のDatabricksワークスペースもしくは複数のワークスペースで使用できます。
- 共有VPC は、 クロスプロジェクトネットワーク もしくは XPN と呼ばれます。Databricksドキュメントでは、Googleのドキュメントで最も一般的な用法に従って 共有VPC という用語を使用しています。
次のようなさまざまな理由から、ワークスペースリソースに別のプロジェクトを使用したい場合があります。
- 独自のDatabricksワークスペースを持ち、すべてのワークスペースをホストする単一のVPCを持つ各ビジネスユニットのコスト帰属と予算計算のために、ワークスペースごとに課金メタデータを分離したい。
- 各プロジェクトに対する権限を目的ごとに制限したい。たとえば、各ワークスペースのコンピュート リソースとストレージ リソースに使用するプロジェクトには、 VPCを作成するためのアクセス許可は必要ありません。
- 組織では、Google Cloud アプリケーションに、このアプローチが必要になる場合がある。
Google が ホスト プロジェクト と呼ぶものは、VPC のプロジェクトです。Google が サービス プロジェクト と呼んでいるのは、 Databricks が各ワークスペースのコンピュートとストレージ リソースに使用するプロジェクトです。
ロールの要件
オペレーションを実行する プリンシパル は、オペレーションごとに特定の必要なロールを持つ必要があります。
プロジェクトで特定のロールが必要となるプリンシパルは、オペレーションの実行方法によって異なります。
- アカウントコンソールを使用する場合、プリンシパルは管理者ユーザーアカウントです。
- アカウント APIを使用するには、プリンシパルが OIDC 認証のメイン サービス アカウント (SA-2) です。サービスアカウントは、その作成者であるあなたから自動的にロールを継承するわけではないことに注意してください。 プロジェクトのサービスアカウントの役割を追加する必要があります。
スタンドアロン VPC アカウントの場合、VPC とデプロイされたリソースの両方に対して 1 つの Google Cloud プロジェクトがあります。VPCがGoogleが共有VPCと呼んでいる場合、それはVPC各ワークスペースのコンピュートおよびストレージリソースに使用されるプロジェクトとは別のプロジェクトを持っていることを意味します。共有 VPC の場合、オペレーションを実行するエンティティ (ユーザーまたはサービスアカウント) は、VPC のプロジェクトとワークスペースのプロジェクト の両方で 特定のロールを持っている必要があります。詳細については、次の表を参照してください。共有 VPC の詳細については、「 プロジェクト要件」を参照してください。
顧客管理VPCを使用してワークスペースを作成するには、ネットワーク設定とワークスペースの両方を作成するためのロールが必要です。 次の表は、ワークスペースがプロビジョニングされる GCP プロジェクトと VPC が存在する GCP プロジェクト (このプロジェクトがワークスペース プロジェクトと異なる場合) でワークスペース作成者に付与する必要があるロールを示しています。
オペレーション | VPC やワークスペースが存在する GCP プロジェクトで必要なロール |
---|---|
以下のすべての顧客管理VPCのオペレーションを実行します。 | 所有者 ( |
ネットワーク構成を作成する | 閲覧者 ( |
ネットワーク設定を削除する | なし |
Databrickワークスペースを作成する | VPC やワークスペースが存在する GCP プロジェクトの所有者 ( |
ワークスペースを削除する | 所有者 ( |
ステップ 1: VPC を作成してセットアップする
-
Google がスタンドアロン VPC と呼ぶものを作成するか、共有 VPC と呼ぶものを作成するかを決定します。共有 VPC では、VPC に 1 つの Google Cloud プロジェクトを指定し、ワークスペースごとに個別のプロジェクトを指定できます。Databricks は、ワークスペース プロジェクトを使用して、ワークスペースのストレージとコンピュート リソースを作成します。 「プロジェクトの要件」を参照してください。
- 各ワークスペースのコンピュートおよびストレージ リソースと同じプロジェクトを VPC に使用するには、スタンドアロン VPCを作成します。
- それ以外の場合は、共有VPCを作成します。
-
ネットワーク要件に従って VPC を作成します。
-
スタンドアロン VPC を作成するには 、 Google Cloud コンソール または Google CLI を使用します。 Google CLI を使用して、Databricks ワークスペースに十分な IP 範囲を持つスタンドアロン VPC を作成するには、次のコマンドを実行します。
<region>
を、Databricks ワークスペースを作成する予定の Google Cloud リージョンに置き換えます。<vpc-name>
を新しい VPC 名に置き換えます。<subnet-name>
を新しいサブネット名に置き換えます。<project-id>
をスタンドアロン VPC のプロジェクト ID に置き換えます。Bash
gcloud config set project <project-id>
gcloud compute networks create <vpc-name> --subnet-mode=custom
gcloud compute networks subnets create <subnet-name> \
--network=<vpc-name> --range=10.0.0.0/16 --region=<region> -
共有VPCを作成するには
- Googleの記事「共有VPCの概要」を参照してください。
- Google の記事「共有 VPC のプロビジョニング」の手順に従います。 ホストプロジェクトは 、VPC のプロジェクトです。 サービス プロジェクトは 、Databricks が各ワークスペースのコンピュートとストレージ リソースに使用するプロジェクトです。
-
-
ワークスペースのコンピュート リソース VM には、パブリック IP アドレスがありません。 Private サービス Connect を使用しないワークスペースをサポートするには、ワークスペースが コントロール プレーンに接続できるように、 からパブリックVPC インターネットへのエグレス (送信) トラフィックを許可するリソースがVPC Databricksに含まれている必要があります。
エグレスを有効にする簡単な方法は、Google Cloud NAT を追加することです。 Google の記事「Cloud NAT を使用してネットワーク アドレス変換を設定する」の手順に沿って操作します。 このアプローチにより、すべての目的地へのエグレスが可能になります。 エグレスを必要な宛先のみに制限する場合は、今すぐ、または 後で「ファイアウォールを使用してワークスペースのネットワーク エグレスを制限する」の手順を使用して行うことができます。
この手順で Google CLI を使用する場合は、次のコマンドで実行できます。
<vpc-name>
を、前の手順で指定した VPC 名に置き換えます。<nat-name>
を新しい NAT 名に置き換えます。<region>
を、ワークスペース (または同じリージョン内の複数のワークスペース) で使用するリージョン名に置き換えます。Bashgcloud compute routers create my-router --network=<vpc-name> --region=<region>
gcloud compute routers nats create <nat-name> \
--router=my-router \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--router-region=<region>
ステップ 2: 管理者ユーザー アカウントのプロジェクトの役割を確認または追加する
操作を実行する プリンシパル には、操作ごとに特定の必要なロールが必要です。 ワークスペースの作成およびその他の関連操作に必要なロールについては、「 ロールの要件 」を参照してください
プロジェクトで特定のロールが必要となるプリンシパルは、オペレーションの実行方法によって異なります。
- アカウントコンソールを使用する場合、プリンシパルは管理者ユーザーアカウントです。
- アカウント APIを使用するには、プリンシパルが OIDC 認証のメイン サービス アカウント (SA-2) です。サービスアカウントは、その作成者であるあなたから自動的にロールを継承するわけではないことに注意してください。 プロジェクトのサービスアカウントの役割を追加する必要があります。
次の手順で、プロジェクトのプリンシパルの役割を確認もしくは更新します。
-
Google Cloud コンソールのプロジェクトIAMページに移動します。
-
必要に応じて、ページ上部のプロジェクトピッカーからプロジェクトを変更して、VPC のプロジェクトと一致させます。
-
プリンシパルがすでにこのプロジェクトでロールを持っている場合は、このページでそのロールを見つけて、 役割 列でその役割を確認できます。
-
次の手順で、このプロジェクトのプリンシパルに新しいロールを追加します。
-
IAMページ上部にある 追加 をクリックします。
-
プリンシパル フィールドに、更新するエンティティのメールアドレスを入力します。
-
[ロールの選択 ] フィールドをクリックします。必須としてリストされている必要なロールを選択します。 「ロールの要件」を参照してください。所有者、閲覧者、編集者の役割については、ピッカーの [基本 ] カテゴリで確認できます。
-
顧客管理VPCを使用してワークスペースを作成するには、ネットワーク設定とワークスペースの両方を作成するための ロール が必要です。 ここで両方の操作の役割を追加します。
-
他のロールを追加するには、 他のロールの追加 をクリックし、「プロジェクトのプリンシパルのロールを確認もしくは更新する」で説明したステップを繰り返します。
-
[ 保存 ]をクリックします。
-
Google Cloud 共有VPCを使用すると、ワークスペース リソースに異なる Google Cloud プロジェクト(コンピュート リソースやストレージなど)を使用できる場合は、ワークスペースのプロジェクトでプリンシパルのロールを確認または追加する必要もあります。このセクションの手順を繰り返しますが、VPC のプロジェクトではなく、ワークスペースのプロジェクトを使用します。
ステップ 3: ネットワークを Databricksで登録する ネットワーク設定オブジェクトを作成します
ネットワーク (VPC) を新しいDatabricksネットワーク設定オブジェクトとして登録します。
- アカウントコンソールに移動します。
- 左側のナビゲーションで [Cloud リソース
] をクリックします。
- [ネットワーク構成の追加] をクリックします。
- 別のWebブラウザウィンドウで、Google Cloud コンソールを開きます。
- VPCに移動します。
- サブネット名をクリックします。Google Cloud コンソールは、サブネットの詳細とフォームに必要なその他の情報を含むページを表示します。
- ネットワーク設定を追加 フォームに情報をコピーします。
- 最初のフィールドに、ネットワーク構成の判読可能な名前を入力します。
- VPC名、サブネット名、サブネットのリージョンに正しい値を入力します。
- [ 追加 ] をクリックします。
手順 4: ネットワーク構成を参照する Databricks ワークスペースを作成する
ワークスペースを作成するには、アカウントに対する必要な Google の権限( Google アカウント またはサービス アカウント)が必要です。 「必要な権限」を参照してください。
アカウントコンソールを使用してワークスペースを作成するには、「 アカウントコンソールを使用してワークスペースを作成する 」の手順に従って、次のフィールドを設定します。
-
GoogleクラウドプロジェクトID の場合:
- VPC が スタンドアロン VPC の場合は、これを VPC のプロジェクト ID に設定します。 スタンドアロン VPC の場合、これはワークスペースがリソースに使用するプロジェクトでもあります。
- VPC が 共有 VPC の場合は、これをこのワークスペースのリソースのプロジェクト ID に設定します。
-
ネットワークモード で、 顧客管理ネットワーク を選択します。
-
ネットワーク構成 で、ピッカーからネットワーク構成を選択します。
ステップ 5: コンピュートのデプロイを許可するファイアウォールルールを追加する
Databricks がアカウントに GCE コンピュート リソースをデプロイできるようにするために、Databricks はファイアウォール ルールをVPCに自動的に追加しようとします。権限がないために試行が失敗するのを防ぐには、次のファイアウォールルールを VPC に追加する必要があります。 このファイアウォールルールは、VPC 内の Databricks で管理されている VM 間のトラフィックを許可します。 このルールでは、VPC の外部からのイングレスは許可されません。
必要なルールは次のとおりです。
- ルール名 :
databricks-{WORKSPACE_ID}-ingress
- 方向 : Ingress
- 優先度 :1000
- ターゲット :
Network tag: databricks-{WORKSPACE_ID}
- ソースフィルタ :
IPv4 range: primary CIDR range of subnet
- プロトコルとポート : すべて許可