Azure Databricks リソースへのアクセスの承認
このトピックでは、ユーザー アカウントやサービス プリンシパルなどの Azure Databricks アカウント資格情報を使用して、セキュリティで保護された Azure Databricks CLI または REST API 呼び出しを行う基本的な方法について説明します。
Azure Databricks CLI と API の承認
Databricks CLI または REST API を使用して Azure Databricks リソースにアクセスするには、クライアントが Azure Databricks アカウントを使用して承認する必要があります。 このアカウントには、リソースにアクセスするためのアクセス許可が必要です。このアクセス許可は、Azure Databricks 管理者または管理者特権を持つユーザー アカウントによって構成できます。
Azure Databricks リソースへのアクセス方法に応じて、次の 2 種類のアカウントを使用できます。
- ユーザー アカウント: これを使用して、Azure Databricks CLI コマンドまたは REST API 呼び出しを対話形式で入力します。
- サービス プリンシパル: これを使用して、人間の操作なしで Azure Databricks CLI コマンドまたは REST API 呼び出しを自動化します。
Azure Databricks アカウントの種類を決定したら、アカウントの資格情報を表す アクセス トークン を取得する必要があります。 このアクセス トークンは、スクリプトまたはコードまたは対話型セッションでアカウントのリソースにアクセスするときに指定します。
- Azure Databricks を使用している場合は、MS Entra サービス プリンシパルを使用して、Azure Databricks アカウントまたはワークスペースへのアクセスを承認することもできます。 ただし、Databricks では、MS Entra サービス プリンシパルの認可ではなく、提供された OAuth 認可で Databricks サービス プリンシパルを使用することをお勧めします。 これは、Databricks の承認では、Azure Databricks でのみ承認する場合により堅牢な OAuth アクセス トークンが使用されるためです。
MS Entra サービス プリンシパルを使用して Databricks リソースにアクセスする方法の詳細については、「MS Entra サービス プリンシパル認証」を参照してください。
アクセス トークンを取得する
アカウントの資格情報は、CLI コマンドまたは API 呼び出しに直接または間接的に提供する、セキュリティで保護されたアクセス トークンによって表されます。
アカウントまたはワークスペースへの承認されたアクセスを必要とする Databricks CLI コマンドまたは API 要求を安全に実行するには、有効な Azure Databricks アカウントの資格情報に基づいてアクセス トークンを指定する必要があります。
次の表に、Azure Databricks アカウントで使用できる承認方法を示します。
Azure Databricks の承認方法
Azure Databricks ツールと SDK は、サポートされている 1 つ以上の Azure Databricks 承認方法で動作するため、ユース ケースに最適な承認方法を選択できます。 詳細については「ローカル開発ツール」の中のツールまたは SDK ドキュメントを参照してください。
Azure Databricks ユーザーは、Databricks アカウントで直接管理されていない Azure 固有のリソースへのアクセスが必要になる場合があります。 これらのリソースにアクセスするためのメソッドもこの表に含まれています。 Azure リソース アクセスでは、Azure Databricks アカウントの資格情報ではなく、Azure マネージド サービス ID (MSI) または MS Entra ID (シナリオに応じて) を使用します。
Method | 説明 | ユース ケース |
---|---|---|
サービス プリンシパルの Databricks OAuth | サービス プリンシパルの有効期間が短い OAuth トークン。 | 完全に自動化されたワークフローや CI/CD ワークフローなどの無人承認シナリオ。 |
ユーザーの Databricks OAuth | ユーザーの有効期間が短い OAuth トークン。 | ダイアログが表示された際に、Web ブラウザーまたはその他の対話型方式を使用して、Databricks で承認する有人の認可シナリオ。 |
Databricks 個人用アクセス トークン (PAT) | ユーザーまたはサービス プリンシパルの有効期間が短いトークンまたは有効期間の長いトークン。 | これは、ターゲット ツールが OAuth をサポートしていない場合にのみ使用します。 |
Azure マネージド サービス ID 認可 | Azure マネージド ID 用の Microsoft Entra ID トークン。 | マネージド ID をサポートする Azure リソース (Azure 仮想マシンなど) でのみ使用します。 |
Microsoft Entra ID サービス プリンシパル認可 | Microsoft Entra ID サービス プリンシパル用の Microsoft Entra ID トークン。 | Azure DevOps などのマネージドIDをサポートせず、Microsoft Entra IDトークンをサポートするAzureリソースでのみ使用してください。 |
Azure CLI 認可 | ユーザーまたは Microsoft Entra ID サービス プリンシパル用の Microsoft Entra ID トークン。 | Azure CLI を使用して Azure リソースと Azure Databricks へのアクセスを承認するために使用します。 |
Microsoft Entra ID ユーザー認可 | ユーザー向けの Microsoft Entra ID トークン。 | Microsoft Entra ID トークンのみをサポートする Azure リソースでのみ使用します。 Databricks では、Azure Databricks ユーザー用の Microsoft Entra ID トークンを手動で作成することはお勧めしません。 |
どの承認オプションを選択する必要がありますか?
Azure Databricks には、アクセス トークンを使用した承認または認証のための 2 つのオプションが用意されています。
- OAuth 2.0 ベースのアクセス トークン。
- 個人用アクセス トークン (PAT)。
注
Azure Databricks では、OAuth トークンが既定で自動的に更新され、アクセス トークンを直接管理する必要が無く、トークンハイジャックや不要なアクセスに対するセキュリティが向上するので、承認には認証に OAuth over PAT を使用することを強くお勧めします。
OAuth はアクセス トークンを作成して管理するため、トークン文字列を直接指定する代わりに、Azure Databricks ワークスペースから生成する OAuth トークン エンドポイント URL、クライアント ID、シークレットを指定します。 AZURE Databricks 統合クライアント認証でサポートされていないサード パーティのツールまたはサービスを統合している場合、または OAuth がサポートされていない場合にのみ、AT を選択します。
OAuth を使用して Azure Databricks リソースへのアクセスを承認するにはどうすればよいですか?
Azure Databricks には、特定の資格情報の値に設定できる既定の環境変数セットを使用して承認を支援する、統合クライアント認証 が用意されています。 これらの環境変数は、Azure Databricks CLI コマンドを実行する環境や Azure Databricks API を呼び出す環境に固有であるため、より簡単かつ安全に作業できます。
- ユーザー アカウントの承認では、Azure Databricks OAuth の認証部分 (アクセス トークンの作成と管理) は、ツールと SDK が標準を実装している限り、Databricks クライアント統合認証で自動的に処理されます。 そうでない場合は、OAuth コード検証ツールとチャレンジ ペアを手動で生成して、Azure Databricks CLI コマンドと API 要求で直接使用できます。 「手順 1: OAuth コード検証ツールとコード チャレンジのペアを生成する」を参照してください。
- サービス プリンシパルの承認のために、Azure Databricks OAuth では、要求を承認できるトークン エンドポイント URL と共に、呼び出し元がクライアント資格情報を提供する必要があります。 (これは、Databricks 統合クライアント認証をサポートする Azure Databricks ツールと SDK を使用する場合に自動的に処理されます)。資格情報には、一意の client ID および client シークレットが含まれます。 コードを実行する Databricks サービス プリンシパルであるクライアントは、Databricks ワークスペースに 割り当てられている必要があります。 アクセスするワークスペースにサービス プリンシパルを割り当てると、特定の環境変数で設定するクライアント ID とクライアント シークレットが提供されます。
それらの環境変数を次に示します。
環境変数 | 説明 |
---|---|
DATABRICKS_HOST |
この環境変数は、Azure Databricks アカウント コンソール (http://accounts.cloud.databricks.com ) または Azure Databricks ワークスペース URL (https://{workspace-id}.cloud.databricks.com ) のいずれかの URL に設定されます。 コードで実行する操作の種類に基づいて、ホスト URL の種類を選択します。 具体的には、Azure Databricks アカウント レベルの CLI コマンドまたは REST API 要求を使用している場合この変数を Azure Databricks アカウントの URL に設定します。 Azure Databricks workspace レベルの CLI コマンドまたは REST API 要求を使用している場合、Azure Databricks ワークスペースの URL を使用します。 |
DATABRICKS_ACCOUNT_ID |
Azure Databricks アカウント操作に使用されます。 これがAzure Databricks アカウント ID です。 取得するには、「アカウント ID を特定する」を参照してください。 |
DATABRICKS_CLIENT_ID |
(サービス プリンシパル OAuth のみ) あなたのサービス プリンシパル を作成する際に割り当てられたクライアント ID。 |
DATABRICKS_CLIENT_SECRET |
(サービス プリンシパル OAuth のみ) サービス プリンシパルの作成時に生成したクライアント シークレット。 |
これらは直接設定することも、クライアント コンピューターで Databricks 構成プロファイル (.databrickscfg
) を使用して設定することもできます。
OAuth アクセス トークンを使用するには、Azure Databricks ワークスペースまたはアカウント管理者が、コードがアクセスするアカウントとワークスペース機能の CAN USE
特権をユーザー アカウントまたはサービス プリンシパルに付与している必要があります。
クライアントの OAuth 承認を構成する方法と、クラウド プロバイダー固有の承認オプションを確認する方法の詳細については、「 クライアント認証の解除」を参照してください。
サードパーティのサービスおよびツールの認証
サード パーティのサービス、ツール、または SDK にアクセスするコードを記述する場合は、サード パーティによって提供される認証と承認のメカニズムを使用する必要があります。 ただし、サードパーティのツール、SDK、またはサービスに Azure Databricks アカウントまたはワークスペース リソースへのアクセス権を付与する必要がある場合、Databricks では次のサポートが提供されます。
Databricks Terraform プロバイダー: このツールは、Azure Databricks ユーザー アカウントを使用して、ユーザーに代わって Terraform から Azure Databricks API にアクセスできます。 詳細は、「Terraform を使用してサービス プリンシパルをプロビジョニングする」を参照してください。
GitHub、GitLab、Bitbucket などの Git プロバイダーは、Databricks サービス プリンシパルを使用して Azure Databricks API にアクセスできます。 詳細については、「CI/CDのサービス プリンシパル名」を参照してください。
Jenkins は、Databricks サービス プリンシパルを使用して Azure Databricks API にアクセスできます。 詳細については、Azure Databricks Jenkins での CI/CDを参照してください。
Azure DevOps は、MS Entra ID ベースのサービス プリンシパルを使用して Azure Databricks API にアクセスできます。 詳細については、「Authenticate with Azure DevOps on Databricks」を参照してください。
Azure Databricks 構成プロファイル
Azure Databricks 構成プロファイルには、Azure Databricks がアクセスを承認するために必要な設定とその他の情報が含まれています。 Azure Databricks構成プロファイルは、使用するツール、Sdk、スクリプト、およびアプリのローカルクライアントファイルに格納されます。 標準構成プロファイル ファイルには、.databrickscfg
という名前が付けられています。
詳細については、「Azure Databricks 構成プロファイル」を参照してください。