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

アカウント APIを使用してワークスペースを作成する

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

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

アカウント を使用して、デフォルト でワークスペースを作成しますVPCAPI

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

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

関連アクション:

アカウント を使用してデフォルト でワークスペースを作成するには:VPCAPI

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

    • オーナー (roles/owner)

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

    1. Google Cloud コンソールのプロジェクトIAMページに移動します。
    2. 必要に応じて、ページの上部にあるプロジェクト ピッカーから、ワークスペースのプロジェクトと一致するようにプロジェクトを変更します。
    3. サービス アカウントにこのプロジェクトのロールがすでにある場合は、このページでそのロールを見つけて、[ ロール ] 列でそのロールを確認できます。
    4. このプロジェクトのサービス アカウントに新しいロールを追加するには、次のようにします。
      1. IAMページ上部にある 追加 をクリックします。
      2. [ プリンシパル ] フィールドに、サービス アカウントの Eメール アドレスを入力します。
      3. [ロールの選択 ] フィールドをクリックします。必要なロールを選択します。 オーナー、閲覧者、編集者の各ロールは、ピッカーの [基本 ] カテゴリで確認できます。
      4. 他のロールを追加するには、[ ADD ANOTHER ROLE] をクリックし、「ロールを追加するには」の前の手順を繰り返します。
      5. [ 保存 ]をクリックします。
  2. まだ行っていない場合、またはGoogle IDまたはアクセストークンの有効期限が切れている場合は、アカウント への GoogleID認証 用に両方のタイプのトークンを作成します。API

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

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

    Bash
    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 Cloud プロジェクトに関連付けます。

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

    • (オプション)GKE パラメーター デフォルトをオーバーライドするには、リクエストに gke_config オブジェクトを追加します。 たとえば、公開 GKE クラスターに切り替えるか、GKE クラスター マスター リソースの 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の範囲内に完全に収まる必要があります。

  • (オプション)顧客管理の暗号化キーを追加して、一部の種類のデータへのアクセスを制御できます。 暗号化については、顧客管理のキーを参照してください。ワークスペースでキーを構成するには、暗号化キー構成オブジェクトを作成して、パラメーター の ID で参照できるようにしておく必要があります storage_customer_managed_key_id (ワークスペース ストレージの場合) または managed_services_customer_managed_key_id (マネージドサービスの場合) 。 暗号化の要件とコンテキスト については、「顧客管理キーの構成 」を参照してください。
  1. ワークスペースが正常に作成されたことを確認します。 ワークスペースのリストで、ワークスペースの横にある [開く ] をクリックします。 ワークスペースの状態を表示し、ワークスペースをテストするには、「 ワークスペースの状態を表示する」を参照してください。

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

    ワークスペースを作成すると、 Databricks on Google Cloud 、Google Cloud プロジェクトに 2 つのGoogle Cloud Storage ( GCS ) バケットが作成されます。 Databricksでは、 外部からアクセスできないように、これらのGCS バケットを保護することを強く推奨しています。Databricks on Google Cloud

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

アカウント を使用して、顧客管理 でワークスペースを作成しますVPCAPI

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

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

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

VPC を設定する

「顧客管理VPCの構成」の記事で説明されている次の手順を実行します。

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

その記事の他の手順は実行しないでください。

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

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

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

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

  1. ワークスペースおよびその他の関連操作を作成するためにプロジェクトに必要なロールを確認します
  2. プロジェクトで特定のロールを追加するには、指示に従ってくださいが、アカウント API の使用に 1 つの変更を加えます: 管理者ユーザーのアカウント Eメール アドレスをプリンシパルとして指定しないでください。代わりに、 Google ID認証に使用するメインのサービスアカウント(SA-2)のEメールアドレスとしてプリンシパルを指定します。

ネットワーク構成を登録する

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

important

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

  1. サービス アカウントのプロジェクトで Cloud リソース マネージャー API を有効にします

    1. Cloud リソース マネージャー APIに移動します。

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

    3. [Enable ] ボタンが表示されている場合は、[ Enable] をクリックします。1 分待ってから続行します。

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

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

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

    Bash
    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 に置き換えます。

important

Google Cloud 共有VPCを使用すると、ワークスペース リソースに別の Google Cloud プロジェクト(コンピュート リソースやストレージなど)を使用できる場合は、ワークスペース リソースのプロジェクト 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 形式のネットワーク設定オブジェクトが返されます。

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"
}
  1. 結果の network_id フィールドを保存します。 これは、ネットワーク設定オブジェクトの ID です。 ワークスペースを作成するために必要になります。

顧客管理VPCを使用してワークスペースを作成する

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

important

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

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

    1. Cloud リソース マネージャー APIに移動します。
    2. 必要に応じて、ページ上部のプロジェクト ピッカーを使用して、使用するサービス アカウントが作成された Google Cloud プロジェクトにプロジェクトを変更します。 Google ID の例では、このメイン サービス アカウントは SA-2 とも呼ばれます。
    3. [Enable ] ボタンが表示されている場合は、[ Enable] をクリックします。1 分待ってから続行します。
  2. 使用しているサービスアカウントに、ワークスペースを作成するための適切なアクセス許可があることを確認します。 これは、 Google ID トークンによる認証で説明されているように、SA-2 と呼ばれるメインのサービス アカウントです。 「ロールの要件」を参照してください。

important

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

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

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

    Bash
    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 Cloud プロジェクトに置き換えます。

important

Google Cloud 共有VPCを使用すると、コンピュート リソースやストレージなど、ワークスペース リソースに別の Google Cloud プロジェクトを許可する場合は、 Google Cloud プロジェクト 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 サービス Connect(PSC)を有効にします。 これを構成するには、プライベート アクセス設定オブジェクトを作成し、その ID を private_access_settings_id パラメーターで参照する必要があります。 PSC 構成を追加する前に、要件とコンテキストについて Databricks 、 ワークスペースの Private Service Connect を有効にする の記事を読むことを強くお勧めします。

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

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

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

    ワークスペースを作成すると、 Databricks on Google Cloud 、Google Cloud プロジェクトに 2 つのGoogle Cloud Storage ( GCS ) バケットが作成されます。 DatabricksGCS外部からアクセスできないようにこれらのDatabricks on Google Cloud バケットを保護することを強くおすすめします。

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