Share via


Databricks CLI の認証

Note

この情報は、パブリック プレビュー段階である Databricks CLI バージョン 0.205 以降に当てはまる内容です。 お使いの Databricks CLI のバージョンを確認するには、databricks -v を実行してください。

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

この記事では、Databricks CLI が既にインストールされていることを前提としています。 「Databricks CLI のインストールまたは更新」を参照してください。

Databricks CLI のコマンドを実行するには、実行する CLI コマンドの種類に応じて、Databricks CLI と、Azure Databricks アカウントやワークスペース、またはこれらの組み合わせの間で、認証を設定する必要があります。

Azure Databricks アカウントまたはワークスペース内で Azure Databricks 自動化コマンドを実行するために、実行時に関連リソースに対して Databricks CLI を認証する必要があります。 Azure Databricks ワークスペース レベルのコマンド、Azure Databricks アカウント レベルのコマンド、またはその両方を呼び出すかどうかに応じて、Azure Databricks ワークスペース、アカウント、またはその両方に対して認証する必要があります。 Azure Databricks ワークスペース レベルおよびアカウント レベルの CLI コマンド グループの一覧については、databricks -h コマンドを実行します。 Databricks CLI コマンドで扱われる Azure Databricks ワークスペース レベルおよびアカウント レベルの REST API 操作の一覧については、「Databricks REST API」を参照してください。

Note

Databricks CLI は、Databricks クライアント統合認証標準を実装しています。これは、統合されていて一貫性がある、アーキテクチャとプログラムによる認証アプローチです。 このアプローチは、Azure Databricks を使用した認証の設定と自動化を、より一元的で予測可能なものにするのに役立ちます。 これにより、Azure Databricks 認証を一度構成すれば、それ以上認証構成を変更しなくても、複数の Azure Databricks ツールおよび SDK でその構成を使用できます。 この標準の詳細については、「Databricks クライアント統合認証」を参照してください。

次のセクションでは、Databricks CLI と Azure Databricks の間に認証を設定する方法について説明します。

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

Azure Databricks 個人用アクセス トークン認証では、Azure Databricks 個人用アクセス トークンを使用して、対象の Azure Databricks エンティティ (Azure Databricks ユーザー アカウントなど) を認証します。 「Azure Databricks 個人用アクセス トークン認証」をご覧ください。

Note

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

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

  1. Azure Databricks ワークスペースの上部バーで、目的の Azure Databricks ユーザー名をクリックし、次にドロップダウンから [設定] を選択します。
  2. [開発者] をクリックします。
  3. [アクセス トークン] の横にある [管理] をクリックします。
  4. [新しいトークンの生成] をクリックします。
  5. (省略可能) 将来このトークンを識別するのに役立つコメントを入力し、トークンの既定の有効期間 90 日を変更します。 有効期間のないトークンを作成するには (推奨されません)、[有効期間 (日)] ボックスを空のままにします。
  6. [Generate](生成) をクリックします。
  7. 表示されたトークンを安全な場所にコピーし、[完了] をクリックします。

Note

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

ワークスペースでトークンを作成することや使用することができない場合は、ワークスペース管理者によってトークンが無効にされているか、トークンを作成または使用する権限が作業者に付与されていない可能性があります。 ワークスペース管理者に連絡するか、以下の情報を参照してください。

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

Note

次の手順では、DEFAULT という名前で Azure 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] には、Azure Databricks のワークスペースごとの URL (例: https://adb-1234567890123456.7.azuredatabricks.net) を入力します。

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

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

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

OAuth マシン間 (M2M) 認証

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

OAuth M2M 認証を構成して使うには、次の操作を行います。

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

  2. .databrickscfg ファイルで次のフィールドを使用して、Azure 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>
    

    Note

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

  3. 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 ユーザー対マシン (U2M) 認証

トークン認証を使用して Azure Databricks で 認証する代わりに、OAuth 認証を使用できます。 OAuth は、Azure Databricks 個人用アクセス トークンよりも有効期限が短いトークンを提供し、サーバー側のセッションの無効化とスコープ設定を強化します。 OAuth アクセス トークンは 1 時間以内に期限切れになるため、誤ってトークンをソース管理に確認することに関連するリスクが軽減されます。 「OAuth ユーザー対マシン (U2M) 認証」も参照してください。

OAuth U2M 認証を構成して使用するには、次の操作を行います。

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

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

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

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

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

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

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

    次のコマンド内で <workspace-url> を、ご利用の Azure Databricks ワークスペース単位の URL (例: https://adb-1234567890123456.7.azuredatabricks.net) に置き換えてください。

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

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

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

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

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

    ヒント

    構成プロファイル名を手動で入力する代わりに、--profile または -p の後に Tab を押して、選択できる既存の構成プロファイルの一覧を表示することができます。

Azure マネージド ID 認証

Azure マネージド ID 認証は、認証のために Azure リソース用マネージド ID (旧マネージド サービス ID (MSI)) を使用します。 「Azure リソースのマネージド ID とは」をご覧ください。 「Azure マネージド ID 認証」も参照してください。

Azure ユーザー割り当てマネージド ID を作成するには、次を行います。

  1. Azure VM を作成または特定し、そこに Databricks CLI をインストールします。次に、マネージド ID を Azure VM とターゲットの Azure Databricks アカウント、ワークスペース、またはその両方に割り当てます。 「Azure Databricks 自動化に Azure マネージド ID 認証を設定して使用する」を参照してください。

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

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

    [<some-unique-configuration-profile-name>]
    host            = <account-console-url>
    account_id      = <account-id>
    azure_client_id = <azure-managed-identity-application-id>
    azure_use_msi   = true
    

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

    [<some-unique-configuration-profile-name>]
    host            = <workspace-url>
    azure_client_id = <azure-managed-identity-application-id>
    azure_use_msi   = true
    

    ワークスペース レベルのコマンドの場合に、対象の ID がまだワークスペースに追加されていない場合は、ワークスペース URL と共に host ではなく、Azure リソース ID と共に azure_workspace_resource_id を指定します。 この場合、対象の ID には、Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

    Note

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

  3. Azure VM で、databricks account groups list -p <configuration-profile-name>databricks clusters list -p <configuration-profile-name> のように、Databricks CLI の --profile または -p オプションの後に構成プロファイルの名前を使用して、使用する Databricks のプロファイルを設定します。

    ヒント

    構成プロファイル名を手動で入力する代わりに、--profile または -p の後に Tab を押して、選択できる既存の構成プロファイルの一覧を表示することができます。

Microsoft Entra ID サービス プリンシパル認証

"Microsoft Entra ID サービス プリンシパル" 認証では、Microsoft Entra ID サービス プリンシパルの資格情報を使って認証を行います。 Azure Databricks のサービス プリンシパルを作成および管理するには、「サービス プリンシパルを管理する」をご参照ください。 「Microsoft Entra ID サービス プリンシパルの認証」も参照してください。

Microsoft Entra ID サービス プリンシパル認証を構成して使用するには、Azure CLI がローカルにインストールされている必要があります。 次の操作も必要です。

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

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

    [<some-unique-configuration-profile-name>]
    host                = <account-console-url>
    account_id          = <account-id>
    azure_tenant_id     = <azure-service-principal-tenant-id>
    azure_client_id     = <azure-service-principal-application-id>
    azure_client_secret = <azure-service-principal-client-secret>
    

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

    [<some-unique-configuration-profile-name>]
    host                = <workspace-url>
    azure_tenant_id     = <azure-service-principal-tenant-id>
    azure_client_id     = <azure-service-principal-application-id>
    azure_client_secret = <azure-service-principal-client-secret>
    

    ワークスペース レベルのコマンドの場合に、対象の Microsoft Entra ID サービス プリンシパルがまだワークスペースに追加されていない場合は、ワークスペース URL と共に host ではなく、Azure リソース ID と共に azure_workspace_resource_id を指定します。 この場合、ターゲットの Microsoft Entra ID サービス プリンシパルには、Azure リソースに対する少なくとも共同作成者または所有者のアクセス許可が必要です。

    Note

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

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

    ヒント

    構成プロファイル名を手動で入力する代わりに、--profile または -p の後に Tab を押して、選択できる既存の構成プロファイルの一覧を表示することができます。

Azure CLI 認証

"Azure CLI" 認証では、Azure CLI を使用してサインインしたエンティティを認証します。Azure CLI 認証」も参照してください。

Azure CLI 認証を構成するには、次の操作を行う必要があります。

  1. Azure CLI をローカルにインストールします。

  2. Azure CLI を使い、az login コマンドを実行して Azure Databricks にログインします。 「Azure Databricks ユーザー アカウントで Azure CLI にログインする」を参照してください。

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

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

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

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

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

    Note

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

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

    ヒント

    構成プロファイル名を手動で入力する代わりに、--profile または -p の後に Tab を押して、選択できる既存の構成プロファイルの一覧を表示することができます。

評価の認証順序

Databricks CLI は、Azure Databricks ワークスペースまたはアカウントで認証を試みるために必要な設定を収集する必要がある場合は常に、次の場所にあるこれらの設定を次の順序で検索します。

  1. bundle コマンドの場合、プロジェクトのバンドル設定ファイル内のフィールドの値。 (バンドル設定ファイルでは、アクセス資格情報の値を直接含めることはサポートされていません。)
  2. この記事および「クライアント統合認証の環境変数とフィールド」に記載されている環境変数の値。
  3. この記事で前述した .databrickscfg ファイル内の構成プロファイル フィールドの値。

Databricks CLI は必要な設定を見つけると、必ず他の場所での検索を停止します。 次に例を示します。

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