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

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 アカウントで使用できる認証方法を示しています。

アカウントレベルの API とワークスペースレベルの API

Databricks REST APIsで認証するには、アカウントレベルとワークスペースレベルのAPIsの違いを理解する必要があります。

Databricks アカウント は複数のワークスペースをホストでき、アカウント コンソールを通じて管理されます。 ワークスペース には、ジョブやノートブックなどのリソースが含まれ、ワークスペース管理者によって管理されます。

  • DatabricksアカウントレベルのAPIsは、アカウント所有者とアカウント管理者のみが使用できます。これらの APIs は、アカウントコンソールのURLでホストされます。
  • Databricksワークスペース レベルのAPIsは、ワークスペース ユーザーと管理者が利用できます。これらの APIs は、ワークスペースの URL でホストされます。

Databricks の認証方法

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

メソッド

説明

ユースケース

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

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

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

Databricks OAuth for サービスプリンシパル (OAuth M2M)

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

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

ユーザー向け OAuth (OAuth U2M)

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

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

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

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

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

Google Cloud Platform の認証情報の認証

Databricks ユーザーとして機能する Google Cloud サービス アカウントと Google Cloud OAuth トークンを使用します。

Google Cloud リソースと Databricks へのアクセスを承認するために使用します。

Google Cloud Platform ID認証

Databricks ユーザーとして機能する Google Cloud サービス アカウントと Google Cloud OAuth トークンを使用します。

Google Cloud CLI を使用して Google Cloud リソースと Databricks を認証するために使用します。

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

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

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

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

OAuth はアクセストークンを自動的に作成して管理するため、トークン文字列を直接指定する必要はありません。PAT は、Databricks 統合認証でサポートされていない、または OAuth サポートがないサードパーティのツールまたはサービスを統合する場合にのみ選択してください。

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

Databricks 統合認証 では、環境変数の標準セットを使用して資格情報値を格納します。これらの変数を使用すると、認証を繰り返し設定することなく、コマンド Databricks CLI 実行または呼び出し APIs できます。

ユーザーアカウント認証

  • 統合認証をサポートするツールとSDKを使用して、 Databricks OAuth 自動的にアクセストークンを作成および管理します。
  • ツールが統合認証をサポートしていない場合は、OAuth コード検証ツールとチャレンジのペアを手動で生成し、コマンドまたはAPI要求CLI使用します。「 ステップ 1: コード検証ツールとチャレンジを生成する」を参照してください。

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

  • Databricks OAuth では、呼び出し元がクライアント資格情報とトークン エンドポイント URL を指定する必要があります。統合認証をサポートするツールと 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 構成プロファイル」を参照してください。