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

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パーソナルアクセストークン 認証では、Databricksパーソナルアクセストークンを使用して、Databricks user アカウントや 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 の --profile または -p オプションの後に構成プロファイルの名前を Databricks CLI コマンド呼び出しの一部として使用できるようになりました (例: databricks clusters list -p <configuration-profile-name>.

OAuth マシン間 (M2M) 認証

Databricks の個人用アクセス トークン認証を使用して Databricks で認証する代わりに、OAuth 認証を使用できます。OAuth は、Databricks の個人用アクセス トークンよりも短い有効期限でトークンを提供し、サーバー側のセッションの無効化とスコープを改善します。 OAuth アクセス トークンは 1 時間以内に期限切れになるため、誤ってトークンをソース管理にチェックインするリスクが軽減されます。 OAuthを使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 するも参照してください。

OAuth M2M認証を構成して使用するには、次の手順を実行します。

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

  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>https://dbc-a1b2345c-d6e7.cloud.databricks.comのような Databricks ワークスペース インスタンスの URL に置き換えます。

    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の [--profile] または [-p] オプションに続けて、Databricks CLI コマンド呼び出しの一部として設定プロファイルの名前 (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 フィールド値を使用します。