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

Databricks リソースへのアクセスの承認

このトピックでは、ユーザー アカウントやサービスプリンシパルなどのDatabricksアカウント資格情報を使用して、セキュリティで保護されたDatabricks CLI 呼び出しまたは REST API呼び出しを行うための基本的な方法について説明します。

Databricks CLIとAPIの認証

Databricks CLIまたはREST API を使用してDatabricksリソースにアクセスするには、クライアントはDatabricks アカウントを使用して承認する必要があります。このアカウントには、Databricks 管理者または管理者特権を持つユーザー アカウントが構成できるリソースにアクセスするためのアクセス許可が必要です。

Databricks リソースへのアクセス方法に応じて、使用できるアカウントには 2 種類あります。

  • ユーザーアカウント: これを使用して、Databricks CLI コマンドまたは REST API 呼び出しを対話形式で入力します。
  • サービスプリンシパル: これを使用して、人間の操作なしでDatabricks CLIコマンドやREST API 呼び出しを自動化します。

アクセストークンを取得する

Databricks アカウントの種類を決定したら、アカウントの資格情報を表す アクセス トークン を取得する必要があります。このアクセストークンは、スクリプトやコード、またはインタラクティブセッションでアカウントのリソースにアクセスするときに提供します。

アカウントの認証情報は、セキュアアクセストークンによって表され、CLI コマンドまたは API コールに直接または間接的に提供します。

アカウントまたはワークスペースへの承認されたアクセスを必要とする Databricks CLI コマンドまたは API 要求を安全に実行するには、有効な Databricks アカウントの資格情報に基づいてアクセス トークンを指定する必要があります。

次の表は、Databricks アカウントで使用できる認証方法を示しています。

Databricks の認証方法

Databricks のツールと SDK は、サポートされている 1 つ以上の Databricks 認証方法で動作するため、ユースケースに最適な認証方法を選択できます。 詳細については、 ローカル開発ツールまたは SDK のドキュメントを参照してください。

メソッド

説明

ユースケース

OAuth トークンのフェデレーション (推奨)

ユーザーまたはサービスプリンシパルの ID プロバイダーからの OAuth トークン。

Databricks シークレットを管理せずに Databricks に対して認証できます。

サービスプリンシパル向けOAuth (OAuth M2M)

サービスプリンシパル向け短期OAuthトークン。

無人認証シナリオ (完全に自動化されたワークフローや CI/CD ワークフローなど)。

ユーザー向け OAuth (OAuth U2M)

ユーザーにとって有効期間の短い OAuth トークン。

有人認証シナリオでは、プロンプトが表示されたら、Web ブラウザーを使用して Databricks でリアルタイムに認証します。

パーソナル アクセス トークン (PAT) (非推奨)

ユーザーまたはサービスプリンシパルの短期または長期のトークン。

これは、ターゲット ツールが OAuth をサポートしていない場合にのみ使用してください。

注記

Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 Databricks で管理されるパスワードのサポート終了を参照してください。

どの認証オプションを選択すればよいですか?

Databricks には、承認またはアクセス トークンを使用した認証の 2 つのオプションが用意されています。

  • OAuth 2.0 ベースのアクセス トークン
  • パーソナル アクセス トークン (PAT)
important

Databricks 、 OAuth トークンはデフォルトによって自動的に更新され OAuth アクセストークンを直接管理する必要がないため、トークンハイジャックや不要なアクセスに対するセキュリティを向上させるため、認証にPATよりもトークンを使用することを強くお勧めします。

OAuth によってアクセス トークンが作成および管理されるため、トークン文字列を直接指定するのではなく、OAuth トークン エンドポイント URL、クライアント ID、Databricks ワークスペースから生成したシークレットを指定します。PAT は、Databricks 統合クライアント認証でサポートされていない、または OAuth をサポートしていないサードパーティのツールまたはサービスを統合する場合にのみ選択してください。

OAuth を使用して Databricks リソースへのアクセスを承認するにはどうすればよいですか?

Databricks は、特定の資格情報値に設定できるデフォルトの環境変数セットを使用して、承認を支援する 統合クライアント認証 を提供します。 これにより、これらの環境変数は Databricks CLI コマンドを実行する環境や Databricks APIを呼び出す環境に固有であるため、より簡単かつ安全に作業できます。

  • ユーザーアカウントの認証については、ツールと SDK がその標準を実装している限り、Databricks OAuth の認証部分 (アクセストークンの作成と管理) は Databricks クライアント統合認証で処理されます。そうでない場合は、OAuth コード検証ツールとチャレンジのペアを手動で生成して、Databricks CLI コマンドと API 要求で直接使用できます。「ステップ 1: OAuth コード検証ツールとコード・チャレンジ・ペアを生成する」を参照してください。
  • サービスプリンシパル 認証 の場合、 Databricks OAuth では、呼び出し元がクライアント資格情報と、要求を承認できるトークン エンドポイント URL を提供する必要があります。 (これは、Databricks 統合クライアント認証をサポートする Databricks ツールと SDK を使用する場合に処理されます。 資格情報には、一意の クライアント IDクライアント シークレット が含まれます。 クライアント(コードを実行するDatabricksサービスプリンシパル)は、Databricksワークスペースに割り当てる必要があります。サービスプリンシパルをアクセスするワークスペースに割り当てると、特定の環境変数で設定するクライアント ID とクライアントシークレットが提供されます。

これらの環境変数は次のとおりです。

環境変数

説明

DATABRICKS_HOST

この環境変数は、Databricks アカウント コンソール (http://accounts.cloud.databricks.com) または Databricks ワークスペース URL (https://{workspace-id}.cloud.databricks.com) の URL に設定されます。 コードで実行する操作のタイプに基づいて、ホストURLのタイプを選択します。 具体的には、Databricks アカウント レベルの CLI コマンドまたは REST API 要求を使用している場合は、この変数を Databricks アカウントの URL に設定します。 Databricks ワークスペース レベルの CLI コマンドまたは REST API 要求を使用している場合は、Databricks ワークスペース URL を使用します。

DATABRICKS_ACCOUNT_ID

Databricks アカウントの操作に使用されます。 これは Databricks アカウント ID です。 取得するには、「 アカウント ID を確認する」を参照してください。

DATABRICKS_CLIENT_ID

(サービスプリンシパル OAuth のみ) サービスプリンシパルの作成時に割り当てられたクライアント ID。

DATABRICKS_CLIENT_SECRET

(サービスプリンシパル OAuth のみ) サービスプリンシパルの作成時に生成したクライアントシークレット。

これらは、直接設定することも、クライアント コンピューター上の Databricks 構成プロファイル (.databrickscfg) を使用して設定することもできます。

OAuth アクセス トークンを使用するには、Databricks ワークスペースまたはアカウント管理者が、コード アクセスするアカウントおよびワークスペース機能に対するCAN USE権限をユーザー アカウントまたはサービスプリンシパルに付与している必要があります。

クライアントの OAuth 認証の設定の詳細と、クラウド プロバイダー固有の認証オプションを確認するには、「 統合クライアント認証」を参照してください。

サードパーティのサービスおよびツールの認証

サードパーティのサービス、ツール、または SDK にアクセスするコードを記述する場合は、サードパーティが提供する認証および承認メカニズムを使用する必要があります。 ただし、サードパーティのツール、SDK、またはサービスに Databricks アカウントまたはワークスペース リソースへのアクセスを許可する必要がある場合、Databricks は次のサポートを提供します。

  • Databricks Terraformプロバイダー: このツールは、あなたのDatabricksユーザーアカウントを使用して、あなたに代わってTerraformからDatabricksにアクセスできます。詳細については、Terraformを用いたサービスプリンシパルの配備を参照してください。
  • GitHub、GitLab、BitbucketなどのGitプロバイダーは、Databricksサービスプリンシパルを使用してDatabricks APIにアクセスできます。詳細については、「CI/CD用のサービスプリンシパル」を参照してください。
  • Jenkinsは、Databricks サービスプリンシパルを使用してDatabricks APIにアクセスできます。詳細については、「 Databricks での Jenkins を使用した CI/CD」を参照してください。

Databricks 構成プロファイル

Databricks 構成プロファイルには、Databricks がアクセスを承認するために必要な設定とその他の情報が含まれています。 Databricks 構成プロファイルは、ツール、SDK、スクリプト、アプリで使用するローカル クライアント ファイルに格納されます。 標準構成プロファイル ファイルの名前は .databrickscfgです。

詳細については、「 Databricks 構成プロファイル」を参照してください。