Databricks CLI の認証
この情報は、Databricks CLI バージョン 0.205 以降に適用されます。 Databricks CLI は パブリック プレビュー段階です。
Databricks CLI 使用には、 Databricks ライセンス および Databricks プライバシー通知(使用データのプロビジョニングを含む)が適用されます。
この記事では、Databricks CLI と Databricks アカウントおよびワークスペースとの間の認証を設定するために使用できるオプションについて説明します。Databricks CLI が既にインストールされていることを前提としています。「Databricks CLI のインストールまたは更新」を参照してください。
Databricks CLI コマンドを実行する前に、実行する CLI コマンドの種類に応じて、Databricks CLI と Databricks アカウント、ワークスペース、またはこれらの組み合わせとの間の 認証 を設定する必要があります。
Databricks アカウントまたはワークスペース内で Databricks 自動化コマンドを実行するには、実行時に関連するリソースに対して Databricks CLI を認証する必要があります。 Databricks ワークスペース レベルの コマンド、Databricks アカウント レベルの コマンド、またはその両方を呼び出すかどうかに応じて、Databricks ワークスペース、アカウント、またはその両方に対して認証を行う必要があります。 Databricksワークスペースレベルとアカウントレベルの CLI コマンド グループの一覧については、コマンド databricks -h
を実行します。Databricks CLI コマンドでカバーされる Databricks ワークスペース レベルおよびアカウント レベルの REST API 操作の一覧については、「 Databricks REST API」を参照してください。
以下のセクションでは、Databricks CLIとDatabricksの間で認証を設定する方法について説明します。
- Databricks個人用アクセストークン認証
- OAuthマシン間 (M2M) 認証
- OAuthユーザー対マシン (U2M) 認証
- Google Cloudの認証情報認証
- Google Cloud ID認証
- 認証評価順序
Databricks 個人用アクセス トークン認証
Databricksパーソナルアクセストークン 認証では、Databricksパーソナルアクセストークンを使用して、Databricks user アカウントや Databricks サービスプリンシパルなどのターゲット Databricks エンティティを認証します。Databricks 個人用アクセス トークン認証も参照してください。
Databricksのアカウントレベルのコマンドは認証にDatabricks個人用アクセストークンを使用しないため、Databricks個人用アクセストークン認証をDatabricksアカウントの認証に使用することはできません。Databricksアカウントを使用して認証するには、代わりに次のいずれかの認証タイプを使用することを検討してください。
個人用アクセス トークンを作成するには、ワークスペース ユーザー向けのDatabricks個人用アクセス トークンの手順に従います。
次の手順では、DEFAULT
という名前のDatabricks構成プロファイルを作成します。使用するDEFAULT
構成プロファイルがすでにある場合は、この手順をスキップしてください。それ以外の場合、この手順により既存のDEFAULT
構成プロファイルが上書きされます。既存の構成プロファイルの名前とホストを表示するには、コマンドdatabricks auth profiles
を実行します。
DEFAULT
以外の名前で構成プロファイルを作成するには、次の databricks configure
コマンドの末尾に --profile <configuration-profile-name>
または -p <configuration-profile-name>
を追加し、<configuration-profile-name>
を新しい構成プロファイルの名前に置き換えます。
Databricks個人用アクセストークン認証を構成して使用するには、次の手順を実行します。
-
Databricks CLIを使用して、次のコマンドを実行します。
Bashdatabricks configure
-
プロンプト Databricks Host には、Databricks ワークスペース インスタンスの URL を入力します (例:
https://1234567890123456.7.gcp.databricks.com
)。 -
プロンプトの Personal Access Token に、ワークスペースのDatabricks個人用アクセストークンを入力します。
Databricks個人用アクセストークンを入力すると、対応する構成プロファイルが
.databrickscfg
ファイルに追加されます。Databricks CLIがデフォルトの場所でこのファイルを見つけられない場合、まずこのファイルを作成し、次にこの構成プロファイルを新しいファイルに追加します。このファイルのデフォルトの場所は、Unix、Linux、macOSの場合は~
(ユーザーホーム)フォルダ、Windowsの場合は%USERPROFILE%
(ユーザーホーム)フォルダです。 -
Databricks CLI の
--profile
または-p
オプションの後に構成プロファイルの名前を Databricks CLI コマンド呼び出しの一部として使用できるようになりました (例:databricks clusters list -p <configuration-profile-name>
.
OAuth マシン間 (M2M) 認証
Databricks の個人用アクセス トークン認証を使用して Databricks で認証する代わりに、OAuth 認証を使用できます。OAuth は、Databricks の個人用アクセス トークンよりも短い有効期限でトークンを提供し、サーバー側のセッションの無効化とスコープを改善します。 OAuth アクセス トークンは 1 時間以内に期限切れになるため、誤ってトークンをソース管理にチェックインするリスクが軽減されます。 OAuthを使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 するも参照してください。
OAuth M2M認証を構成して使用するには、次の手順を実行します。
-
OAuth M2M 認証の設定手順を完了します。 OAuth を使用してDatabricksリソースへの無人アクセスをサービスプリンシパルで承認 するを参照してください。
-
Databricks 構成プロファイル を作成または識別し、
.databrickscfg
ファイルに次のフィールドを含めます。 プロファイルを作成する場合は、プレースホルダを適切な値に置き換えます。アカウントレベルのコマンドの場合は、
.databrickscfg
ファイルで次の値を設定します。[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
client_id = <service-principal-client-id>
client_secret = <service-principal-oauth-secret>ワークスペース レベルのコマンドの場合は、
.databrickscfg
ファイルに次の値を設定します。[<some-unique-configuration-profile-name>]
host = <workspace-url>
client_id = <service-principal-client-id>
client_secret = <service-principal-oauth-secret>
.databrickscfg
ファイルのデフォルトの場所は、ユーザーのホームディレクトリです。これは Linux と macOS では ~
、Windows では %USERPROFILE%
です。
- Databricks CLI の
--profile
または-p
オプションの後に、Databricks CLI コマンド呼び出しの一部として構成プロファイルの名前 (databricks account groups list -p <configuration-profile-name>
やdatabricks clusters list -p <configuration-profile-name>
など) を使用します。
構成プロファイル名を手動で入力する代わりに、--profile
または -p
の後に Tab
を押すと、選択可能な既存の構成プロファイルのリストが表示されます。
OAuth ユーザー間 (U2M) 認証
トークン認証を使用して Databricks で認証する代わりに、OAuth 認証を使用できます。OAuth は、Databricks の個人用アクセス トークンよりも短い有効期限でトークンを提供し、サーバー側のセッションの無効化とスコープを改善します。 OAuth アクセス トークンは 1 時間以内に期限切れになるため、誤ってトークンをソース管理にチェックインするリスクが軽減されます。 OAuth を使用してユーザー アカウントで Databricks リソースへの対話型アクセスを承認するも参照してください。
OAuth U2M認証を構成して使用するには、次の手順を実行します。
-
Databricksのアカウントレベルのコマンドを呼び出す前に、以下のコマンドを実行してOAuthトークンの管理をローカルで開始する必要があります。このコマンドは、コマンドを実行するアカウントごとに個別に実行する必要があります。アカウントレベルの操作を呼び出したくない場合は、ステップ5に進んでください。
以下のコマンドで、これらのプレースホルダーを置き換えます。
<account-console-url>
をDatabricks https://accounts.gcp.databricks.comに置き換えます。<account-id>
を Databricks アカウント ID に置き換えます。アカウント ID を確認するを参照してください。
Bashdatabricks auth login --host <account-console-url> --account-id <account-id>
-
Databricks CLI では、アカウント コンソールの URL とアカウント ID を Databricks 構成プロファイルとしてローカルに保存するように求められます。
Enter
キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、このアカウント コンソール URL とアカウント ID で上書きされます。既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトで、コマンドを実行します
databricks auth profiles
。特定のプロファイルの既存の設定を表示するには、databricks auth env --profile <profile-name>
コマンドを実行します。 -
Webブラウザで、画面上の指示に従ってDatabricksアカウントにログインします。
-
現在のOAuthトークンの値と今後の有効期限のタイムスタンプを表示するには、コマンド
databricks auth token --host <account-console-url> --account-id <account-id>
を実行します。 -
Databricksのワークスペースレベルのコマンドを呼び出す前に、次のコマンドを実行してOAuthトークンの管理をローカルで開始する必要があります。このコマンドは、コマンドを実行するワークスペースごとに個別に実行する必要があります。
次のコマンドで、
<workspace-url>
をhttps://1234567890123456.7.gcp.databricks.com
のような Databricks ワークスペース インスタンスの URL に置き換えます。Bashdatabricks auth login --host <workspace-url>
-
Databricks CLI では、ワークスペース URL を Databricks 構成プロファイルとしてローカルに保存するように求められます。
Enter
キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、このワークスペース URL で上書きされます。既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトで、コマンドを実行します
databricks auth profiles
。特定のプロファイルの既存の設定を表示するには、databricks auth env --profile <profile-name>
コマンドを実行します。 -
Webブラウザで、画面の指示に従ってDatabricksワークスペースにログインします。
-
現在のOAuthトークンの値と今後の有効期限のタイムスタンプを表示するには、コマンド
databricks auth token --host <workspace-url>
を実行します。 -
Databricks CLIの [
--profile
] または [-p
] オプションに続けて、Databricks CLI コマンド呼び出しの一部として設定プロファイルの名前 (databricks account groups list -p <configuration-profile-name>
やdatabricks clusters list -p <configuration-profile-name>
など) を使用します。
構成プロファイル名を手動で入力する代わりに、--profile
または-p
の後にTab
を押すと、選択可能な既存の構成プロファイルのリストが表示されます。
Google Cloud の認証情報認証
Google Cloud 認証情報 認証 Google Cloud サービス アカウントの認証情報を使用して、対象の Google Cloud サービス アカウントを認証します。 Google Cloud 認証情報認証も参照してください。
Google Cloud 資格情報認証を構成するには、 Google Cloud ID 認証 がローカルにインストールされている必要があります。 また、次の操作も行う必要があります。
-
Databricks 構成プロファイル を作成または識別し、
.databrickscfg
ファイルに次のフィールドを含めます。 プロファイルを作成する場合は、プレースホルダを適切な値に置き換えます。アカウントレベルのコマンドの場合は、
.databrickscfg
ファイルで次の値を設定します。[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
google_credentials = <path-to-google-service-account-credentials-file>ワークスペース レベルのコマンドの場合は、
.databrickscfg
ファイルに次の値を設定します。[<some-unique-configuration-profile-name>]
host = <workspace-url>
google_credentials = <path-to-google-service-account-credentials-file>
.databrickscfg
ファイルのデフォルトの場所は、ユーザーのホームディレクトリです。これは Linux と macOS では ~
、Windows では %USERPROFILE%
です。
- Databricks CLIの [
--profile
] または [-p
] オプションに続けて、Databricks CLI コマンド呼び出しの一部として設定プロファイルの名前 (databricks account groups list -p <configuration-profile-name>
やdatabricks clusters list -p <configuration-profile-name>
など) を使用します。
構成プロファイル名を手動で入力する代わりに、--profile
または-p
の後にTab
を押すと、選択可能な既存の構成プロファイルのリストが表示されます。
Google Cloud ID 認証
Google Cloud ID 認証は、対象の Google Cloud サービス アカウントを認証します。 Google Cloud ID 認証をご覧ください。
Google Cloud ID 認証を設定するには、 Google Cloud ID 認証 をローカルにインストールする必要があります。 また、次の操作も行う必要があります。
-
Databricks 構成プロファイル を作成または識別し、
.databrickscfg
ファイルに次のフィールドを含めます。 プロファイルを作成する場合は、プレースホルダを適切な値に置き換えます。アカウントレベルのコマンドの場合は、
.databrickscfg
ファイルで次の値を設定します。[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
google_service_account = <google-cloud-service-account-email-address>ワークスペース レベルのコマンドの場合は、
.databrickscfg
ファイルに次の値を設定します。[<some-unique-configuration-profile-name>]
host = <workspace-url>
google_service_account = <google-cloud-service-account-email-address>
.databrickscfg
ファイルのデフォルトの場所は、ユーザーのホームディレクトリです。これは Linux と macOS では ~
、Windows では %USERPROFILE%
です。
- Databricks CLI の
--profile
または-p
オプションの後に構成プロファイルの名前を Databricks CLI コマンド呼び出しの一部として使用します (例:databricks clusters list -p <configuration-profile-name>
.
構成プロファイル名を手動で入力する代わりに、--profile
または-p
の後にTab
を押すと、選択可能な既存の構成プロファイルのリストが表示されます。
認証と評価の順序
Databricksワークスペースまたはアカウントを使用して認証を試行するために必要な設定を収集する必要がある場合、Databricks CLIは以下の場所でこれらの設定を常に次の順序で検索します。
- バンドル作業ディレクトリ (バンドルのルートとネストされたパス) から実行されるコマンドの場合、プロジェクトのバンドル設定ファイル内のフィールドの値。(バンドル設定ファイルは、アクセス資格情報の値を直接含めることをサポートしていません。
- この記事および 「統合クライアント認証の環境変数とフィールド」に記載されている 環境変数の値。
.databrickscfg
ファイル内の構成プロファイルフィールドの値(この記事で前述)。
Databricks CLIは必要な設定を見つけると、他の場所での検索を停止します。例えば:
- Databricks CLIがDatabricks個人用アクセストークンの値を必要としていて、
DATABRICKS_TOKEN
環境変数が設定されており、.databrickscfg
ファイルにも複数のパーソナルアクセストークンが含まれているとします。この例では、Databricks CLIはDATABRICKS_TOKEN
環境変数の値を使用し、.databrickscfg
ファイルは検索しません。 databricks bundle deploy -t dev
コマンドには、Databricks 個人用アクセス トークンの値が必要です。DATABRICKS_TOKEN
環境変数が設定されておらず、.databrickscfg
ファイルには複数の個人用アクセス トークンが含まれています。プロジェクトのバンドル設定ファイルには、profile
フィールドを通じてDEV
という名前の構成プロファイルを参照するdev
環境宣言が含まれています。この例では、Databricks CLI は.databrickscfg
ファイルでDEV
という名前のプロファイルを検索し、そのプロファイルのtoken
フィールドの値を使用します。databricks bundle run -t dev hello-job
コマンドには、Databricks 個人用アクセス トークンの値が必要です。DATABRICKS_TOKEN
環境変数が設定されておらず、.databrickscfg
ファイルには複数の個人用アクセス トークンが含まれています。プロジェクトのバンドル設定ファイルには、host
フィールドを通じて特定の Databricks ワークスペース URL を参照するdev
環境宣言が含まれています。この例では、Databricks CLI は、.databrickscfg
ファイル内の構成プロファイルを検索して、一致するワークスペース URL を持つhost
フィールドを含むプロファイルを探します。Databricks CLI は、一致するhost
フィールドを検索し、そのプロファイルのtoken
フィールド値を使用します。