Account APIを使用してワークスペースを作成する
注:
これらの手順は、2023 年 11 月 8 日より前に作成されたアカウントに適用されます。 Databricks アカウントが 2023 年 11 月 8 日以降に作成された場合は、「 ワークスペース API の作成」を参照してください。
この記事では、Account APIを使用してワークスペースを作成する方法を説明します。AWS Quick Startテンプレート、アカウントコンソール、Terraformを使用してワークスペースを作成することもできます。
マネージドサービスまたは AWS PrivateLink に 顧客管理のキーを 使用する場合は、アカウント API を使用してワークスペースを作成する必要があります。
始める前に
アカウント ID にアクセスできることを確認します。
ワークスペースが以下の機能を有効にするかどうかを判断します。
顧客管理VPC: 任意のタイプの接続に AWS PrivateLink を使用する場合は、独自の Amazon Virtual Public クラウド (VPC) を提供します。
-
コントロール プレーンのマネージド サービス用の顧客管理キー: Databricks が管理するコントロール プレーンでノートブックと機密データを暗号化するための KMS キーを提供します。
ワークスペース ストレージ用の顧客管理キー : ワークスペースのKMSS3 バケット (ワークスペースの DBFS ルート、ジョブの結果など) とオプションでクラスター ノードの EBS ボリュームを暗号化するための キーを提供します。
AWS PrivateLink: AWS PrivateLink は、トラフィックをパブリックネットワークに公開することなく、AWS VPC およびオンプレミスネットワークから AWS のサービスへのプライベート接続を提供します。
ワークスペースの コンピュートプレーン (VPC) に使用するリージョンを決定します。 コントロールプレーン領域は、コンピュート プレーン 領域によって決定される。
ワークスペース コンピュートプレーン VPC は、
ap-northeast-1
ap-northeast-2
、ap-south-1
、ap-southeast-1
、ap-southeast-2
、ca-central-1
、eu-west-1
、eu-west-2
、eu-central-1
、us-east-1
、us-east-2
、us-west-1
、us-west-2
の AWS リージョンに配置できます。ただし、暗号化に顧客管理キーを使用する場合、us-west-1
で VPC を使用することはできません。
アカウントAPIの使い方
アカウント API に対して認証するには、サービスプリンシパル用の Databricks OAuth、ユーザー用の Databricks OAuth、または Databricks アカウント管理者のユーザー名とパスワードを使用できます。 Databricks では、ユーザーまたはサービスプリンシパルに Databricks OAuth を使用することを強くお勧めします。 サービスプリンシパルは、自動化ツール、ジョブ、アプリケーションで使用するために Databricks で作成する ID です。 「OAuth マシン間 (M2M) 認証」を参照してください。
次の例を使用して、Databricks アカウントに対して認証を行います。 サービスプリンシパルの OAuth、ユーザーの OAuth、またはユーザーのユーザー名とパスワード (レガシー) を使用できます。 背景については、以下を参照してください。
サービスプリンシパルのOAuthについては、「OAuthマシン間(M2M)認証」を参照してください。
ユーザーのOAuthについては、「 OAuthユーザーからマシン(U2M)認証」を参照してください。
ユーザーのユーザー名とパスワード (レガシ) については、「 基本認証 (レガシー)」を参照してください。
認証の例については、次の中から選択します。
Databricks CLI バージョン 0.205 以降をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。
ステップを完了して、アカウント内のサービスプリンシパルのOAuth M2M認証を設定します。 OAuthマシン間(M2M)認証を参照してください。
.databrickscfg
ファイルで Databricks 構成プロファイルを特定するか、手動で作成し、関連するhost
、account_id
、client_id
、およびサービスプリンシパルへのclient_secret
マッピングに対してプロファイルのフィールドが正しく設定されます。OAuthマシン間(M2M)認証を参照してください。対象のDatabricks CLIコマンドを実行します。ここで
<profile-name>
は.databrickscfg
ファイルの構成プロファイル名を表します。databricks account <command-name> <subcommand-name> -p <profile-name>
たとえば、アカウント内のすべてのユーザーを一覧表示するには、次のようにします。
databricks account users list -p MY-AWS-ACCOUNT
使用可能なアカウントコマンドのリストを表示するには、コマンド
databricks account -h
を実行します。アカウントコマンドで使用可能なサブコマンドのリストを表示するには、コマンド
databricks account <command-name> -h
を実行します。
Databricks CLI バージョン 0.205 以降をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。
ステップを完了して、アカウント内のユーザーのOAuth U2M認証を構成します。 OAuthユーザーからマシン(U2M)への認証を参照してください。
次のDatabricks CLIコマンドを実行して、ユーザー認証プロセスを開始します。
databricks auth login --host <account-console-url> --account-id <account-id>
例:
databricks auth login --host https://accounts.cloud.databricks.com --account-id 00000000-0000-0000-0000-000000000000
注:
host
フィールドとaccount_id
フィールドが既に設定されている既存の Databricks 構成プロファイルがある場合は、--host <account-console-url> --account-id <account-id>
を--profile <profile-name>
に置き換えることができます。画面の指示に従って、Databricks CLIが関連するDatabricks構成プロファイルをファイルに自動的に作成するようにします。
.databrickscfg
画面の指示に従って、WebブラウザからDatabricksアカウントにサインインします。
対象のDatabricks CLIコマンドを実行します。ここで
<profile-name>
は.databrickscfg
ファイルの構成プロファイル名を表します。databricks account <command-name> <subcommand-name> -p <profile-name>
たとえば、アカウント内のすべてのユーザーを一覧表示するには、次のようにします。
databricks account users list -p ACCOUNT-00000000-0000-0000-0000-000000000000
使用可能なアカウントコマンドのリストを表示するには、コマンド
databricks account -h
を実行します。アカウントコマンドで使用可能なサブコマンドのリストを表示するには、コマンド
databricks account <command-name> -h
を実行します。
Databricks CLI バージョン 0.205 以降をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。
.databrickscfg
ファイルで Databricks 構成プロファイルを特定するか、手動で作成し、関連するhost
、account_id
、username
、および Databricks ユーザー アカウントへのpassword
マッピング用にプロファイルのフィールドが正しく設定されます。「 基本認証 (レガシー)」を参照してください。対象のDatabricks CLIコマンドを実行します。ここで
<profile-name>
は.databrickscfg
ファイルの構成プロファイル名を表します。databricks account <command-name> <subcommand-name> -p <profile-name>
たとえば、アカウント内のすべてのユーザーを一覧表示するには、次のようにします。
databricks account users list -p MY-AWS-ACCOUNT
使用可能なアカウントコマンドのリストを表示するには、コマンド
databricks account -h
を実行します。アカウントコマンドで使用可能なサブコマンドのリストを表示するには、コマンド
databricks account <command-name> -h
を実行します。
ステップ1:クロスアカウント認証を設定する
Databricksは、新しいワークスペースの適切なVPCにクラスターをデプロイできるように、AWSアカウントのクロスアカウントサービスのIAMロールにアクセスする必要があります。
このようなロールがまだ存在しない場合は、「ワークスペースデプロイメント用のIAMロールを作成する 」を参照して、デプロイメントタイプに適したロールとポリシーを作成してください。この手順の後半で、新しいロール((
role_arn
)のARNを指定します。注:
複数のワークスペースでクロスアカウントIAMロールを共有できます。ワークスペースごとに新しいクロスアカウントIAMロールを作成する必要はありません。すでにクロスアカウントIAMロールがある場合は、この手順をスキップできます。
AWS ロールの Databricks 認証情報構成 ID を作成します。 資格情報構成の作成 API (
POST /accounts/<databricks-account-id>/credentials
) を呼び出します。このリクエストはクロスアカウント信頼を確立し、新しいワークスペースを作成するときに使用する参照 ID を返します。注:
複数のワークスペースで資格情報構成IDを共有できます。ワークスペースごとに新しいワークスペースを作成する必要はありません。すでにお持ちの場合は、この手順をスキップできます。
<databricks-account-id>
を Databricks アカウント ID に置き換えます。認証については、「 アカウント API の使用方法」を参照してください。 要求本文で、次の操作を行います。credentials_name
をこれらの認証情報の名前に設定します。名前はアカウント内で一意である必要があります。aws_credentials
をsts_role
プロパティを含むオブジェクトに設定します。このオブジェクトには、作成したロールのAWSロールARNを指定するrole_arn
プロパティを含める必要があります。
応答本文には、新しいワークスペースを作成するために必要なDatabricks認証情報構成IDである
credentials_id
フィールドが含まれます。この値は後の手順でワークスペースを作成するために使用するので、コピーして保存してください。例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/credentials' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "credentials_name": "databricks-workspace-credentials-v1", "aws_credentials": { "sts_role": { "role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role" } } }'
応答例:
{ "credentials_id": "<databricks-credentials-id>", "account_id": "<databricks-account-id>", "aws_credentials": { "sts_role": { "role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role", "external_id": "<databricks-account-id>" } }, "credentials_name": "databricks-workspace-credentials-v1", "creation_time": 1579753556257 }
後で使用するために、応答から
credentials_id
フィールドをコピーします。
ステップ2:root ストレージを構成する
アカウントのrootストレージS3バケットには、クラスターログ、ノートブックの修正箇所、ジョブの結果などのオブジェクトが保存されます。また、rootストレージのS3バケットを使用して、テストに必要なデータのような非本番データを保存することもできます。
注:
root S3バケットは、1つのアカウントで複数のワークスペースと共有できます。ワークスペースごとに新しいバケットを作成する必要はありません。アカウント内の複数のワークスペースでroot S3バケットを共有する場合、root S3バケット上のデータはワークスペースごとに個別のディレクトリに分割されます。すでにバケットと、アカウントAPIによって生成された関連するストレージ構成IDがある場合は、この手順をスキップできます。ただし、レガシーワークスペースのバケットを再利用しないでください。たとえば、E2に移行する場合は、E2環境用に新しいAWSバケットを作成します。
「ワークスペースデプロイメント用のS3バケットを作成する」の手順に従って、root S3バケットを作成します。
ルート S3 バケットを表すストレージ設定レコードを作成します。 ストレージ設定の作成 API (
POST /accounts/<account-id>/storage-configurations
) を呼び出して、ルート S3 バケットを名前で指定します。リクエストは、S3バケットを表すストレージ構成IDを返します。
以下を渡します。
storage_configuration_name
:新しい一意のストレージ構成名。root_bucket_info
:S3バケット名を含むbucket_name
フィールドを含むJSONオブジェクト。
応答本文には、バケットのストレージ構成IDである
storage_configuration_id
プロパティが含まれています。後で使用するためにその値をコピーします。例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/storage-configurations' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "storage_configuration_name": "databricks-workspace-storageconf-v1", "root_bucket_info": { "bucket_name": "my-company-example-bucket" } }'
応答:
{ "storage_configuration_id": "<databricks-storage-config-id>", "account_id": "<databricks-account-id>", "root_bucket_info": { "bucket_name": "my-company-example-bucket" }, "storage_configuration_name": "databricks-workspace-storageconf-v1", "creation_time": 1579754875555 }
ステップ3:PrivateLinkを設定する(オプション)
このステップは、AWS PrivateLinkを使用する場合にのみ必要です。
AWS PrivateLinkは、トラフィックをパブリックネットワークに公開することなく、AWS VPCおよびオンプレミスネットワークからAWSサービスへのプライベート接続を提供します。
Databricks ワークスペースは、次の 2 つの接続タイプの PrivateLink 接続の追加をサポートしています。
ユーザーからワークスペースへ(フロントエンド)
コンピュート・プレーンからコントロール・プレーン(バックエンド)
新しいワークスペースのプライベートリンク接続の場合:
続行する前に、AWS PrivateLinkの記事をよく読み、前提条件を確認してください。
AWS コンソールまたは自動化ツールを使用して、AWS VPC エンドポイントを作成します。 「 ステップ 2: VPC エンドポイントを作成する」を参照してください。
アカウント API を使用して VPC エンドポイントの登録、ネットワーク構成、およびプライベートアクセス設定オブジェクトを作成する手順を確認します。 「アカウント API を使用する」を参照してください。
この記事の次の手順に進みます。何らかのタイプのPrivateLink接続(フロントエンドのみを含む)を実装する場合は、顧客管理VPCを使用する必要があります。
ステップ4:顧客管理VPCを設定する(オプションですが、PrivateLinkを使用する場合は必須)
デフォルトでは、DatabricksはワークスペースごとにAWSアカウントにVPCを作成します。Databricksは、ワークスペース内でクラスターを実行するためにこれを使用します。オプションで、顧客管理VPC機能を使用して、ワークスペースに独自のVPCを使用できます。Databricksは、Databricksの要件に準拠しつつ、組織のエンタープライズクラウド標準に従ってVPCを構成できるよう、独自のVPCを提供することを推奨しています。既存のワークスペースを自分のVPCに移行することはできません。
重要
任意のタイプの接続(フロントエンドのみを含む)にAWS PrivateLinkを有効にする を使用するようにワークスペースを構成するには、ワークスペースが顧客管理VPCを使用する必要があります。
「 顧客管理 VPC の設定」の手順に従って、VPC、サブネット、およびセキュリティグループを設定します。 次の手順では、これらの各オブジェクトの ID をコピーし、Databricks に登録し、新しいネットワークを表すネットワーク ID を取得します。
重要
VPC とサブネットを複数のワークスペースで共有する場合は、VPC とサブネットのサイズを、使用量に応じてスケーリングするのに十分な大きさにしてください。 ワークスペース間でネットワーク構成オブジェクトを再利用することはできません。
ネットワーク構成を Databricks に登録するには、 ネットワーク構成の作成 API (
POST /accounts/<account-id>/networks
) を呼び出します。以下を渡します。
network_name
:新しい一意のネットワーク名。vpc_id
:VPCのID。subnet_ids
:配列で表したサブネットID。security_group_ids
:配列で表したセキュリティグループID。vpc_endpoints
: AWS PrivateLink にのみ使用されます。 バックエンド (コンピュート プレーンからコントロール プレーン) の PrivateLink 接続をデプロイする場合に必須で、この場合、このオブジェクトには、登録済みの VPC エンドポイント登録を参照する 2 つのプロパティが必要です。rest_api
を、ワークスペース VPC エンドポイント登録の Databricks ID のみを含む配列に設定します。dataplane_relay
を、セキュリティで保護されたクラスター接続 VPC エンドポイント登録の Databricks ID のみを含む配列に設定します。これらのオブジェクトの詳細については、「 AWS PrivateLink を有効にする」を参照してください。 これらの ID は、「 ステップ 3a: VPC エンドポイント (フロントエンド、バックエンド、またはその両方) を登録する」で説明されているように、VPC エンドポイントの登録時に返されました。rest_api
:このJSON配列には、登録したバックエンドREST API VPCエンドポイントのDatabricks固有のIDを指定します。これは、AWS VPCエンドポイントID はなく、Databricks VPCエンドポイント登録IDです。重要
本リリースでは、ワークスペースのVPCエンドポイントサービスにフロントエンド接続またはバックエンドREST API接続用のVPCエンドポイントを登録すると、DatabricksはそのVPCエンドポイントからAWSリージョン内のDatabricksアカウント内のすべてのPrivateLink対応ワークスペースへのフロントエンド(WebアプリケーションおよびREST API)アクセスを有効にします。
dataplane_relay
:要素(登録したSCC VPCエンドポイントのDatabricks固有のID)を1つだけ含むJSON配列を設定します。これは、AWS VPCエンドポイントID はなく、Databricks VPCエンドポイント登録IDです。
PrivateLink バックエンド接続のネットワーク構成の詳細については、PrivateLink の記事の「 アカウント API を使用して新しいネットワーク構成を作成する 」を参照してください。
例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "network_name": "mycompany-vpc-example", "vpc_id": "<aws-vpc-id>", "subnet_ids": [ "<aws-subnet-id-1>", "<aws-subnet-id-2>" ], "security_group_ids": [ "<aws-security-group-id>" ], "vpc_endpoints": { "dataplane_relay": [ "<databricks-vpce-id-for-scc>" ], "rest_api": [ "<databricks-vpce-id-for-rest-apis>" ] } }'
後で使用するために、応答本文から
network_id
をコピーします。これは、新しいワークスペースのネットワークを表すネットワークIDです。応答例:
{ "network_id": "<databricks-network-id>", "account_id": "<databricks-account-id>", "vpc_id": "<aws-vpc-id>", "subnet_ids": [ "<aws-subnet-id-1>", "<aws-subnet-id-2>" ], "security_group_ids": [ "<aws-security-group-id>" ], "vpc_status": "UNATTACHED", "network_name": "mycompany-vpc-example", "creation_time": 1579767389544, "vpc_endpoints": { "dataplane_relay": [ "<databricks-vpce-id-for-scc>" ], "rest_api": [ "<databricks-vpce-id-for-rest-apis>" ] } }
ステップ5:カスタマーマネージドキーを構成する(オプション)
重要
この機能を使用するには、アカウントがEnterprise価格プランである必要があります。
ワークスペース コンピュートプレーン VPC は、
ap-northeast-1
ap-northeast-2
、ap-south-1
、ap-southeast-1
、ap-southeast-2
、ca-central-1
、eu-west-1
、eu-west-2
、eu-central-1
、us-east-1
、us-east-2
、us-west-1
、us-west-2
の AWS リージョンに配置できます。ただし、暗号化に顧客管理キーを使用する場合、us-west-1
で VPC を使用することはできません。
顧客管理の暗号化キーには 2 つの使用例があります。
ノートブックと機密データを含むマネージド サービスをコントロール プレーンで暗号化します。
ワークスペースストレージを暗号化します。これには、ワークスペースのルート S3 バケットと、オプションでクラスター EBS ボリュームが含まれます。
これらのどちらも設定しないことも、一方を設定することも、両方を設定することもできます。両方のユースケースで暗号化を実装することを選択した場合、オプションでキーを共有したり、オプションでこれらのユースケースで同じ設定オブジェクトを共有したりすることもできます。
どちらの使用例でも、ワークスペースの作成時に構成することも、実行中のワークスペースにキーを追加することもできます。 マネージドサービスの顧客管理キーの場合は、後でキーをローテーション (更新) できます。 ストレージ用の顧客管理キーの場合、後でキーをローテーションすることはできません。
顧客管理キーまたはそのキー設定オブジェクトは、ワークスペース間で共有できます。新しいワークスペースを作成するとき、キー設定はuse_cases
フィールドに両方の列挙値を含めるように設定することで、両方の暗号化使用例を表すことができます。
注:
すでにノートブック暗号化を使用している既存のワークスペースにワークスペース ストレージ キーを追加するには、ワークスペース ストレージ用の新しいキー構成オブジェクトを作成する必要があります。 「顧客管理キーの暗号化の構成」を参照してください。
1つの暗号化使用例または両方の暗号化使用例を同じキーで実装するには、次の手順を1回だけ実行します。異なるキーで両方の暗号化使用例に暗号化を追加するには、各ユースケースについて1回ずつ、この手順を2回実行します。
AWS KMS キーを作成します。 次のセクションのいずれかの手順に従ってください。ポリシー内の人間が判読できる説明フィールド (
sid
) のみが異なり、ユースケースを特定します。 「ステップ 1: AWS KMS でキーを作成または選択する」を参照してください。 両方のユースケースでキーと設定を共有するには、それに応じてsid
フィールドを更新します。KMS キーを Databricks に登録するには、 カスタマー マネージド キー構成の作成 API (
POST /accounts/<account-id>/customer-managed-keys
) を呼び出します。次のパラメーターを渡します。
use_cases
— キーを使用する使用例を指定する配列。次のいずれかまたは両方を指定します。MANAGED_SERVICES
: このキーは、コントロール プレーンのマネージド サービスを暗号化します。これには、コントロール プレーンのノートブックと機密データが含まれます。STORAGE
: このキーは、ワークスペースの DBFS ルートおよびクラスター EBS ボリュームを含むワークスペース ストレージを暗号化します。
aws_key_info
:次のプロパティを持つJSONオブジェクト。key_arn
: AWS KMSキーARN。DatabricksはキーARNからAWSリージョンを推測することに注意してください。key_alias
:(オプション)AWS KMSキーのエイリアス。reuse_key_for_cluster_volumes
(オプション)use_cases
アレイにSTORAGE
が含まれている場合にのみ使用され、クラスターEBSボリュームの暗号化にもキーを使用するかどうかを指定します。デフォルト値はtrue
で、Databricksもクラスターボリュームのキーを使用することを意味します。これをfalse
に設定すると、Databricksは指定されたキーでEBSボリュームを暗号化しません。その場合、DatabricksのEBSボリュームはデフォルトのAWS SSE暗号化で暗号化されるか、AWSのアカウントレベルのEBS暗号化をデフォルトで有効にしている場合は、AWSがアカウントレベルの EBS 暗号化を実行します。reuse_key_for_cluster_volumes
がtrue
で、キーの権限を取り消すと、実行中のクラスターには影響しませんが、新規クラスターと再起動されたクラスターには影響することに注意してください。
リクエストの例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/customer-managed-keys' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "use_cases": ["MANAGED_SERVICES", "STORAGE"], "aws_key_info": { "key_arn": "arn:aws:kms:us-west-2:<aws-account-id>:key/<key-id>", "key_alias": "my-example-key", "reuse_key_for_cluster_volumes": true } }'
応答例:
{ "use_cases": ["MANAGED_SERVICES", "STORAGE"], "customer_managed_key_id": "<aws-kms-key-id>", "creation_time": 1586447506984, "account_id": "<databricks-account-id>", "aws_key_info": { "key_arn": "arn:aws:kms:us-west-2:<aws-account-id>:key/<key-id>", "key_alias": "my-example-key", "reuse_key_for_cluster_volumes": true, "key_region": "us-west-2" } }
応答JSON から、
customer_managed_key_id
をコピーします。次のステップでそのIDを使用して、このオブジェクトが表す暗号化使用例に応じて、ワークスペース構成オブジェクトのプロパティmanaged_services_customer_managed_key_id
、storage_customer_managed_key_id
、またはその両方を設定します。
ステップ6:ワークスペースを作成する
新しいワークスペースを作成するには、 ワークスペース作成 API (POST /accounts/<account-id>/workspaces
) を呼び出します。
次のパラメーターを渡します。これらのパラメーターは、前の手順でコピーした値です。
aws_region
: ワークスペースのコンピュートプレーンの AWS リージョン。workspace_name
:人間にとってわかりやすいワークスペースの名前。これは、Databricks UIでユーザーに表示されるワークスペース名です。deployment_name
: (推奨ですが省略可能) ワークスペースの一意のデプロイ名。 詳細については、 デプロイ名に関する注意事項を参照してください。credentials_id
: クロスアカウントロールの資格情報を表す資格情報ID。これは、資格情報構成オブジェクトのIDです。storage_configuration_id
:お客様のroot S3バケットを表すストレージ構成ID。これは、ストレージ構成オブジェクトのIDです。network_id
:(オプション)顧客管理VPCにのみ使用されます。これはネットワーク設定オブジェクトのIDです。managed_services_customer_managed_key_id
: (オプション) ノートブックや秘密データなどのマネージド サービスをコントロール プレーンで暗号化するためにのみ使用されます。 マネージドサービスの顧客管理キーを参照してください。 これは、ワークスペース ストレージのキー構成 ID であり、キー構成オブジェクトのcustomer_managed_key_id
フィールドです。 この暗号化の使用例をサポートする場合は、ワークスペースの作成時に構成する必要があります。storage_customer_managed_key_id
: (オプション) ワークスペースストレージを暗号化するためにのみ使用されます。 これは、ワークスペース ストレージのキー構成 ID であり、キー構成オブジェクトのcustomer_managed_key_id
フィールドです。 この暗号化の使用例をサポートする場合は、ワークスペースの作成時に構成できますが、後で実行中のワークスペースに追加することもできます。private_access_settings_id
: (オプション) AWS PrivateLink にのみ使用されます。 これは、このワークスペース用に作成したプライベート アクセス設定オブジェクトの ID です。 PrivateLink の記事の「 アカウント API を使用してプライベート アクセス設定の構成を作成する 」を参照してください。 これは、すべての接続タイプ(フロントエンド、バックエンド、またはその両方)のPrivateLinkアクセスの必須フィールドです。
custom_tags
:(オプション)リソースを整理するためのメタデータとして機能するキーと値のペアです。タグは、リソースの管理、識別、整理、検索、フィルタリングに加だけでなく、コストや属性の使用状況のモニタリングにも役立ちます。
デプロイメント名に関する注意事項:
deployment_name
の値は慎重に選択してください。デプロイメント名は、ワークスペースのサブドメインの一部を定義します。ウェブアプリケーションとREST APIのワークスペースURLは<deployment-name>.cloud.databricks.com
です。たとえば、デプロイメント名がABCSales
の場合、ワークスペースURLはhttps://abcsales.cloud.databricks.com
になります。このプロパティは、文字a ~zおよび0~9をサポートします。ハイフンも使用できますが、最初または最後の文字として使用することはできません。アカウントには、デプロイ名のプレフィックスを付けることができます。 Databricks アカウント チームに連絡して、アカウントにアカウント デプロイ名のプレフィックスを追加します。 ワークスペースの作成時にアカウントに空でないデプロイ名のプレフィックスがある場合、ワークスペースのデプロイ名は、アカウント プレフィックスとハイフンで始まるように更新されます。 たとえば、アカウントのデプロイプレフィックスが
acme
で、ワークスペースのデプロイ名がworkspace-1
の場合、[deployment_name
] フィールドはacme-workspace-1
になります。 この例では、ワークスペースの URL はacme-workspace-1.cloud.databricks.com
です。このアカウントプレフィックスの変更後、新しい値は、このワークスペースの
deployment_name
フィールドのJSON応答で返されるものです。アカウントに空ではないデプロイメント名プレフィックスがあり、
deployment_name
を予約キーワードEMPTY
に設定した場合、deployment_name
はアカウントプレフィックスのみです。たとえば、アカウントのデプロイメントプレフィックスがacme
で、ワークスペースのデプロイメント名がEMPTY
の場合、deployment_name
はacme
のみになり、ワークスペースのURLはacme.cloud.databricks.com
になります。アカウントにデプロイメント名プレフィックスがまだない場合、特別なデプロイメント名の値EMPTY
は無効です。
JSON応答には、プロパティworkspace_id
が含まれます。後で使用するために、この値をコピーします。
例:
curl -X POST
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
-d '{
"workspace_name": "my-company-example",
"deployment_name": "my-company-example",
"aws_region": "us-west-2",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"private_access_settings_id": "<private-access-settings-id>",
"custom_tags": {
"Organization": "Marketing",
"Env": "Prod"
}
}'
応答例:
{
"workspace_id": 123456789,
"workspace_name": "my-company-example",
"aws_region": "us-west-2",
"creation_time": 1579768294842,
"deployment_name": "my-company-example",
"workspace_status": "PROVISIONING",
"account_id": "<databricks-account-id>",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"workspace_status_message": "Workspace resources are being set up.",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"private_access_settings_id": "<private-access-settings-id>",
"pricing_tier": "ENTERPRISE",
"custom_tags": {
"Organization": "Marketing",
"Env": "Prod"
}
}
{
"workspace_id": 123456789,
"workspace_name": "my-company-example",
"aws_region": "us-west-2",
"creation_time": 1579768294842,
"deployment_name": "my-company-example",
"workspace_status": "PROVISIONING",
"account_id": "<databricks-account-id>",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"workspace_status_message": "Workspace resources are being set up.",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"private_access_settings_id": "<private-access-settings-id>",
"pricing_tier": "ENTERPRISE"
}
顧客管理 VPC を指定し、ワークスペース作成ステップでネットワーク関連のエラーが返された場合は、 ネットワーク設定の取得 API (エンドポイント /networks/<network-id>
) を呼び出してネットワーク設定を検証できます。 「 ワークスペース作成エラーのトラブルシューティング」を参照してください。
ステップ 7: 新しいワークスペース を確認する
ワークスペースの状態を確認するには、 ワークスペースの取得 API (GET /accounts/<account-id>/workspaces/<workspace-id>
) を呼び出します。
ワークスペースの作成時に返されたJSON応答のworkspace_id
値を使用します。
応答では、可能なworkspace_status
値は次のとおりです。
NOT_PROVISIONED
:まだプロビジョニングされていません。PROVISIONING
:まだプロビジョニング中です。数分待ってから、このAPIリクエストを繰り返します。RUNNING
:デプロイメントが正常に完了し、現在実行されています。FAILED
:デプロイメントに失敗しました。BANNED
:禁止されています。CANCELLING
:キャンセル処理中。
失敗した状態値を処理する方法については、「 ワークスペース作成エラーのトラブルシューティング 」を参照してください。
例:
curl -X GET
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
--header 'Authorization: Bearer $OAUTH_TOKEN'
応答:
{
"workspace_id": 123456789,
"workspace_name": "my-company-example",
"aws_region": "us-west-2",
"creation_time": 1579768294842,
"deployment_name": "my-company-example",
"workspace_status": "RUNNING",
"account_id": "<databricks-account-id>",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"workspace_status_message": "Workspace is running.",
"network_id": "339f16b9-b8a3-4d50-9d1b-7e29e49448c3",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"pricing_tier": "ENTERPRISE"
}
この例では、ワークスペースのステータス(workspace_status
)がRUNNING
に設定されているため、成功しました。PROVISIONING
の場合は、成功するまでこのAPIリクエストを繰り返します。
価格は、デフォルトでアカウントに関連付けられているプランになります。AWSプラットフォーム層を参照してください。
新しいワークスペースのステータスがRUNNING
になったら、新しいワークスペースをテストします。
新しいワークスペースでのユーザーインターフェースログイン - URL
https://<deployment-name>.cloud.databricks.com
でWebアプリケーションにログインできることを確認します。たとえば、ワークスペースの作成時に指定したデプロイメント名がABCSales
の場合、ワークスペースのURLはhttps://abcsales.cloud.databricks.com
です。アカウントのユーザー名とパスワードを使用してください。新しいワークスペースでのREST APIログイン — REST APIにアクセスできることを確認します。次の例では、ワークスペースユーザーAPIを呼び出してユーザーのリストを取得します。
curl -u <user-name> -X GET 'https://<deployment-name>.cloud.databricks.com/api/2.0/scim/v2/Users' \ --header 'Authorization: Bearer $OAUTH_TOKEN'
その他の認証オプションなど、Databricks REST APIsの使用の詳細については、 ワークスペース API に関するページを参照してください。
ステップ8:デプロイメント後のPrivateLink構成(オプション)
このステップは、AWS PrivateLinkを構成する場合にのみ必要です。
ワークスペースの作成後:
フロントエンドの PrivateLink 接続を実装する場合は、「ステップ 4: ユーザー要求を Web アプリケーションにリダイレクトするように内部 DNS を構成する (フロントエンド用)」の説明に従って、関連する DNS 構成の変更を実装します。
必要に応じて、「 ステップ 5: 他の AWS サービスの VPC エンドポイントを追加する」の説明に従って、他の VPC エンドポイントを作成します。
ステップ9:その他のオプションのデプロイメント後の構成
新しいワークスペースに対して、次のオプションの構成手順を検討することをお勧めします。
IPアクセスリストの有効化
Web アプリケーション、REST APIs、JDBC/ODBC エンドポイント、および DBConnect に接続できる IP アドレスを構成します。 許可リストとブロックリストを IP アドレスまたは範囲として指定できます。 「ワークスペースの IP アクセス リストの構成」を参照してください。
監査ログシステムテーブルを有効にする
Databricks では、監査ログ システム テーブルを有効にして、Databricks ユーザーが実行したアクティビティと発生した使用状況を監視することを強くお勧めします。 ワークスペースで Unity Catalog が有効になっている必要があります。 手順については、「 システム テーブルを使用した使用状況の監視 」を参照してください。
ワークスペース作成エラーのトラブルシューティング
次のセクションでは、一般的なワークスペース作成エラーの解決策を説明します。
アドレスの最大数に達しました
Databricksがお客様に代わってVPCを作成する際には、少なくとも1つの未使用のElastic IPが必要です。それ以外の場合、VPCは作成されず、次のエラーが発生します。
The maximum number of addresses has been reached.
Elastic IPの数を増やして、う一度お試しください。
ネットワークを検証する
ワークスペースの作成またはステータスチェックステップがネットワーク関連のエラーを示している場合は、 ネットワーク構成の取得 API を呼び出して、ネットワーク設定が正しいことを確認します。 この API エンドポイントの形式は次のとおりです。
/accounts/<databricks-account-id>/networks/<databricks-network-id>
例:
curl -X GET
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks/<databricks-network-id>' \
--header 'Authorization: Bearer $OAUTH_TOKEN'
応答で、warning_messages
error_messages
フィールドを表示します。両方の配列が空の場合、警告やエラーはありません。
そうでない場合は、警告とエラーのJSONオブジェクトを注意深く確認してください。
警告の場合、
warning_type
の列挙は、問題がサブネットかセキュリティグループのどちらかにあったことを示します。warning_message
には、追加の詳細が記載されています。(NATゲートウェイではなく)ファイアウォールまたはNATインスタンスがある場合、ネットワーク検証によって常に警告が発行されることに注意してください。エラーの場合、
error_type
の列挙は認証情報、VPC、サブネット、セキュリティグループ、ネットワークACLのいずれかに問題があったことを示します。error_message
には、追加の詳細が記載されています。
インフラの問題を修正する
ネットワーク構成の取得 API API 要求に対する応答のエラーに応じて、次のことを確認します。
セキュリティグループは、顧客管理VPC要件に準拠しています。
クロスアカウントIAMポリシーには、必要な権限が含まれています。デプロイメントタイプに使用するポリシーについては、「ワークスペースデプロイメント用のIAMロールを作成する」を参照してください。
失敗したワークスペースを更新する
失敗したワークスペースを更新するには、更新ワークスペースを呼び出し、 API を再デプロイ します (PATCH /accounts/<account-id>/workspaces/<workspace-id>
)。
ワークスペースの更新API は、ワークスペースの作成時に失敗したワークスペース構成の更新をサポートし、資格情報、ストレージ、ネットワーク(顧客管理VPCの場合)、およびキー(ノートブックの暗号化の場合)の構成を変更します。
注:
同じAPIを使用して、実行中の(正常にデプロイされた)ワークスペースを更新できますが、変更できるのは資格情報とネットワーク設定のみです。
これらのワークスペース構成フィールドを渡して変更できます:credentials_id
、storage_configuration_id
、network_id
、managed_services_customer_managed_key_id
、およびstorage_customer_managed_key_id
workspace_status
値が PROVISIONING
を返す場合は、 ワークスペースの取得 API を使用して RUNNING
状態の確認を続けます。
例:
curl -X PATCH 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
-d '{
"aws_region": "us-west-2",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>"
}'
応答:
{
"workspace_id": 123456789,
"workspace_name": "my-company-example",
"aws_region": "us-west-2",
"creation_time": 1579768294842,
"deployment_name": "my-company-example",
"workspace_status": "PROVISIONING",
"account_id": "<databricks-account-id>",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"workspace_status_message": "Workspace resources are being set up.",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"pricing_tier": "ENTERPRISE"
}
ワークスペースの更新に失敗した場合に、ネットワークとワークスペースを再作成する
ワークスペースの更新APIが機能しない場合は、以下の順序でネットワーク(独自のVPCを提供した場合)と失敗したワークスペースを削除して再作成する必要があります。
ワークスペースの削除 API を使用してワークスペースを削除します (
DELETE /accounts/<account-id>/workspaces/<workspace-id>
)。例:
curl -X DELETE 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \ --header 'Authorization: Bearer $OAUTH_TOKEN'
独自の VPC を指定した場合は、ネットワーク構成の削除 API (
DELETE /accounts/<account-id>/networks/<network-id>
) を使用して Databricks ネットワーク構成を削除します。例:
curl -X DELETE 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks/<databricks-network-id>' --header 'Authorization: Bearer $OAUTH_TOKEN'
vpc_id
、subnet_ids
、およびsecurity_group_ids
の正しい値を使用してネットワークを再作成します 。credentials_id
、storage_configuration_id
、network_id
、managed_services_customer_managed_key_id
、およびstorage_customer_managed_key_id
の正しい値を使用してワークスペースを再作成します 。workspace_status
値PROVISIONING
を取得した場合は、 ワークスペースの取得 API を使用してRUNNING
状態の確認を続けます。