Account APIを使用してワークスペースを作成する
アカウント APIを使用してワークスペースを作成できます。 アカウントAPIすると、単一のDatabricksアカウントに関連付けられた複数の新しいDatabricksワークスペースをプログラムで作成できます。 作成するワークスペースごとに異なる構成設定を設定できます。 または、アカウント コンソールまたはTerraformを使用してワークスペースを作成することもできます。
デフォルトでは、Databricks はワークスペースの VPC のライフサイクルを作成および管理します。 オプションで、独自の顧客管理 VPCを指定することもできます。 この機能には、プレミアム価格帯が必要です。
アカウント API を使用してデフォルトの VPC でワークスペースを作成する
このトピックでは、アカウント API を使用して、Databricks が管理する VPC を持つワークスペースを作成する方法について説明します。 顧客管理 VPCを使用するワークスペースを作成するには、代わりに「アカウントAPIを使用して顧客管理 VPC でワークスペースを作成する」の手順に従ってください。
アカウント APIを使用してワークスペースを作成できます。 アカウントAPI アカウント レベルのAPI DatabricksRESTAPIsであるため、ワークスペース レベルの であるほとんどのAPIs とは認証が異なります。アカウント レベルのAPIsへの認証では、Google ID 認証を使用し、各アカウントAPIリクエストに HTTP ヘッダーとして含める 2 種類のトークン (Google ID トークンと Google アクセストークン) を作成する必要があります。 Google ID トークンによる認証をご覧ください。
関連アクション:
アカウント API の完全なリファレンスを表示します。
アカウント コンソールを使用してワークスペースを作成します。
アカウント API を使用してデフォルトの VPC でワークスペースを作成するには:
使用しているサービス アカウントに、ワークスペースを作成するための適切な権限があることを確認します。 これは、 Google ID トークンによる認証で説明されているように、SA-2 と呼ばれるメインのサービス アカウントです。 サービス アカウントには、ワークスペースが作成される Google Cloud プロジェクトで次のいずれかのロールまたはロールのグループが必要です。
オーナー (
roles/owner
)編集者(
roles/editor
) とプロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin
) の両方。
Google Cloud コンソールのプロジェクトIAMページに移動します。
必要に応じて、ページ上部のプロジェクト ピッカーからプロジェクトを変更し、ワークスペースのプロジェクトと一致させます。
サービス アカウントにこのプロジェクトに対するロールがすでにある場合は、このページでそのアカウントを見つけて、 [ロール]列でそのロールを確認できます。
このプロジェクトのサービス アカウントに新しいロールを追加するには:
IAM ページの上部にある[追加]をクリックします。
[プリンシパル]フィールドに、サービス アカウントの電子メール アドレスを入力します。
[ ロールの選択 ] フィールドをクリックします。 必要なロールを選択します。 所有者、閲覧者、編集者の役割については、 基本カテゴリの ピッカー内にあります。
他のロールを追加するには、 「別のロールを追加」をクリックし、「ロールを追加するには」の前の手順を繰り返します。
[保存]をクリックします。
まだ行っていない場合、または Google ID またはアクセストークンの有効期限が切れている場合は、アカウント への Google ID 認証 用に両方のタイプのトークンを作成します。API
Databricks ワークスペースで使用される GKE サブネットを計算します。 ワークスペースがデプロイされた後は変更できません。 Databricks サブネットのアドレス範囲が小さすぎると、ワークスペースの IP スペースが使い果たされ、Databricks ジョブが失敗します。 必要なアドレス範囲のサイズを決定するには、 Databricks が提供する計算機を使用します。
次のコマンドを使用してデフォルトのワークスペースを作成します。
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/8
、100.64.0.0/10
、172.16.0.0/12
、192.168.0.0/16
、および240.0.0.0/4
の範囲内に完全に収まる必要があります。(オプション) 顧客管理の暗号化キーを追加して、特定の種類のデータへのアクセスを制御できます。 暗号化用の顧客管理キーを参照してください。 ワークスペースでキーを構成するには、暗号化キー構成オブジェクトを作成して、それを 引数
storage_customer_managed_key_id
(ワークスペース ストレージの場合) またはmanaged_services_customer_managed_key_id
(マネージド サービスの場合) で ID で参照できるようにする必要があります。 暗号化の要件とコンテキストについては、「顧客管理キーの構成」を参照してください。
ワークスペースが正常に作成されたことを確認します。 ワークスペースのリストで、ワークスペースの横にある[開く]をクリックします。 ワークスペースのステータスを表示し、ワークスペースをテストするには、 「ワークスペースのステータスの表示」を参照してください。
ワークスペースの GCS バケットを保護します。 プロジェクト内のワークスペースの GCS バケットを保護するをご覧ください。
ワークスペースを作成すると、 Databricks on Google Cloud 、Google Cloud プロジェクトに 2 つのGoogle Cloud Storage ( GCS ) バケットが作成されます。 Databricksでは、 外部からアクセスできないように、これらのGCS バケットを保護することを強く推奨しています。Databricks on Google Cloud
ワークスペースの作成中に、 Databricks 、プロジェクトで必要な Google APIsまだ有効になっていない場合にそれらを有効にします。 ワークスペースのプロジェクトで Google APIs有効にするを参照してください。
アカウントAPIを使用して顧客管理VPCでワークスペースを作成する
顧客管理 VPC を使用してワークスペースを作成する前に、ネットワーク構成と呼ばれるDatabricksオブジェクトを作成する必要があります。このオブジェクトは、使用する予定の Google CloudVPCと、サブネットなどの関連オブジェクトを表します。 Databricks ワークスペースを作成するときに、ネットワーク構成を指定します。 Databricks が管理する VPC を含む既存のワークスペースを独自の VPC に移動することはできません。 また、ワークスペースの作成後は、ワークスペースが使用する顧客管理 VPC を変更することはできません。
この記事で説明されているタスクは、アカウント コンソールを使用して実行することもできます。 ただし、顧客管理 VPC を構成するには、Google Cloud プロジェクトで特定のロールが必要となる Google Cloud プリンシパル が、操作の実行方法によって異なります。アカウント コンソールを使用する場合、プリンシパルは管理者ユーザー アカウントです。 アカウントAPIを使用する場合、プリンシパルはGoogle ID 認証に使用するメインのサービス アカウント (SA-2) になります。
アカウント APIを使用して、ネットワーク構成を追加したり、ワークスペースを作成したりできます。 アカウントAPI アカウント レベルのAPI DatabricksRESTAPIsであるため、ワークスペース レベルの であるほとんどのAPIs とは認証が異なります。アカウント レベルのAPIsへの認証では、Google ID 認証を使用し、各アカウントAPIリクエストに HTTP ヘッダーとして含める 2 種類のトークン (Google ID トークンと Google アクセストークン) を作成する必要があります。 詳細については、 Google ID トークンによる認証をご覧ください。
サービスアカウントにロールを追加する
操作を実行する プリンシパル には、操作ごとに特定の必要なロールが必要です。 プロジェクトで特定のロールを必要とするプリンシパルは、操作の実行方法によって異なります。
アカウント コンソールを使用する場合、プリンシパルは管理者ユーザー アカウントです。
アカウントAPIを使用する場合、プリンシパルは、 Google ID 認証に使用するメインのサービス アカウント (SA-2) になります。
サービス アカウントは、作成者であるユーザーから自動的にロールを継承しません。 プロジェクトのサービス アカウントにロールを追加する必要があります。
記事「顧客管理 VPC を構成する」を参考にして、次の手順を実行します。
ワークスペースやその他の関連操作を作成するためにプロジェクトで必要なロールを確認します。
指示に従ってプロジェクトに特定のロールを追加しますが、アカウントAPI使用に関しては 1 つ変更点があります。プリンシパルとして管理者ユーザーのアカウント E メール アドレスを指定しないでください。 代わりに、 Google ID 認証に使用するメインのサービス アカウント (SA-2) の電子メール アドレスをプリンシパルとして指定します。
ネットワーク構成を登録する
アカウント API を使用してネットワーク構成を追加できます。 完全なAPIリファレンスまたは OpenAPI 仕様のダウンロードについては、アカウントAPIを参照してください。
重要
どちらの認証トークン(Google ID トークンと Google アクセストークン)も 1 時間で有効期限が切れます。 最初は Google ID のドキュメントを読むことを検討してください。ただし、認証トークンの作成は、アカウント API を呼び出す準備ができるまで待ってください。
サービス アカウントのプロジェクトでクラウド リソース マネージャーAPIを有効にします
クラウド リソース マネージャーAPIに移動します。
必要に応じて、ページ上部のプロジェクト ピッカーを使用して、使用するサービス アカウントが作成された Google Cloud プロジェクトにプロジェクトを変更します。 Google ID の例では、このメイン サービス アカウントは SA-2 とも呼ばれます。
「 有効」 ボタンが表示されたら、「 有効」をクリックします。 1分待ってから続行してください。
[有効化]ボタンが表示されていない場合は、API はすでに有効になっています。
まだ行っていない場合、または Google ID またはアクセストークンの有効期限が切れている場合は、 Google ID 認証に必要な両方のタイプのトークンを作成してください。
次のコマンドを使用して、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 Cloud プロジェクトを許可するGoogle Cloud Shared 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 範囲の名前はpod
とsvc
になります。ポッド、サービス、マスター IP 範囲の IP 範囲は相互に排他的である必要があります。 これらのフィールドの IP 範囲は重複してはならず、すべての IP アドレスは
10.0.0.0/8
、100.64.0.0/10
、172.16.0.0/12
、192.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" }
結果の [
network_id
] フィールドを保存します。 これは、ネットワーク構成オブジェクトの ID です。 ワークスペースを作成するにはこれが必要になります。
顧客管理VPCでワークスペースを作成する
アカウントAPIを使用して顧客管理 VPC でワークスペースを作成するには、次の手順を実行します。 完全なAPIリファレンスまたは OpenAPI 仕様のダウンロードについては、アカウントAPIを参照してください。 Databricks が管理する VPC を使用してワークスペースを作成するには、 「アカウント API を使用してデフォルトの VPC でワークスペースを作成する」を参照してください。
重要
どちらの認証トークン(Google ID トークンと Google アクセストークン)も 1 時間で有効期限が切れます。 最初は Google ID のドキュメントを読むことを検討してください。ただし、認証トークンの作成は、アカウント API を呼び出す準備ができるまで待ってください。
まだ行っていない場合は、サービス アカウントのプロジェクトでクラウド リソース マネージャーAPIを有効にします。 すでにこの手順を実行している場合は、このセクションの次のステップに進んでください。
クラウド リソース マネージャーAPIに移動します。
必要に応じて、ページ上部のプロジェクト ピッカーを使用して、使用するサービス アカウントが作成された Google Cloud プロジェクトにプロジェクトを変更します。 Google ID の例では、このメイン サービス アカウントは SA-2 とも呼ばれます。
「 有効」 ボタンが表示されたら、「 有効」をクリックします。 1分待ってから続行してください。
使用しているサービス アカウントに、ワークスペースを作成するための適切な権限があることを確認します。 これは、 Google ID トークンによる認証で説明されているように、SA-2 と呼ばれるメインのサービス アカウントです。 「ロールの要件」を参照してください。
重要
コンピュートリソースやストレージなどのワークスペースリソースに別の Google Cloud プロジェクトを許可するGoogle Cloud Shared VPCを使用する場合は、両方のプロジェクトに特定のロールが必要であることに注意してください。
まだ行っていない場合、または Google ID またはアクセス トークンの有効期限が切れている場合は、この APIへの Google ID 認証 に必要な両方のトークンを作成してください。
プライベート 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 Cloud プロジェクトに置き換えます。重要
コンピュートリソースやストレージなど、ワークスペースリソースに別の Google Cloud プロジェクトを許可するGoogle Cloud Shared VPCを使用する場合は、 Google Cloud プロジェクト IDフィールドを、 VPCのプロジェクト ID ではなく、ワークスペースリソースのプロジェクト ID に設定します。
<network-configuration-id>
を、登録した前のステップのネットワーク構成オブジェクトの ID に置き換えます。(オプション) GKE コンテナー デフォルトをオーバーライドするには、リクエスト内の
gke_config
オブジェクトを変更します。 たとえば、パブリック GKE クラスター に切り替えたり、GKE クラスター マスターリソースの IP 範囲を変更したりします。 「新しいワークスペースを作成する」を参照してください。ポッド、サービス、マスター IP 範囲の IP 範囲は相互に排他的である必要があります。 これらのフィールドの IP 範囲は重複してはならず、すべての IP アドレスは
10.0.0.0/8
、100.64.0.0/10
、172.16.0.0/12
、192.168.0.0/16
、および240.0.0.0/4
の範囲内に完全に収まる必要があります。(オプション)ワークスペースで Google Private Services Connect(PSC)を有効にすると、プライベート接続でワークスペースを保護し、データ流出のリスクを軽減できます。 これを構成するには、プライベート アクセス設定オブジェクトを作成し、
private_access_settings_id
引数でその ID を参照する必要があります。 PSC 構成を追加する前に、Databricks では、要件とコンテキストについて、ワークスペースのプライベート サービス接続を有効にする記事を読むことを強くお勧めします。(オプション) 顧客管理の暗号化キーを追加して、特定の種類のデータへのアクセスを制御できます。 暗号化用の顧客管理キーを参照してください。 ワークスペースでキーを構成するには、暗号化キー構成オブジェクトを作成して、それを 引数
storage_customer_managed_key_id
(ワークスペース ストレージの場合) またはmanaged_services_customer_managed_key_id
(マネージド サービスの場合) で ID で参照できるようにする必要があります。 暗号化の要件とコンテキストについては、「顧客管理キーの構成」を参照してください。
ワークスペースが正常に作成されたことを確認します。 ワークスペースのリストで、ワークスペースの横にある[開く]をクリックします。 ワークスペースのステータスを表示し、ワークスペースをテストするには、 「ワークスペースのステータスの表示」を参照してください。
ワークスペースの GCS バケットを保護します。 プロジェクト内のワークスペースの GCS バケットを保護するをご覧ください。
ワークスペースを作成すると、 Databricks on Google Cloud 、Google Cloud プロジェクトに 2 つのGoogle Cloud Storage ( GCS ) バケットが作成されます。 DatabricksGCS外部からアクセスできないようにこれらのDatabricks on Google Cloud バケットを保護することを強くおすすめします。
ワークスペースの作成中に、 Databricks 、プロジェクトで必要な Google APIsまだ有効になっていない場合にそれらを有効にします。 ワークスペースのプロジェクトで Google APIs有効にするを参照してください。