Databricks リソースへのアクセスを認証する
DatabricksDatabricksCLIまたはRESTAPIs を使用して リソースにアクセスするには、クライアントは、リソースにアクセスするために必要な権限を持つDatabricks アカウントを使用して認証する必要があります。Databricks CLI コマンドを安全に実行したり、アカウントまたはワークスペースへの承認されたアクセスを必要とする Databricks API 要求を呼び出したりするには、有効な Databricks アカウント資格情報に基づくアクセストークンを提供する必要があります。この記事では、これらの資格情報を提供し、Databricks ワークスペースまたはアカウントへのアクセスを承認するための認証オプションについて説明します。
次の表は、Databricks アカウントで使用できる認証方法を示しています。
Databricks の認証方法
Databricks のツールと SDK は、サポートされている 1 つ以上の Databricks 認証方法で動作するため、ユースケースに最適な認証方法を選択できます。 詳細については、 開発者ツールとガイダンスのツールまたは SDK のドキュメントを参照してください。
メソッド |
説明 |
ユースケース |
---|---|---|
Short-lived OAuth トークン for サービスプリンシパル. |
無人認証シナリオ (完全に自動化されたワークフローや CI/CD ワークフローなど)。 |
|
ユーザーにとって有効期間の短い OAuth トークン。 |
有人認証シナリオでは、プロンプトが表示されたら、Web ブラウザーを使用して Databricks でリアルタイムに認証します。 |
|
ユーザーまたはサービスプリンシパルの短期または長期のトークン。 |
ターゲット ツールが OAuth をサポートしていないシナリオ。 |
|
Google クラウド サービス アカウントは、 Databricks ユーザーとして機能し、Google クラウド サービス トークンと共に OAuth 。 |
Google クラウド リソースと Databricksへの認証に使用します。 |
|
Google クラウド サービス アカウントは、 Databricks ユーザーとして機能し、Google クラウド サービス トークンと共に OAuth 。 |
Google クラウド リソースへの認証に使用し、Google クラウド リソースを使用して Databricks CLI。 |
どの認証方法を選択すればよいですか?
Databricks リソースにアクセスするための Databricks CLI コマンドまたは API 呼び出しを認証するには、次の 2 つのオプションがあります。
Databricks ユーザー アカウント ("ユーザー間" 認証 (U2M) と呼ばれます) を使用します。 これは、ローカル クライアント環境から Databricks CLI コマンドを実行している場合、または所有して排他的に実行しているコードから Databricks API 要求を呼び出す場合にのみ選択します。
Databricks サービスプリンシパル ("machine-to-machine" 認証 (M2M) と呼ばれます) を使用します。他のユーザーがコードを実行する場合 (特にアプリの場合)、または Databricks CLI コマンドまたは API 要求を呼び出す自動化を構築する場合は、これを選択します。
また、 Databricks APIを呼び出すために使用するアカウントにリンクされたアクセストークンも必要です。 このトークンは、 OAuth 2.0 アクセストークンまたは個人用アクセストークン (PAT) のいずれかです。 ただし、Databricksトークンはデフォルトによって自動的に更新されOAuthアクセストークンを直接管理する必要がないため、トークンのハイジャックや不要なアクセスに対するセキュリティを向上させるため、認証にOAuth over PATsを使用することを強くお勧めします。OAuth がアクセストークンを作成および管理するため、OAuthトークン エンドポイント URL、クライアント ID、およびトークン文字列を自分で直接提供する代わりに、Databricks ワークスペースから生成したシークレットを指定します。PAT は、定期的に監査され、ローテーションまたは取り消されない場合、またはトークンの文字列とパスワードが開発環境で安全に管理されていない場合、有効期間の長いトークンがエグレスの機会を提供するリスクをさらします。
OAuth を使用して Databricks で認証するにはどうすればよいですか?
Databricks は、特定の資格情報値に設定できるデフォルトの環境変数セットを使用して認証を支援する 統合クライアント認証 を提供します。 これにより、これらの環境変数は Databricks CLI コマンドを実行する環境や Databricks APIsを呼び出す環境に固有であるため、より簡単かつ安全に作業できます。
ユーザー アカウント (ユーザーからマシン) 認証の場合、ツールと SDK がその標準を実装している限り、Databricks OAuth は Databricks クライアント統合認証で処理されます。 そうでない場合は、OAuth コード検証ツールとチャレンジのペアを手動で生成して、Databricks CLI コマンドと API 要求で直接使用できます。 「ステップ 1: OAuth コード検証ツールとコード・チャレンジ・ペアを生成する」を参照してください。
サービスプリンシパル (machine-to-machine) 認証の場合、 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
: (M2M OAuth のみ) サービスプリンシパルの作成時に割り当てられたクライアント ID。DATABRICKS_CLIENT_SECRET
: (M2M 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 構成プロファイル」を参照してください。