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

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個人用アクセストークン認証を構成して使用するには、次の手順を実行します。

  1. Databricks CLIを使用して、次のコマンドを実行します。

    Bash
    databricks configure
  2. プロンプト Databricks Host には、Databricks ワークスペース インスタンスの URL を入力します (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

  3. プロンプトの Personal Access Token に、ワークスペースのDatabricks個人用アクセストークンを入力します。

    Databricks個人用アクセストークンを入力すると、対応する構成プロファイルが.databrickscfgファイルに追加されます。Databricks CLIがデフォルトの場所でこのファイルを見つけられない場合、まずこのファイルを作成し、次にこの構成プロファイルを新しいファイルに追加します。このファイルのデフォルトの場所は、Unix、Linux、macOSの場合は~(ユーザーホーム)フォルダ、Windowsの場合は%USERPROFILE%(ユーザーホーム)フォルダです。

  4. 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認証を構成して使用するには、次の手順を実行します。

  1. OAuth M2M 認証の設定手順を完了します。 「 を使用して リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してくださいDatabricksOAuth

  2. 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% です。

  1. 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認証を構成して使用するには、次の手順を実行します。

  1. Databricksのアカウントレベルのコマンドを呼び出す前に、以下のコマンドを実行してOAuthトークンの管理をローカルで開始する必要があります。このコマンドは、コマンドを実行するアカウントごとに個別に実行する必要があります。アカウントレベルの操作を呼び出したくない場合は、ステップ5に進んでください。

    以下のコマンドで、これらのプレースホルダーを置き換えます。

    Bash
    databricks auth login --host <account-console-url> --account-id <account-id>
  2. Databricks CLI では、アカウント コンソールの URL とアカウント ID を Databricks 構成プロファイルとしてローカルに保存するように求められます。 Enter キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、このアカウント コンソール URL とアカウント ID で上書きされます。

    既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトで、databricks auth profilesコマンドを実行します。特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>を実行します。

  3. Webブラウザで、画面上の指示に従ってDatabricksアカウントにログインします。

  4. 現在のOAuthトークンの値と今後の有効期限のタイムスタンプを表示するには、コマンドdatabricks auth token --host <account-console-url> --account-id <account-id>を実行します。

  5. Databricksのワークスペースレベルのコマンドを呼び出す前に、次のコマンドを実行してOAuthトークンの管理をローカルで開始する必要があります。このコマンドは、コマンドを実行するワークスペースごとに個別に実行する必要があります。

    次のコマンドで、 <workspace-url> を Databricks ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    Bash
    databricks auth login --host <workspace-url>
  6. Databricks CLI では、ワークスペース URL を Databricks 構成プロファイルとしてローカルに保存するように求められます。 Enter キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、このワークスペース URL で上書きされます。

    既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトで、databricks auth profilesコマンドを実行します。特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>を実行します。

  7. Webブラウザで、画面の指示に従ってDatabricksワークスペースにログインします。

  8. 現在のOAuthトークンの値と今後の有効期限のタイムスタンプを表示するには、コマンドdatabricks auth token --host <workspace-url>を実行します。

  9. 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は以下の場所でこれらの設定を常に次の順序で検索します。

  1. バンドルの作業ディレクトリ(バンドルルートとネストされたパス)から実行されるコマンドの場合、プロジェクトのバンドル設定ファイル内のフィールドの値(バンドル設定ファイルでは、アクセス資格情報の値を直接含めることはできません)
  2. この記事と 「クライアント統合認証の環境変数とフィールド」に記載されている環境変数の値。
  3. .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フィールド値を使用します。