顧客管理 VPC の設定

重要

この機能を使用するには、アカウントが プレミアムプランである必要があります。

概要

デフォルトでは、Databricks クラスターなどの スペースのクラシック コンピュート リソースが、Google クラウドDatabricks Runtime Virtual Private クラウド (VPC ) ネットワーク 内の GKE クラスター内に作成されます。Databricks 、Google クラウド アカウントにこのVPC作成して構成します。

または、Google クラウド アカウントで作成した既存の 顧客管理 VPC に Databricks ワークスペースを作成することもできます。 顧客管理 VPC を使用すると、ネットワーク構成をより詳細に制御し、組織が必要とする特定のクラウドセキュリティおよびガバナンス標準に準拠できます。 任意のタイプの接続で Private Service Connect を使用するようにワークスペースを構成するには、ワークスペースで顧客管理 VPC を使用する必要があります。

カスタマーマネージドVPCは、次のような場合に適しています。

  • PaaS プロバイダが自分の Google クラウド アカウントに VPC を作成できないようにするセキュリティ ポリシー。

  • 新しいVPCを作成するための承認プロセスがあり、VPCが内部の情報セキュリティチームまたはクラウドエンジニアリングチームによって十分に文書化された方法で設定および保護されている場合。

カスタマーマネージドVPCのメリットは次のとおりです。

  • 権限レベルを下げる: 自分の Google クラウド アカウントをより詳細に管理できます。 Databricks には、デフォルトの Databricks マネージド VPC に必要な数のアクセス許可は必要ありません。 必要なアクセス許可が制限されていると、プラットフォーム スタックで Databricks を使用するための承認を簡単に取得できます。 「 顧客管理 VPC の権限レベルが低い」を参照してください。

  • 統合 VPC: 複数の Databricks ワークスペースを構成して、1 つのコンピュート プレーン VPC を共有します。 これは、多くの場合、課金とインスタンス管理に適しています。

顧客管理VPC

顧客管理 VPC を使用するには、Databricks アカウント コンソール から ワークスペースを作成するときにそれを指定する必要があります。Databricks が管理する VPC を含む既存のワークスペースを独自の VPC に移動することはできません。 また、ワークスペースの作成後は、ワークスペースが使用する顧客管理 VPC を変更することはできません。

顧客管理VPCの権限レベルが低い

ワークスペースを作成するときに、Databricks はサービス アカウントを作成し、ワークスペースを管理するために Databricks が必要とする権限を持つロールを付与します。

ワークスペースで顧客管理 VPC を使用する場合、それほど多くの権限は必要ありません。 Databricks が作成するロールには、ネットワーク、ルーター、サブネットなどのオブジェクトの作成、更新、削除などの権限が省略されます。 完全なリストについては、 「ワークスペース サービス アカウントに必要な権限」を参照してください。

要件

エグレス要件

ワークスペースの作成の一環として、Databricks は VPC に GKE クラスターを作成します。 デフォルトでは、これはプライベート GKE クラスターであり、パブリック IP アドレスはありません。 プライベート GKE クラスターの場合、指定するサブネットとセカンダリ IP の範囲は、送信のパブリック インターネット トラフィックを許可する必要がありますが、デフォルトでは許可されていません。 下り(外向き)を有効にするには、Google クラウド NAT を追加するか、同様のアプローチを使用します。 「ステップ 1: VPC を作成して設定する」を参照してください。

注:

代わりにパブリック GKE クラスターを選択した場合、コンピュート ノードにはパブリック IP アドレスがあるため、ワークスペースには 安全なクラスター接続 がありません。

ネットワーク要件

次の表に、 CIDR 表記を使用したネットワーク リソースと属性の要件を示します。

ネットワーク・リソースまたは属性

説明

有効範囲

サブネット範囲

ワークスペースの GKE クラスターノードを割り当てる VPC の IP 範囲。 サイズに関する推奨事項と計算については、 「新しいワークスペースのサブネット サイズの計算」を参照してください。

/29 から /9までの範囲。

サブネットのリージョン

サブネットのリージョン

サブネット リージョンは、Databricks がワークスペースを実行するために GKE クラスターをプロビジョニングするために、ワークスペースの リージョン と一致する必要があります。

GKE Pod のセカンダリ範囲

ワークスペースの GKE クラスター Pod の割り当て元となる VPC の IP 範囲。

/21 から /9までの範囲。

GKE サービスのセカンダリ範囲

ワークスペースの GKE クラスター サービスを割り当てる VPC の IP 範囲。

/27 から /16までの範囲。

1 つの VPC を複数のワークスペースで共有する

1 つの Google クラウド VPC を複数のワークスペースで使用できます。 各ワークスペースのサブネットが重複していないことを確認する必要があります。 VPC のプロジェクトとは別に、ワークスペースごとに個別の Google クラウド プロジェクトを使用するには、Google が 共有 VPC と呼ぶものを使用します。 詳細については、「 プロジェクトの要件」を参照してください。

プロジェクト要件

VPC に関連付けられている Google クラウド プロジェクトは 、ワークスペースのプロジェクトと一致させることができますが、一致させる必要はありません。

Google がスタンドアロン VPC と呼ぶ標準 VPC を使用する場合、Databricks は次の両方に同じ Google クラウド プロジェクトを使用します。

  • VPC ネットワーク

  • Databricksがコンピュートおよびストレージ リソースの各ワークスペースに対して作成するリソース。 コンピュートリソースには、GKE クラスターとそのクラスターノードが含まれます。 ストレージ リソースには、システム データと DBFS ルート用の 2 つのGCSバケットが含まれます。

VPC にコンピュートやストレージ リソースとは異なる Google クラウド プロジェクトを持たせる場合は、スタンドアロン VPC ではなく、Google が 共有 VPC と呼ぶものを作成する必要があります。 共有 VPC を使用すると、複数のプロジェクトのリソースを共通の VPC ネットワークに接続し、そのネットワークの内部 IP を使用して相互に通信できます。

注:

用語に関する注意事項:

  • 共有 VPC という用語と、複数のワークスペースが VPC を共有するかどうかを混同しないでください。スタンドアロン VPC と共有 VPC はどちらも、1 つの Databricks ワークスペースまたは複数のワークスペースで使用できます。

  • 共有 VPC は、 クロス プロジェクト ネットワーク ( XPN) とも呼ばれます。 Databricksドキュメントでは、 共有 VPC という用語を使用して、Google ドキュメントの最も一般的な使用法に従います。

さまざまな理由で、ワークスペース リソースに別のプロジェクトを使用する場合があります。

  • 独自の Databricks ワークスペースを持ち、すべてのワークスペースをホストする 1 つの VPC を持つ各ビジネスユニットのコスト属性と予算計算のために、ワークスペースごとに課金メタデータを分離する必要があります。

  • 目的ごとに各プロジェクトの権限を制限したい。 たとえば、各ワークスペースのコンピュートリソースとストレージリソースに使用するプロジェクトには、VPC を作成するためのアクセス許可は必要ありません。

  • 組織によっては、Google クラウド アプリケーションに対してこのアプローチが必要になる場合があります。

Google がホスト プロジェクトと呼ぶものは、VPC の プロジェクト です。 Google がサービス プロジェクトと呼んでいるのは、Databricks が各ワークスペースのコンピュートとストレージ リソースに使用する プロジェクト です。

役割の要件

操作を実行する プリンシパル には、操作ごとに特定の必要なロールが必要です。

重要

プロジェクトで特定のロールを必要とするプリンシパルは、操作の実行方法によって異なります。

  • アカウントコンソールを使用する場合、プリンシパルは管理者ユーザー アカウントです。

  • アカウント API を使用する場合、プリンシパルは OIDC 認証のメイン サービス アカウント (SA-2) です。サービスアカウントは、作成者からロールを自動的に継承するわけではないことに注意してください。 プロジェクトにサービスアカウントのロールを追加する必要があります。

スタンドアロン VPC アカウントの場合、VPC とそこにデプロイされたリソースの両方に 1 つの Google クラウド プロジェクトがあります。 VPC が Google で共有 VPC と呼ばれる場合、その VPC には、各ワークスペースのコンピュートおよびストレージ リソースに使用されるプロジェクトとは別のプロジェクトがあることを意味します。 共有 VPC の場合、オペレーションを実行するエンティティ (ユーザーまたはサービス アカウント) は、VPC のプロジェクトとワークスペースのプロジェクト の両方で 特定のロールを持っている必要があります。 詳細については、次の表を参照してください。 共有 VPC の詳細については、「 プロジェクトの要件」を参照してください。

顧客管理VPCでワークスペースを作成するには、ネットワーク設定とワークスペースの両方を作成するためのロールが必要です。

オペレーション

VPC がスタンドアロン VPC の場合、ワークスペースのプロジェクトに必要なロール

VPC が共有 VPC の場合、プロジェクトに必要なロール

以下の顧客管理VPC操作をすべて実行します

所有者 (roles/owner) または (b) 編集者 (roles/editor) とプロジェクト IAM 管理者 (roles/resourcemanager.projectIamAdmin) の両方。

VPC のプロジェクト: Viewer (roles/viewer)。 ワークスペースのプロジェクト: (a) 所有者 (roles/owner) または (b) 編集者 (roles/editor) とプロジェクト IAM 管理者 (roles/resourcemanager.projectIamAdmin) の両方

ネットワーク構成の作成

ビューア (roles/viewer)

VPC のプロジェクトとワークスペースのプロジェクトの両方で、次の操作を行います。 ビューア (roles/viewer)

ネットワーク設定を削除

なし

なし

Databricks ワークスペースを作成する

(a) ビューア (roles/viewer) または (b) エディタ (editor/owner) とプロジェクト IAM 管理者 (roles/resourcemanager.projectIamAdmin) の両方。

VPC のプロジェクト: Viewer (roles/viewer)。 ワークスペースのプロジェクト: (a) 所有者 (roles/owner) または (b) 編集者 (roles/editor) とプロジェクト IAM 管理者 (roles/resourcemanager.projectIamAdmin) の両方

ワークスペースの削除

所有者 (roles/owner) または (b) 編集者 (editor/owner) とプロジェクト IAM 管理者 (roles/resourcemanager.projectIamAdmin) の両方。

VPC のプロジェクトの場合: ロールは必要ありません。 ワークスペースのプロジェクト: (a) 所有者 (roles/owner) または (b) 編集者 (roles/editor) とプロジェクト IAM 管理者 (roles/resourcemanager.projectIamAdmin) の両方

ステップ 1: VPC を作成して設定する

  1. Google がスタンドアロン VPC と呼ぶものを作成するか、共有 VPC を作成するかを決定します。 共有 VPC では、VPC に 1 つの Google クラウド プロジェクトを指定し、ワークスペースごとに個別のプロジェクトを指定できます。 Databricks では、ワークスペース プロジェクトを使用して、ワークスペースのストレージとコンピュート リソースを作成します。 「プロジェクトの要件」を参照してください。

    • 各ワークスペースのコンピュートおよびストレージリソースと同じプロジェクトを VPC に使用するには、スタンドアロン VPC を作成します。

    • それ以外の場合は、共有 VPC を作成します。

  2. ネットワーク要件に従って VPC を作成します。

    • スタンドアロン VPC を作成するには、Google クラウドコンソール または Google CLI を使用します。 Google CLI を使用して、Databricks ワークスペースに十分な IP 範囲を持つスタンドアロン VPC を作成するには、次のコマンドを実行します。 <region> を、Databricks ワークスペースを作成する予定の Google クラウド リージョンに置き換えます。<vpc-name> を新しい VPC 名に置き換えます。<subnet-name> を新しいサブネット名に置き換えます。<project-id> をスタンドアロン VPC のプロジェクト ID に置き換えます。

      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> \
      --secondary-range pod=10.1.0.0/16,svc=10.2.0.0/20
      

      この例では、セカンダリ IP 範囲の名前は podsvcです。 これらの名前は、後の構成手順に関連しています。

    • 共有 VPC を作成するには:

      1. Googleの記事 「共有VPCの概要」をお読みください。

      2. Google の記事「共有 VPC を使用したクラスターのセットアップ」の手順に従います。 ホストプロジェクトは VPC のプロジェクトです。サービス プロジェクトは、Databricks が各ワークスペースのコンピュートとストレージ リソースに使用するプロジェクトです。このページでは、共有 VPC をセットアップし、テスト用に共有 VPC に GKE テスト クラスタを作成し、テスト クラスタを削除する手順について説明します。

  3. この VPC 内の任意のワークスペースにプライベート GKE クラスターを使用する予定の場合(ワークスペース作成時のデフォルト設定)、コンピュート リソース ノードにはパブリック IP アドレスがありません。

    注:

    ワークスペースの作成時にパブリック GKE クラスターを使用してコンピュート リソース ノードのパブリック IP アドレスを作成する場合は、このセクションの次のステップに進んでください。

    プライベート GKE クラスターでワークスペースをサポートするには、ワークスペースが Databricks コントロールプレーンに接続できるように、VPC からパブリック インターネットへのエグレス(送信)トラフィックを許可するリソースが VPC に含まれている必要があります。

    エグレスを有効にする簡単な方法は、Google クラウド NAT を追加することです。 Googleの記事「クラウドNATでネットワークアドレス変換を設定する」の手順に従ってください。 このアプローチにより、すべての宛先へのエグレスが可能になります。 エグレスを必要な宛先のみに制限する場合は、「 ファイアウォールを使用してワークスペースのネットワーク エグレスを制限する」の手順を使用して、今すぐまたは後で行うことができます。

    この手順に Google CLI を使用する場合は、次のコマンドで実行できます。 <vpc-name> を前のステップで指定した VPC 名に置き換えます。<nat-name> を新しい NAT 名に置き換えます。<region> を、ワークスペース (または同じリージョン内の複数のワークスペース) で使用するリージョン名に置き換えます。

    gcloud 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>
    

    その他の例については、Google の記事「GKE の設定例」をご覧ください。

ステップ 2: 管理者ユーザー アカウントのプロジェクトの役割を確認または追加する

操作を実行する プリンシパル には、操作ごとに特定の必要なロールが必要です。 ワークスペースおよびその他の関連操作の作成に必要なロールについては、「 ロールの要件 」を参照してください

重要

プロジェクトで特定のロールを必要とするプリンシパルは、操作の実行方法によって異なります。

  • アカウントコンソールを使用する場合、プリンシパルは管理者ユーザー アカウントです。

  • アカウント API を使用する場合、プリンシパルは OIDC 認証のメイン サービス アカウント (SA-2) です。サービスアカウントは、作成者からロールを自動的に継承するわけではないことに注意してください。 プロジェクトにサービスアカウントのロールを追加する必要があります。

プロジェクトのプリンシパルのロールを確認または更新するには、次のようにします。

  1. Googleクラウドコンソールの プロジェクトIAMページ に移動します。

  2. 必要に応じて、ページ上部のプロジェクトピッカーから VPC のプロジェクトに合わせてプロジェクトを変更します。

  3. プリンシパルがこのプロジェクトですでにロールを持っている場合は、このページでそのロールを見つけ、[ ロール] 列でそのロールを確認できます。

  4. このプロジェクトのプリンシパルに新しいロールを追加するには、次のようにします。

    1. 「IAM」ページの上部にある「 ADD」をクリックします。

    2. [ プリンシパル ] フィールドに、更新するエンティティの電子メール アドレスを入力します。

    3. [ 役割の選択 ] フィールドをクリックします。 必須としてリストされている必須ロールを選択します。 「ロールの要件」を参照してください。所有者、閲覧者、編集者の役割については、 基本カテゴリの ピッカー内にあります。

      注:

      顧客管理VPCでワークスペースを作成するには、ネットワーク設定とワークスペースの両方を作成するための ロール が必要です。 ここで、両方の操作のロールを追加します。

    4. 他のロールを追加するには、「 別のロールを追加 」をクリックし、「プロジェクトのプリンシパルのロールを確認または更新するには」の前のステップを繰り返します。

    5. [保存]をクリックします。

  5. コンピュートリソースやストレージなどのワークスペースリソースに別のGoogleクラウドプロジェクトを許可する Googleクラウド共有VPCを使用する場合は、ワークスペースのプロジェクトでプリンシパルのロールを確認または追加する必要もあります。 このセクションのステップを繰り返しますが、VPC のプロジェクトではなく、ワークスペースのプロジェクトを使用します。

ステップ 3: ネットワーク構成オブジェクトを作成する Databricks を使用してネットワークを登録する

ネットワーク (VPC) を新しい Databricks ネットワーク構成オブジェクトとして登録する。

  1. アカウント コンソールに移動します。

  2. 左側のナビゲーションで、「 クラウドリソース クラウドリソース」をクリックします。

  3. [ネットワーク構成の追加]をクリックします。

  4. 別のウェブブラウザウィンドウで、Googleクラウドコンソールを開きます。

  5. VPC に移動します。

  6. サブネット名をクリックします。 Google クラウドコンソールに、サブネットの詳細とフォームに必要なその他の情報を含むページが表示されます。

  7. [ ネットワーク構成の追加 ] フォームに情報をコピーします。

    1. 最初のフィールドに、人間が判読できるネットワーク設定の名前を入力します。

    2. VPC 名、サブネット名、およびサブネットのリージョンに正しい値を入力します。

    3. GKE ポッドとサービスのセカンダリ IP 範囲を入力します。 前の例を使用して gcloud CLI コマンドでスタンドアロン VPC を作成した場合、これらのセカンダリ IP 範囲の名前は podsvcになります。

    4. 追加」をクリックします。

ステップ 4: ネットワーク構成を参照する Databricks ワークスペースを作成する

重要

ワークスペースを作成するには、 Google アカウントまたはサービスアカウントに対する必要な Google 権限が必要です。 「 必要なアクセス許可」を参照してください。

アカウント コンソールを使用してワークスペースを作成するには、 「アカウント コンソールを使用してワークスペースを作成する」の手順に従い、次のフィールドを設定します。

  • Google クラウド プロジェクト ID の場合:

    • VPC がスタンドアロン VPC の場合は、これを VPC のプロジェクト ID に設定します。 スタンドアロン VPC の場合、これはワークスペースがリソースに使用するプロジェクトでもあります。

    • VPC が 共有 VPC の場合は、このワークスペースのリソースのプロジェクト ID に設定します。

  • [ ネットワーク Mode] で、[ 顧客管理ネットワーク] を選択します。

  • [ ネットワーク構成] で、ピッカーからネットワーク構成を選択します。