Databricks CLI の認証

この情報は、 パブリック プレビュー段階の Databricks CLI バージョン 0.205 以降に適用されます。 Databricks CLI のバージョンを見つけるには、 databricks -vを実行します。

この記事では、Databricks CLI と Databricks アカウントおよびワークスペースの間で認証を設定する方法について説明します。 「Databricks CLI とは」を参照してください。

この記事では、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 ツールと SDK でその構成を使用できます。 この標準の詳細については、「 Databricks クライアント統合認証」を参照してください。

次のセクションでは、Databricks CLI と Databricks の間で認証を設定する方法に関する情報を提供します。

Databricks 個人用アクセストークン認証

Databricks 個人用アクセストークン認証では、Databricks 個人用アクセストークンを使用して、Databricks ユーザー アカウントや Databricks サービスプリンシパルなどのターゲット Databricks エンティティを認証します。「 Databricks 個人用アクセストークン認証」も参照してください。

DatabricksDatabricksDatabricks アカウントDatabricks レベルのコマンドは認証に 個人アクセス トークンを使用 しない ため、Databricks での認証に 個人アクセス トークン認証を使用することはできません。Databricks アカウントで認証するには、代わりに次のいずれかの認証タイプを使用することを検討してください。

個人用アクセストークンを作成するには、次の操作を行います。

  1. Databricks ワークスペースで、上部のバーにある Databricks ユーザー名をクリックし、ドロップダウンから[設定]を選択します。

  2. [ 開発者] をクリックします。

  3. [アクセストークン] の横にある [管理] をクリックします。

  4. [ 新しいトークンの生成] をクリックします。

  5. (任意)今後このトークンを識別するのに役立つコメントを入力し、トークンのデフォルトの有効期間である90日を変更します。有効期間のないトークンを作成するには(非推奨)、[有効期間 (日) ] ボックスを空白のままにしてください。

  6. [生成] をクリックします。

  7. 表示されたトークンを安全な場所にコピーし、[完了] をクリックします。

コピーしたトークンは、必ず安全な場所に保存してください。 コピーしたトークンを他のユーザーと共有しないでください。 コピーしたトークンを紛失した場合、まったく同じトークンを再生成することはできません。 代わりに、この手順を繰り返して新しいトークンを作成する必要があります。 コピーしたトークンを紛失した場合、またはトークンが侵害されたと思われる場合は、アクセストークン ページでトークンの横にあるごみ箱 (取り消し) アイコンをクリックして、ワークスペースからそのトークンをすぐに削除することを強くお勧めします。

ワークスペースでトークンを作成または使用できない場合は、ワークスペース管理者がトークンを無効にしたか、トークンを作成または使用する権限を与えていないことが原因である可能性があります。ワークスペース管理者に問い合わせるか、以下をご覧ください。

Databricks 個人用アクセストークン認証を構成して使用するには、次の手順を実行します。

次の手順では、 DEFAULTという名前の Databricks 構成プロファイルを作成します。 使用する DEFAULT 構成プロファイルがすでにある場合は、この手順をスキップします。 それ以外の場合、この手順は既存の DEFAULT 構成プロファイルを上書きします。 既存の構成プロファイルの名前とホストを表示するには、コマンド databricks auth profilesを実行します。

DEFAULT以外の名前で構成プロファイルを作成するには、次の databricks configure コマンドの末尾に --profile <configuration-profile-name> または -p <configuration-profile-name> を追加し、<configuration-profile-name> を新しい構成プロファイルの名前に置き換えます。

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

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

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

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

  4. Databricks CLI コマンド呼び出しの一部として、Databricks CLI の --profile または -p オプションの後に構成プロファイルの名前を指定して使用できるようになりました (例: databricks clusters list -p <configuration-profile-name>)。

基本認証 (レガシー)

基本 認証では、Databricks のユーザー名とパスワードを使用して、ターゲットの Databricks ユーザー アカウントを認証します。 基本認証はレガシーであり、本番運用では推奨されません。 「 基本認証 (レガシー)」も参照してください。

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

  1. .databrickscfg ファイルで次のフィールドを使用して Databricks 構成プロファイルを作成または識別します。プロファイルを作成する場合は、プレースホルダーを適切な値に置き換えます。

    アカウント レベルのコマンドの場合は、 .databrickscfgファイルに次の値を設定します。

    [<some-unique-configuration-profile-name>]
    host       = <account-console-url>
    account_id = <account-id>
    username   = <username>
    password   = <password>
    

    ワークスペース レベルのコマンドの場合は、 .databrickscfgファイルで次の値を設定します。

    [<some-unique-configuration-profile-name>]
    host       = <workspace-url>
    username   = <username>
    password   = <password>
    

    .databrickscfgファイルのデフォルトの場所は、ユーザーのホームディレクトリです。これは、Linux と macOS では ~ 、Windows では %USERPROFILE% です。

  2. Databricks CLI コマンド コールの一部として、Databricks CLI の --profile または -p オプションの後に構成プロファイルの名前 ( databricks account groups list -p <configuration-profile-name>databricks clusters list -p <configuration-profile-name>など) を使用します。

    ヒント

    構成プロファイル名を手動で入力する代わりに、--profileまたは-pの後に Tab を押すと、既存の使用可能な構成プロファイルの一覧が表示され、そこから選択できます。

OAuth マシン間 (M2M) 認証

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

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

  1. OAuth M2M 認証のセットアップ手順を完了します。 「OAuth マシン間 (M2M) 認証」を参照してください。

  2. .databrickscfg ファイルで次のフィールドを使用して Databricks 構成プロファイルを作成または識別します。プロファイルを作成する場合は、プレースホルダーを適切な値に置き換えます。

    アカウント レベルのコマンドの場合は、 .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% です。

  3. 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 ユーザー対マシン (U2M) 認証」も参照してください。

OAuth U2M 認証を設定して使用するには、次の手順を実行します。

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

    次のコマンドで、次のプレースホルダーを置き換えます。

    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)。

    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 CLI は、Databricks ワークスペースまたはアカウントでの認証を試行するために必要な設定を収集する必要があるたびに、次の場所でこれらの設定を次の順序で検索します。

  1. バンドル・コマンドの場合、プロジェクトの バンドル 設定ファイル内のフィールドの値。 (バンドル設定ファイルは、アクセス資格情報の値の直接インクルードをサポートしていません。

  2. この記事および 「クライアント統合認証の環境変数とフィールド」に記載されている環境変数の値。

  3. この記事で前述した .databrickscfg ファイル内の構成プロファイル フィールド値。

Databricks CLI は、必要な設定を見つけるたびに、他の場所での検索を停止します。 例えば:

  • Databricks CLI には、Databricks 個人用アクセストークンの値が必要です。 DATABRICKS_TOKEN環境変数が設定され、.databrickscfg ファイルには複数の個人用アクセストークンも含まれています。この例では、Databricks CLI は DATABRICKS_TOKEN 環境変数の値を使用し、 .databrickscfg ファイルは検索しません。

  • databricks bundle deploy -e development コマンドには、Databricks 個人用アクセストークンの値が必要です。DATABRICKS_TOKEN環境変数が設定されておらず、.databrickscfg ファイルに複数の個人用アクセストークンが含まれています。プロジェクトのバンドル設定ファイルには、profile フィールドを介して DEVという名前の構成プロファイルを参照するdevelopment環境宣言が含まれています。この例では、Databricks CLI は .databrickscfg ファイルで DEV という名前のプロファイルを検索し、そのプロファイルの token フィールドの値を使用します。

  • databricks bundle run -e development hello-job コマンドには、Databricks 個人用アクセストークンの値が必要です。DATABRICKS_TOKEN環境変数が設定されておらず、.databrickscfg ファイルに複数の個人用アクセストークンが含まれています。プロジェクトのバンドル設定ファイルには、host フィールドを介して特定の Databricks ワークスペース URL を参照するdevelopment環境宣言が含まれています。この例では、Databricks CLI は、 .databrickscfg ファイル内の構成プロファイルを検索して、一致するワークスペース URL を持つ host フィールドを含むプロファイルを探します。 Databricks CLI は、一致する host フィールドを検索し、そのプロファイルの token フィールド値を使用します。