Azure Databricks 個人用アクセス トークン認証
Azure Databricks 個人用アクセス トークン (PAT) は、Azure Databricks ワークスペース レベルでリソースと API へのアクセスを認証するために使用されます。 環境変数や Azure Databricks 構成プロファイルなど、資格情報と関連情報の多くのストレージ メカニズムでは、Azure Databricks 個人用アクセス トークンのサポートが提供されています。 Azure Databricks ワークスペースではユーザーは複数の個人用アクセス トークンを利用できますが、それぞれの個人用アクセス トークンは、1 つの Azure Databricks ワークスペースに対してのみ機能します。 1 ユーザーあたりの個人用アクセス トークンの数は、ワークスペースごとに 600 に制限されています。
Databricks は、90 日以上使用されていない個人用アクセス トークンを自動的に取り消します。
重要
Databricks では、OAuth のセキュリティが強化されているため、ユーザー アカウント クライアントの認証と承認に、AT の代わりに OAuth を使用することをお勧めします。 OAuth を使用して Databricks ユーザー アカウントでクライアント認証を実行する方法については、OAuth (OAuth U2M) (ユーザー アカウント認証用) を使用して、ユーザー アカウントを使用して Azure Databricks へのアクセスを認証する方法に関するページを参照してください。
Azure Databricks のユーザー名とパスワードを使用した基本 (トークンベースではない) 認証は、2024 年 7 月 10 日に終了しました。
Azure Databricks アカウントレベルの機能を自動化するために、Azure Databricks 個人用アクセス トークンを使用することはできません。 代わりに、Azure Databricks アカウント管理者の Microsoft Entra ID トークンを使用する必要があります。 Azure Databricks アカウント管理者は、ユーザーまたはサービス プリンシパルになることができます。 詳細については、次を参照してください。
ワークスペース ユーザー用の Azure Databricks 個人用アクセス トークン
Azure Databricks ワークスペース ユーザーのために Azure Databricks 個人用アクセス トークンを作成するには、以下の操作を行います。
- Azure Databricks ワークスペースの上部バーで、目的の Azure Databricks ユーザー名をクリックし、次にドロップダウンから [設定] を選択します。
- [開発者] をクリックします。
- [アクセス トークン] の横にある [管理] をクリックします。
- [新しいトークンの生成] をクリックします。
- (省略可能) 将来このトークンを識別するのに役立つコメントを入力し、トークンの既定の有効期間 90 日を変更します。 有効期間のないトークンを作成するには (推奨されません)、[有効期間 (日)] ボックスを空のままにします。
- [Generate](生成) をクリックします。
- 表示されたトークンを安全な場所にコピーし、[完了] をクリックします。
Note
コピーしたトークンは必ず安全な場所に保存してください。 コピーしたトークンは他人に見せないでください。 コピーしたトークンを失った場合、それとまったく同じトークンは再生成できません。 代わりに、この手順を繰り返して新しいトークンを作成する必要があります。 コピーしたトークンを紛失した場合や、トークンが侵害されていると思われる場合、Databricks では、[アクセス トークン] ページのトークンの横にあるごみ箱 ([取り消し]) アイコンをクリックして、ワークスペースからそのトークンをすぐに削除することを強くお勧めします。
ワークスペースでトークンを作成することや使用することができない場合は、ワークスペース管理者によってトークンが無効にされているか、トークンを作成または使用する権限が作業者に付与されていない可能性があります。 ワークスペース管理者に連絡するか、以下のトピックを参照してください。
サービス プリンシパル用の Azure Databricks 個人用アクセス トークン
サービス プリンシパルは、次のように、それ自体の Databricks の個人用アクセス トークン自体を作成できます。
この手順では、OAuth マシン間 (M2M) 認証または Microsoft Entra ID サービス プリンシパル認証を使用して、サービス プリンシパル認証用の Databricks CLI を設定し、それ自体の Azure Databricks 個人用アクセス トークンを生成することを前提としています。 「OAuth マシン間 (M2M) 認証」または「 Microsoft Entra ID サービス プリンシパル認証」を参照してください。
Databricks CLI を使用して次のコマンドを実行し、サービス プリンシパル用に別のアクセス トークンを生成します。
次のコマンドを実行します。
databricks tokens create --comment <comment> --lifetime-seconds <lifetime-seconds> -p <profile-name>
--comment
:オプションで、アクセス トークンの目的に関する意味のあるコメントで<comment>
を置き換えます。--comment
オプションが指定されていない場合は、コメントは生成されません。--lifetime-seconds
: オプションで、アクセス トークンが有効になる秒数で<lifetime-seconds>
を置き換えます。 たとえば、1 日は 86400 秒です。--lifetime-seconds
オプションが指定されていない場合、アクセス トークンはワークスペースの最大有効期間に設定されます。 既定では、ワークスペースの最大トークン有効期間は 730 日です。--profile-name
: オプションで、サービス プリンシパルとターゲット ワークスペースの認証情報を含む Azure Databricks 構成プロファイル名で<profile-name>
を置き換えます。-p
オプションが指定されていない場合、Databricks CLI はDEFAULT
という名前の構成プロファイルを検索して使用しようとします。
応答では、サービス プリンシパルのアクセス トークンである
token_value
の値をコピーします。コピーしたトークンは必ず安全な場所に保存してください。 コピーしたトークンは他人に見せないでください。 コピーしたトークンを失った場合、それとまったく同じトークンは再生成できません。 代わりに、この手順を繰り返して新しいトークンを作成する必要があります。
ワークスペースでトークンを作成することや使用することができない場合は、ワークスペース管理者によってトークンが無効にされているか、トークンを作成または使用する権限が作業者に付与されていない可能性があります。 ワークスペース管理者に連絡するか、以下の情報を参照してください。
Azure Databricks 個人用アクセス トークン認証を実行する
Azure Databricks 個人用アクセス トークン認証を構成するには、次の関連する環境変数、.databrickscfg
フィールド、Terraform フィールド、または Config
フィールドを設定する必要があります。
- Azure Databricks ホスト。対象の Azure Databricks のワークスペースごとの URL として指定されます (例:
https://adb-1234567890123456.7.azuredatabricks.net
)。 - Azure Databricks ユーザー アカウント用の Azure Databricks 個人用アクセス トークン認証。
Azure Databricks 個人用アクセス トークン認証を実行するには、関係ツールまたは SDK に基づいて、コード内に以下を統合します。
環境
ツールまたは SDK で特定の Azure Databricks 認証の種類に環境変数を使用するには、「Azure Databricks ツールと API の認証」またはツールまたは SDK のドキュメントを参照してください。 「クライアント統合認証の環境変数とフィールド」、および「クライアント統合認証のデフォルトの方法」も参照してください。
以下の環境変数を設定します。
DATABRICKS_HOST
。対象の Azure Databricks のワークスペースごとの URL に設定されます (例:https://adb-1234567890123456.7.azuredatabricks.net
)。DATABRICKS_TOKEN
トークン文字列に設定します。
プロファイル
ファイルで次のフィールドを使用して、Azure Databricks .databrickscfg
を作成または識別します 。 プロファイルを作成する場合は、プレースホルダーを適切な値に置き換えます。 ツールまたは SDK でプロファイルを使用するには、「Azure Databricks リソースへのアクセスの認証」またはツールまたは SDK のドキュメントを参照してください。 「クライアント統合認証の環境変数とフィールド」、および「クライアント統合認証のデフォルトの方法」も参照してください。
.databrickscfg
ファイルに次の値を設定してください。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net
)。
[<some-unique-configuration-profile-name>]
host = <workspace-url>
token = <token>
.databrickscfg
ファイルで上記の値を手動で設定する代わりに、次のように Databricks CLI を使用してこれらの値を設定できます。
Note
次の手順では、Databricks CLI を使って、 という名前で Azure Databricks DEFAULT
を作成します。 DEFAULT
構成プロファイルが既にある場合、この手順により既存の DEFAULT
構成プロファイルは上書きされます。
DEFAULT
構成プロファイルが既にあるか確認するには、また、それが存在する場合にこのプロファイルの設定を表示するには、Databricks CLI を使用してコマンド databricks auth env --profile DEFAULT
を実行してください。
DEFAULT
以外の名前で構成プロファイルを作成するには、次の DEFAULT
コマンドの --profile DEFAULT
の databricks configure
の部分を構成プロファイルの別の名前に置き換えます。
Databricks CLI を使って、Azure Databricks 個人用アクセス トークン認証を使う という名前の Azure Databricks
DEFAULT
を作成します。 そのためには、次のコマンドを実行します。databricks configure --profile DEFAULT
プロンプト [Databricks Host] には、Azure Databricks のワークスペースごとの URL (例:
https://adb-1234567890123456.7.azuredatabricks.net
) を入力します。プロンプト [Personal Access Token] には、お使いのワークスペースの Azure Databricks 個人用アクセス トークンを入力します。
CLI
Databricks CLI の場合は、databricks configure
コマンドを実行します。 プロンプトで、次の設定を入力します。
- Azure Databricks ホスト。対象の Azure Databricks のワークスペースごとの URL として指定されます (例:
https://adb-1234567890123456.7.azuredatabricks.net
)。 - Azure Databricks ユーザー アカウント用の Azure Databricks 個人用アクセス トークン認証。
詳細については、「Azure Databricks 個人用アクセス トークン認証」をご覧ください。
のインスタンスに接続するときには、
Note
Azure Databricks の個人用アクセス トークン認証は、次の Databricks Connect バージョンでサポートされています。
- Python の場合、Databricks Connect for Databricks Runtime 13.3 LTS 以降。
- Scala の場合、Databricks Connect for Databricks Runtime 13.3 LTS 以降。
Databricks Connect の場合、この記事の「プロファイル」セクションで指定されているように、Azure Databricks .databrickscfg
について、Databricks CLI を使用して ファイル内の値を設定します。
Note
次の手順では、Databricks CLI を使って、 という名前で Azure Databricks DEFAULT
を作成します。 DEFAULT
構成プロファイルが既にある場合、この手順により既存の DEFAULT
構成プロファイルは上書きされます。
DEFAULT
構成プロファイルが既にあるか確認するには、また、それが存在する場合にこのプロファイルの設定を表示するには、Databricks CLI を使用してコマンド databricks auth env --profile DEFAULT
を実行してください。
DEFAULT
以外の名前で構成プロファイルを作成するには、次のステップで示されているように DEFAULT
コマンドの --profile DEFAULT
の databricks configure
の部分を構成プロファイルの別の名前に置き換えます。
Databricks CLI を使って、Azure Databricks 個人用アクセス トークン認証を使う という名前の Azure Databricks
DEFAULT
を作成します。 そのためには、次のコマンドを実行します。databricks configure --configure-cluster --profile DEFAULT
プロンプト [Databricks Host] には、Azure Databricks のワークスペースごとの URL (例:
https://adb-1234567890123456.7.azuredatabricks.net
) を入力します。プロンプト [Personal Access Token] には、お使いのワークスペースの Azure Databricks 個人用アクセス トークンを入力します。
表示される使用可能なクラスターの一覧で、上方向および下方向キーを使用して、ワークスペース内のターゲット Azure Databricks クラスターを選択し、
Enter
キーを押します。 クラスターの表示名の任意の部分を入力して、使用可能なクラスターの一覧をフィルター処理することもできます。
Azure Databricks REST API を使用して個人用アクセス トークンを発行する
Azure Databricks には、AT を発行するための REST エンドポイント /api/2.0/token/create
が用意されています。 API の詳細については、「 ユーザー トークンの作成 」を参照してください。
REST API に特定の値を指定する必要があります。 次の例では、これらの値を設定します。
<databricks-instance>
を Databricks ワークスペースの URL に置き換えます。 たとえば、dbc-abcd1234-5678.cloud.databricks.com
のようにします。<your-existing-access-token>
を、新しいトークンを作成するアクセス許可を持つ既存の有効な PAT (文字列) に置き換えます。
これらのパラメーターの値を指定します。
comment
: 新しいトークンの説明。lifetime_seconds
: トークンの有効期間 (秒単位)。
curl -X POST https://<databricks-instance>/api/2.0/token/create \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
"comment": "New PAT using DB API",
"lifetime_seconds": <lifetime-of-pat-in-seconds>
}'
-d
フラグは、要求の JSON ペイロードを提供します。
成功すると、次のような応答ペイロードが返されます。
{
"access_token": "<your-newly-issued-pat>",
"token_type": "Bearer",
"expires_in": <the-duration-of-the-new-pat>
}
Databricks REST API への後続の呼び出しの Authorization ヘッダーで、応答から新しいトークンを指定します。 次に例を示します。
# This example uses a simple GET. For POST or other REST verbs, you may need to provide additional parameters.
curl -X GET "https://<databricks-instance>/api/2.0/<path-to-endpoint>" \
-H "Authorization: Bearer <your-new-pat>"
import requests
headers = {
'Authorization': 'Bearer <your-new-pat>'
}
# This example is for an HTTP GET operation.
response = requests.get('https://<databricks-instance>/api/2.0/<path-to-endpoint>', headers=headers)