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 個人用アクセス トークン認証
Databricks personal access token authentication では、Databricks personal access token を使用して、Databricks user アカウントや a Databricks サービスプリンシパルなどのターゲット Databricks エンティティを認証します。「Databricks 個人用アクセス トークン認証」も参照してください。
Databricksのアカウントレベルのコマンドは認証にDatabricks個人用アクセストークンを使用しないため、Databricks個人用アクセストークン認証をDatabricksアカウントの認証に使用することはできません。Databricksアカウントを使用して認証するには、代わりに次のいずれかの認証タイプを使用することを検討してください。
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 「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://dbc-a1b2345c-d6e7.cloud.databricks.com
)。 -
プロンプトの Personal Access Token に、ワークスペースのDatabricks個人用アクセストークンを入力します。
Databricks個人用アクセストークンを入力すると、対応する構成プロファイルが
.databrickscfg
ファイルに追加されます。Databricks CLIがデフォルトの場所でこのファイルを見つけられない場合、まずこのファイルを作成し、次にこの構成プロファイルを新しいファイルに追加します。このファイルのデフォルトの場所は、Unix、Linux、macOSの場合は~
(ユーザーホーム)フォルダ、Windowsの場合は%USERPROFILE%
(ユーザーホーム)フォルダです。 -
Databricks CLIコマンド呼び出しの一部として、Databricks CLIの
--profile
または-p
オプションに続けて構成プロファイルの名前を使用できるようになりました(例:databricks clusters list -p <configuration-profile-name>
)。
OAuth マシン間 (M2M) 認証
Databricks の個人用アクセス トークン認証を使用して Databricks で認証する代わりに、OAuth 認証を使用できます。OAuth は、Databricks の個人用アクセス トークンよりも短い有効期限でトークンを提供し、サーバー側のセッションの無効化とスコープを改善します。 OAuth アクセス トークンは 1 時間以内に期限切れになるため、誤ってトークンをソース管理にチェックインするリスクが軽減されます。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」も参照してください。OAuth
OAuth M2M認証を構成して使用するには、次の手順を実行します。
-
OAuth M2M 認証の設定手順を完了します。 「 を使用して リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してくださいDatabricksOAuth
-
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.cloud.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>
を Databricks ワークスペース インスタンスの URL に置き換えます (例:https://dbc-a1b2345c-d6e7.cloud.databricks.com
.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コマンド呼び出しの一部として、Databricks CLIの
--profile
または-p
オプションの後に構成プロファイルの名前を入力します(例:databricks account groups list -p <configuration-profile-name>
または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
フィールド値を使用します。