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

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

Databricks CLIとAPIs の認証

DatabricksDatabricksCLIまたはRESTAPIs を使用して リソースにアクセスするには、クライアントは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 for サービスプリンシパル (OAuth M2M)

Short-lived OAuth トークン for サービスプリンシパル.

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

ユーザー向け OAuth (OAuth U2M)

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

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

Databricks OAuth トークン フェデレーション

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

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

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

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

ターゲット ツールが OAuth をサポートしていないシナリオ。

注:

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

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

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

  • OAuth 2.0 ベースのアクセス トークン。

  • パーソナル アクセス トークン (PAT)。

注:

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

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

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

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

  • ユーザーアカウントの認証については、ツールと SDK がその標準を実装している限り、Databricks OAuth の認証部分 (アクセストークンの作成と管理) は Databricks クライアント統合認証で処理されます。 そうでない場合は、OAuth コード検証ツールとチャレンジのペアを手動で生成して、Databricks CLI コマンドと API 要求で直接使用できます。 「ステップ 1: OAuth コード検証ツールとコード・チャレンジ・ペアを生成する」を参照してください。

  • サービスプリンシパル authorization の場合、 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 は次のサポートを提供します。

  • DatabricksTerraformプロバイダー:このツールは、DatabricksAPIs TerraformDatabricksユーザーアカウントを使用して、あなたに代わって から にアクセスできます。詳細については、「プロビジョニング a サービスプリンシパル by using Terraform」を参照してください。

  • GitGitHubGitLab、 、 などの プロバイダーは、Bitbucket DatabricksAPIsDatabricksサービスプリンシパルを使用して にアクセスできます。詳細については、「サービスプリンシパル for CI/CD」を参照してください。

  • JenkinsDatabricksAPIs は、Databricks サービスプリンシパルを使用して にアクセスできます。詳細については、「 Databricks での Jenkins を使用した CI/CD」を参照してください。

Databricks構成プロファイル

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

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