Account APIを使用してワークスペースを作成する

ワークスペースは、 アカウント API を使用して作成できます。 アカウント API を使用すると、1 つの Databricks アカウントに関連付けられた複数の新しい Databricks ワークスペースをプログラムで作成できます。 作成するワークスペースごとに、異なる構成設定を使用できます。 または、 アカウントコンソール または Terraformを使用してワークスペースを作成することもできます。

既定では、Databricks によってワークスペースの VPC のライフサイクルが作成され、管理されます。 必要に応じて、独自の 顧客管理 VPC を指定できます。 この機能には、Premium 価格レベルが必要です。

アカウント API を使用してデフォルトの VPC でワークスペースを作成する

このトピックでは、アカウント API を使用して、Databricks で管理される VPC を持つワークスペースを作成する方法について説明します。 顧客管理 VPC を使用するワークスペースを作成するには、代わりに「Account API を使用して顧客管理 VPC でワークスペースを作成する」の手順に従います。

アカウント API を使用してワークスペースを作成できます。アカウント API はアカウント レベルの API であるため、認証はワークスペース レベルのAPIsであるほとんどの Databricks REST APIsとは異なります。アカウントレベルの APIsに対する認証では、Google ID 認証を使用し、各アカウント API リクエストの HTTP ヘッダーとして含める 2 種類のトークン(Google ID トークンと Google アクセストークン)を作成する必要があります。 詳しくは、Google ID トークンによる認証をご覧ください。

関連アクション:

アカウント API を使用してデフォルトの VPC でワークスペースを作成するには、次の手順を実行します。

  1. 使用しているサービス アカウントに、ワークスペース作成のための適切なアクセス許可があることを確認します。 これは、 Google ID トークンによる認証で説明されているように、SA-2 と呼ばれるメインのサービス アカウントです。 サービスアカウントには、ワークスペースを作成したGoogleクラウドプロジェクトで、以下のいずれかのロールまたはロールのグループが必要です。

    • オーナー (roles/owner)

    • エディター (roles/editor) とプロジェクト IAM 管理者 (roles/resourcemanager.projectIamAdmin) の両方。

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

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

    3. サービスアカウントにこのプロジェクトのロールがすでにある場合は、このページでそのアカウントを見つけ、[ロール]列でその ロール を確認できます。

    4. このプロジェクトのサービスアカウントに新しいロールを追加するには、次の手順を実行します。

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

      2. [ プリンシパル ] フィールドに、サービス アカウントの電子メール アドレスを入力します。

      3. [ 役割の選択 ] フィールドをクリックします。 必要なロールを選択します。 所有者、閲覧者、および編集者の役割については、 基本カテゴリの ピッカー内にあります。

      4. 他のロールを追加するには、[ ADD ANOTHER ROLE] をクリックし、「ロールを追加するには」の前のステップを繰り返します。

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

  2. まだ行っていない場合、またはGoogle IDまたはアクセストークンの有効期限が切れている場合は、アカウントAPIへの Google ID認証 用に両方のタイプのトークンを作成します。

  3. Databricks ワークスペースで使用される GKE サブネットを計算します。 ワークスペースのデプロイ後に変更することはできません。 Databricks サブネットのアドレス範囲が小さすぎると、ワークスペースの IP 空間が使い果たされ、Databricks ジョブが失敗します。 必要なアドレス範囲のサイズを決定するには、 Databricks が提供する計算ツールを使用します。

  4. 次のコマンドを使用して、デフォルト ワークスペースを作成します。

    curl --location --request POST 'https://accounts.gcp.databricks.com/api/2.0/accounts/<account-id>/workspaces' \
    --header 'X-Databricks-GCP-SA-Access-Token: <google-access-token>' \
    --header 'Authorization: Bearer <google-id-token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
       "workspace_name": "<workspace-name>",
       "cloud": "gcp",
       "location": "<region>",
       "cloud_resource_container": {
           "gcp": {
              "project_id": "<workspace-resource-project-id>"
           }
       },
    }
    '
    

    以下のように置き換えてください。

    • <google-id-token> Google IDとGoogleアクセストークンで <google-access-token> します。

    • <account-id>アカウントIDに置き換えてください。

    • <workspace-name> を、人間が判読できる新しいワークスペースの名前に置き換えます。

    • <region> をサポートされているリージョンの名前に置き換えます。

    • <workspace-resource-project-id> を、使用する Google クラウド プロジェクトに置き換えます。

    オプションのパラメーターを設定します。

    • (オプション)GKE パラメーターのデフォルトをオーバーライドするには、リクエストに gke_config オブジェクトを追加します。 たとえば、public GKE クラスターに切り替えたり、GKE クラスター master リソースの IP 範囲を変更したりします。 「新しいワークスペースを作成する」を参照してください。

    • (オプション)マネージド ネットワーク IP 範囲をオーバーライドするには、デフォルト、要求に gcp_managed_network_config オブジェクトを追加します。 たとえば、クラスター ポッド、クラスター サービスの IP 範囲、またはサブネットに使用する CIDR 形式の IP 範囲を変更します。 「新しいワークスペースを作成する」を参照してください。

      注:

      ポッド、サービス、およびマスター IP 範囲の IP 範囲は、相互に排他的である必要があります。 これらのフィールドの IP 範囲は重複してはならず、すべての IP アドレスは 10.0.0.0/8100.64.0.0/10172.16.0.0/12192.168.0.0/16、および 240.0.0.0/4の範囲内に完全に収まる必要があります。

    • (オプション) 顧客管理の暗号化キーを追加して、一部の種類のデータへのアクセスを制御できます。 「顧客管理の暗号化キー」を参照してください。 ワークスペースでキーを構成するには、問題storage_customer_managed_key_id (ワークスペース ストレージの場合) またはmanaged_services_customer_managed_key_id (マネージド サービスの場合) で ID によって参照できるように、暗号化キー構成オブジェクトを作成しておく必要があります。 暗号化の要件とコンテキストについては、「顧客管理キーの構成」を参照してください。

  5. ワークスペースが正常に作成されたことを確認します。 ワークスペースのリストでワークスペースの横にある [ 開く] をクリックします。 ワークスペースの状態を表示し、ワークスペースをテストするには、「 ワークスペースの状態の表示」を参照してください。

  6. ワークスペースの GCS バケットをセキュリティで保護します。 「プロジェクト内のワークスペースの GCS バケットを保護する」を参照してください。

    ワークスペースを作成すると、Databricks on Google クラウドによって、Google クラウド プロジェクトに 2 つの Google クラウド ストレージ (GCS) バケットが作成されます。 Databricks では、これらの GCS バケットをセキュリティで保護して、外部からアクセスできないようにすることを強くお勧め Databricks on Google Cloud

ワークスペースの作成時に、Databricks はプロジェクトで必要な Google APIs を有効にします (まだ有効になっていない場合)。 「 ワークスペースのプロジェクトで Google APIs を有効にする」を参照してください。

アカウント API を使用して顧客管理 VPC でワークスペースを作成するCreate a workspace with a customermanageVPC using the account API

顧客管理 VPC を使用してワークスペースを作成する前に、使用する予定の Google クラウド VPC と、サブネットなどの関連オブジェクトを表す、ネットワーク構成と呼ばれる Databricks オブジェクトを作成する必要があります。 ネットワーク構成は、Databricks ワークスペースを作成するときに指定します。 Databricks で管理されている VPC を含む既存のワークスペースを独自の VPC に移動することはできません。 また、ワークスペースの作成後は、ワークスペースで使用する顧客管理VPCを変更することはできません。

この記事で説明するタスクは、 アカウント コンソールを使用して実行することもできます。 ただし、顧客管理 VPC を構成する場合、Google クラウド プロジェクトで特定のロールを必要とする Google クラウド プリンシパル は、オペレーションの実行方法によって異なります。アカウントコンソールを使用する場合、プリンシパルは管理者ユーザー アカウントです。 Account API を使用する場合、プリンシパルは Google ID 認証に使用するメイン サービス アカウント(SA-2)です。

アカウント API を使用して、ネットワーク構成を追加したり、ワークスペースを作成したりできます。アカウント API はアカウント レベルの API であるため、認証はワークスペース レベルのAPIsであるほとんどの Databricks REST APIsとは異なります。アカウントレベルの APIsに対する認証では、Google ID 認証を使用し、各アカウント API リクエストの HTTP ヘッダーとして含める 2 種類のトークン(Google ID トークンと Google アクセストークン)を作成する必要があります。 詳しくは、 Google ID トークンによる認証をご覧ください。

VPC をセットアップする

顧客管理 VPC の設定」の記事で説明されている以下のステップを実行します。

  1. すべての顧客管理 VPC 要件を確認します

  2. VPC を作成します

その記事の他のステップは行わないでください。

サービスアカウントにロールを追加する

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

サービスアカウントは、作成者からロールを自動的に継承しません。 プロジェクトにサービスアカウントのロールを追加する必要があります。

顧客管理 VPC の設定」の記事を使用して、次の手順を実行します。

  1. ワークスペースおよびその他の関連操作を作成するためにプロジェクトで必要なロールを確認します

  2. 指示に従って プロジェクトに特定のロールを追加します が、アカウント API の使用に 1 つの変更を加えます。 管理者ユーザー アカウントの電子メール アドレスをプリンシパルとして指定しないでください。 代わりに、 Google ID 認証に使用するメイン サービス アカウント (SA-2) の電子メール アドレスとしてプリンシパルを指定します。

登録する a network configuration

アカウント API を使用して、ネットワーク構成を追加できます。 完全な API リファレンスまたは OpenAPI 仕様のダウンロードについては、「 アカウント API」を参照してください。

重要

どちらのタイプの認証トークン(Google IDトークンとGoogleアクセストークン)も1時間で有効期限が切れます。 最初に Google ID のドキュメントを読み、アカウント API を呼び出す準備が整うまで認証トークンの作成を待つことを検討してください。

  1. サービスアカウントのプロジェクトでクラウド リソース Manager API を有効にする

    1. クラウド リソース Manager API に移動します。

    2. 必要に応じて、ページ上部のプロジェクトピッカーを使用して、使用するサービスアカウントが作成されたGoogleクラウドプロジェクトにプロジェクトを変更します。 Google ID の例では、このメイン サービス アカウントは SA-2 とも呼ばれます。

    3. 「有効 ボタンが表示されたら、「 有効」をクリックします。 1分待ってから続行してください。

      [ 有効にする ] ボタンが表示されない場合、API は既に有効になっています。

  2. まだ作成していない場合や、Google ID またはアクセストークンの有効期限が切れている場合は、 Google ID 認証に必要な両方のタイプのトークンを作成します。

  3. 次のコマンドを使用して、REST API を使用してネットワーク構成を作成します。

    curl --location --request POST 'https://accounts.gcp.databricks.com/api/2.0/accounts/<account-id>/networks' \
    --header 'X-Databricks-GCP-SA-Access-Token: <google-access-token>' \
    --header 'Authorization: Bearer <google-id-token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
     "network_name": "<network-configuration-name>",
     "gcp_network_info": {
       "network_project_id": "<vpc-host-project-id>",
       "vpc_id": "<vpc-id>",
       "subnet_id": "<subnet-id>",
       "subnet_region": "<subnet-region>",
       "pod_ip_range_name": "<name-of-pod-secondary-range>",
       "service_ip_range_name": "<name-of-svc-secondary-range>"
     }
    }'
    
    • <google-id-token><google-access-token> を Google ID と Google アクセストークンに置き換えます。

    • <account-id> をアカウント ID に置き換えます。

    • <network-configuration-name> を人間が判読できる新しいネットワーク構成名に置き換えます。

    • <vpc-host-project-id> を VPC のプロジェクト ID に置き換えます。

      重要

      コンピュートリソースやストレージなどのワークスペースリソースに別の Google クラウドプロジェクトを許可する Google クラウド共有 VPC を使用する場合は、これをワークスペースリソースのプロジェクト ID ではなく、 VPC のプロジェクト ID に設定します。

    • [ <vpc-id>]、[ <subnet-id>]、および [ <subnet-region> ] フィールドを VPC ID、サブネット ID、およびサブネットリージョンに設定します。 サブネット リージョンは、新しいワークスペースで使用するリージョンと一致する必要があります。

    • <name-of-pod-secondary-range><name-of-svc-secondary-range>の場合は、前の手順で作成したポッドのセカンダリ範囲とサービスのセカンダリ範囲に置き換えます。前の例を使用して gcloud CLI コマンドでスタンドアロン VPC を作成した場合、これらのセカンダリ IP 範囲の名前は podsvcになります。

      ポッド、サービス、およびマスター IP 範囲の IP 範囲は、相互に排他的である必要があります。 これらのフィールドの IP 範囲は重複してはならず、すべての IP アドレスは 10.0.0.0/8100.64.0.0/10172.16.0.0/12192.168.0.0/16、および 240.0.0.0/4の範囲内に完全に収まる必要があります。

    これにより、JSON 形式のネットワーク構成オブジェクトが返されます。

    {
      "account_id": "e11e38c5-a449-47b9-b37f-0fa36c821612",
      "creation_time": 1644388480866,
      "gcp_network_info": {
        "network_project_id": "<vpc-host-project-id>",
        "pod_ip_range_name": "<name-of-pod-secondary-range>",
        "service_ip_range_name": "<name-of-svc-secondary-range>",
        "subnet_id": "<subnet-id>",
        "subnet_region": "<subnet-region>",
        "vpc_id": "<vpc-id>"
      },
      "network_id": "<network-configuration-id",
      "network_name": "<network-configuration-name>",
      "vpc_status": "UNATTACHED"
    }
    
  4. 結果の [ network_id ] フィールドを保存します。 これは、ネットワーク構成オブジェクトの ID です。 これは、ワークスペースを作成するために必要になります。

顧客管理VPCでワークスペースを作成する

アカウントAPIを使用して顧客管理VPCでワークスペースを作成するには、以下のステップを行います。 完全な API リファレンスまたは OpenAPI 仕様のダウンロードについては、「 アカウント API」を参照してください。 Databricks マネージド VPC を使用してワークスペースを作成するには、代わりに「 アカウント API を使用してデフォルト VPC でワークスペースを作成する」を参照してください。

重要

どちらのタイプの認証トークン(Google IDトークンとGoogleアクセストークン)も1時間で有効期限が切れます。 最初に Google ID のドキュメントを読み、アカウント API を呼び出す準備が整うまで認証トークンの作成を待つことを検討してください。

  1. まだ行っていない場合は、サービス アカウントのプロジェクトでクラウド リソース Manager API を有効にします。 すでに行っている場合は、このセクションの次のステップに進んでください。

    1. クラウド リソース Manager API に移動します。

    2. 必要に応じて、ページ上部のプロジェクトピッカーを使用して、使用するサービスアカウントが作成されたGoogleクラウドプロジェクトにプロジェクトを変更します。 Google ID の例では、このメイン サービス アカウントは SA-2 とも呼ばれます。

    3. 「有効 ボタンが表示されたら、「 有効」をクリックします。 1分待ってから続行してください。

  2. 使用しているサービス アカウントに、ワークスペース作成のための適切なアクセス許可があることを確認します。 これは、 Google ID トークンによる認証で説明されているように、SA-2 と呼ばれるメインのサービス アカウントです。 「ロールの要件」を参照してください。

    重要

    コンピュートリソースやストレージなどのワークスペースリソースに異なる Google クラウドプロジェクトを許可する Google クラウド共有 VPC を使用する場合は、両方のプロジェクトに特定のロールが必要であることに注意してください。

  3. まだ作成していない場合、または Google ID またはアクセストークンの有効期限が切れている場合は、この API に対する Google ID 認証 に必要な両方のトークンを作成します。

  4. 次のコマンドを実行して、プライベート GKE クラスターを使用して一般的なワークスペースを作成します。

    curl --location --request POST 'https://accounts.gcp.databricks.com/api/2.0/accounts/<account-id>/workspaces' \
    --header 'X-Databricks-GCP-SA-Access-Token: <google-access-token>' \
    --header 'Authorization: Bearer <google-id-token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
       "workspace_name": "<workspace-name>",
       "cloud": "gcp",
       "location": "<region>",
       "cloud_resource_container": {
           "gcp": {
               "project_id": "<workspace-resource-project-id>"
           }
       },
       "network_id": "<network-configuration-id>",
       "gke_config": {
           "connectivity_type": "PRIVATE_NODE_PUBLIC_MASTER",
           "master_ip_range": "10.103.0.0/28"
      }
    }
    '
    
    • <google-id-token><google-access-token> を Google ID と Google アクセストークンに置き換えます。

    • <account-id>アカウント ID に置き換えてください。

    • <workspace-name> を、新しいワークスペースの人間が判読できる名前に置き換えます。

    • <region>、サポートされているリージョンの名前に置き換えます。

    • <workspace-resource-project-id> は、使用する Google クラウド プロジェクトに置き換えます。

      重要

      コンピュートリソースやストレージなどのワークスペースリソースに別の Google クラウドプロジェクトを許可する Google クラウド共有 VPC を使用する場合は、[ Google クラウド プロジェクト ID] フィールドを VPC のプロジェクト ID ではなく、ワークスペースリソースのプロジェクト ID に設定します。

    • <network-configuration-id> は、登録した前のステップのネットワーク構成オブジェクトの ID に置き換えます。

    • (オプション)GKE パラメーターのデフォルトをオーバーライドするには、リクエストの gke_config オブジェクトを変更します。 たとえば、パブリック GKE クラスターに切り替えたり、GKE クラスター マスター リソースの IP 範囲を変更したりします。 「新しいワークスペースを作成する」を参照してください。

      ポッド、サービス、およびマスター IP 範囲の IP 範囲は、相互に排他的である必要があります。 これらのフィールドの IP 範囲は重複してはならず、すべての IP アドレスは 10.0.0.0/8100.64.0.0/10172.16.0.0/12192.168.0.0/16、および 240.0.0.0/4の範囲内に完全に収まる必要があります。

    • (オプション)ワークスペースで Google Private Service Connect(PSC)を有効にすることで、プライベート接続でワークスペースを保護し、データ流出のリスクを軽減できます。 これを構成するには、プライベート アクセス設定オブジェクトを作成し、その ID を private_access_settings_id パラメーターで参照する必要があります。 PSC 構成を追加する前に、Databricks では、要件とコンテキストについて、 ワークスペースのプライベート サービス接続を有効にする の記事を読むことを強くお勧めします。

    • (オプション) 顧客管理の暗号化キーを追加して、一部の種類のデータへのアクセスを制御できます。 「顧客管理の暗号化キー」を参照してください。 ワークスペースでキーを構成するには、問題storage_customer_managed_key_id (ワークスペース ストレージの場合) またはmanaged_services_customer_managed_key_id (マネージド サービスの場合) で ID によって参照できるように、暗号化キー構成オブジェクトを作成しておく必要があります。 暗号化の要件とコンテキストについては、「顧客管理キーの構成」を参照してください。

  5. ワークスペースが正常に作成されたことを確認します。 ワークスペースのリストでワークスペースの横にある [ 開く] をクリックします。 ワークスペースの状態を表示し、ワークスペースをテストするには、「 ワークスペースの状態の表示」を参照してください。

  6. ワークスペースの GCS バケットをセキュリティで保護します。 「プロジェクト内のワークスペースの GCS バケットを保護する」を参照してください。

    ワークスペースを作成すると、Databricks on Google クラウドによって、Google クラウド プロジェクトに 2 つの Google クラウド ストレージ (GCS) バケットが作成されます。 Databricks では、これらの GCS バケットをセキュリティで保護して、外部からアクセスできないようにすることを強くお勧め Databricks on Google Cloud。

ワークスペースの作成時に、Databricks はプロジェクトで必要な Google APIs を有効にします (まだ有効になっていない場合)。 「 ワークスペースのプロジェクトで Google APIs を有効にする」を参照してください。