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

Databricksの個人アクセスによる認証 (レガシー)

Databricks パーソナル アクセストークン (PAT) を使用すると、ワークスペース レベルでリソースと APIs に認証できます。 これらは、環境変数または Databricks 構成プロファイルに格納できます。各 PAT は 1 つのワークスペースに対してのみ有効であり、ユーザーはワークスペースごとに最大 600 個の PAT を作成できます。Databricks は、90 日間使用されていない PAT を自動的に取り消します。

重要

Databricksは、可能な限り、ユーザーアカウント認証にはPATではなくOAuthを使用することを推奨しています。OAuthはより強力なセキュリティを提供するためです。OAuthを使用してDatabricksユーザーアカウントで認証する方法については、 「OAuthを使用してDatabricksへのユーザーアクセスを承認する」を参照してください。

パーソナルアクセストークンを使用してDatabricksアカウント レベルの機能を自動化することはできません。 代わりに、 Databricksアカウント管理者ユーザー用のOAuthトークンまたはサービスプリンシパルのいずれかを使用してください。 詳細については、以下を参照してください。

ワークスペースユーザー用の個人アクセストークンを作成する​

Databricksワークスペース ユーザー用の個人アクセストークンを作成するには、次の手順を実行します。

  1. Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
  2. [開発者] をクリックします。
  3. [アクセストークン] の横にある [管理] をクリックします。
  4. [新規トークンを生成] をクリックします。
  5. 後でこのトークンを識別するのに役立つ名前を入力してください。
  6. トークンの有効期間を日数で設定します。「新しい個人アクセス権の最大有効期間を設定する」を参照してください。
  7. スコープの種類を選択し、APIスコープを追加します。Databricks SQLウェアに接続するツールTableauやPower BIなど)を選択する場合は BIツール」 を、スコープを手動で選択する場合は 「その他のAPIs を選択してください。 スコープ付き個人アクセストークンを参照してください。
  8. このトークンの自動スコープを有効にするには、 自動スコープトークン をオンにします。自動スコープ設定は、トークンのスコープをそれが使用するAPIに自動的に絞り込み、観察期間中は一時的にall-apisスコープを適用します。このオプションは、管理者がワークスペースの自動スコーププレビューを有効にしている場合にのみ表示され、自動スコープは有効期間が30日を超えるトークンにのみ適用されます。個人用アクセストークンの自動スコープを参照してください。
  9. [生成] をクリックします。
  10. 表示されたトークンを安全な場所にコピーし、 「完了」 をクリックします。トークンを安全に保存し、共有しないでください。紛失した場合は、新しいトークンを作成する必要があります。

トークンを作成または使用できない場合は、ワークスペース管理者がトークンを無効にしているか、権限を付与していない可能性があります。ワークスペース管理者または次の担当者に問い合わせてください。

スコープ付き個人アクセストークン​

スコープ付き個人アクセストークンは、トークンの権限を特定のAPI操作に制限します。ワークスペースへの完全なアクセスを許可する代わりに、 sql 、 unity-catalog 、 scimなどの1つ以上のAPIスコープを割り当てて、トークンが呼び出すことができるREST API操作を制限します。

警告

authenticationスコープを使用する場合は、任意のスコープを使用して新しい Windows を作成できます。 このスコープは、他のトークンを管理する必要のあるトークンにのみ付与してください。

ワークスペース UI でスコープ付きのウイルスを作成するには、新しいウイルスを生成するときにスコープのタイプを選択し、 APIスコープを追加します。 Databricks SQLウェアに接続するツールTableauやPower BIなど)を選択する場合は BIツール」 を、スコープを手動で選択する場合は 「その他のAPIs を選択してください。

スコープとその関連API操作の完全なリストについては、 「APIスコープ」を参照してください。

個人アクセストークンの自動スコープ​

自動スコープにより、トークンの権限がアクティブに使用する APIs のみに自動的に絞り込まれます。Databricks は 30 日間にわたってトークンの API 使用状況を監視し、推論されたスコープを適用します。自動スコープは、トークンごとに 1 回実行されます。観察期間中、トークンは完全なワークスペース アクセス (all-apis スコープ) を維持します。Databricks は、強制適用の 7 日前にリマインダー Eメールを送信し、推論されたスコープが適用されたときに強制適用 Eメールを送信します。

自動スコープ処理のコントロール​

  • ワークスペース プレビュー (管理者による制御):管理者は、アカウント コンソールまたはワークスペースの プレビュー ページから、ワークスペース全体の自動スコープ設定プレビューを有効または無効にします。「Databricks プレビューの管理」を参照してください。
  • トークン単位の設定 (autoscope_enabled): プレビューが有効な場合、各トークンは作成時に個別にオプトインまたはオプトアウトします。

自動スコープ機能は、有効期間が30日を超えるトークンにのみ適用されます。これには、自動スコープを有効にして作成された新しいトークンと、既存の長期間有効なトークンの両方が含まれます。既存の対象トークンの場合、30日間の観察期間は管理者がプレビューを有効にしたときに起動されます。Databricksは、その期間の終了時に推論されたスコープを適用し、適用日の7日前にリマインダーのEメールを送信します。これは、新しく作成された自動スコープ付きトークンと同じスケジュールです。

自動スコープからオプトアウトする​

  • 適用前の1つのトークン : ワークスペース UI( [設定] > [開発者] > [アクセストークン] > [管理] の順に選択し、 [トークンの更新] をクリック)またはトークン API を使用して、トークンを特定のスコープに設定します(個人用アクセストークンのスコープの更新を参照してください)。特定のスコープを設定すると、そのトークンの自動スコープが永続的に停止します。トークンを all-apis スコープ(空の scopes 配列)に戻す操作は何も行われず、自動スコープは停止 しません 。自動スコープが適用されない、フル all-apis アクセス権を持つトークンを維持するには、自動スコープを無効にして新しいトークンを作成します。
  • ワークスペース全体 :管理者に依頼して、 [プレビュー] ページで自動スコープ指定のプレビューをオフにしてもらいます。Databricks プレビューの管理を参照してください。

適用が完了すると、そのトークンに対して自動スコープ設定が再度実行されないため、all-apisを含めてスコープを自由に設定できます。

注記

ワークスペースUIのオプトアウトは、所有しているトークンでのみ機能します。Service Principal のトークンをオプトアウトするには、代わりに PATCH /api/2.0/token/{token_id_sha256} 要求でそのスコープを設定します。

トークンの自動スコープ処理のステータスと推論されたスコープを確認するには、「トークンの自動スコープ処理ステータスの確認」を参照してください。

サービスプリンシパルのパーソナルアクセストークンを作成する​

ワークスペース管理者がサービスプリンシパルの初期 PAT を作成すると、サービスプリンシパルはそれ自体に追加のセキュリティを作成できます。

ステップ 1: サービスプリンシパルの PAT を作成する​

ワークスペース管理者として、サービスプリンシパルに代わってDatabricks個人アクセス権を作成します。

  1. まだ構成されていない場合は、Databricks CLI の認証を設定します。

  2. Databricksサービスプリンパルシのアプリケーション ID を取得します。

    1. 上部のバーにあるユーザー名をクリックし、 [設定] をクリックします。
    2. [ワークスペース管理者] で、 [アイデンティティとアクセス] > [管理] ( サービスプリンシパル の横) をクリックします。
    3. Databricksサービスプリンシパル名をクリックして設定ページを開きます。
    4. [ 構成 ]タブで、 アプリケーションID の値を書き留めます。
  3. 次のコマンドを実行してアクセス許可を生成します。

    Bash
    databricks token-management create-obo-token \
    <application-id> \
    --lifetime-seconds <lifetime-seconds> \
    -p <profile-name>

    次の値を置き換えます。

    • <application-id>: DatabricksサービスプリンシパルのアプリケーションID。
    • <lifetime-seconds>: トークンの有効期間(秒単位)。たとえば、1 日の場合は 86400 です。デフォルトではワークスペースの最大値 (通常は 730 日) に設定されます。
    • <profile-name>: 認証情報を含む構成プロファイル。デフォルトはDEFAULTです。
  4. 応答で、 Databricksサービスプリンシパルのアクセス権であるtoken_valueをコピーします。 トークンを安全に保存し、共有しないでください。紛失した場合は、新しいトークンを作成する必要があります。

トークンを作成または使用できない場合は、ワークスペース管理者がトークンを無効にしているか、権限を付与していない可能性があります。ワークスペース管理者または次の担当者に問い合わせてください。

ステップ 2: サービスプリンシパルの追加の PAT を作成する​

既存の PAT を使用して、サービスプリンシパル用の追加のトークンを作成します。

  1. 次のコマンドを実行してアクセス許可を生成します。

    Bash
    databricks tokens create \
    --lifetime-seconds <lifetime-seconds> \
    -p <profile-name>

    次の値を置き換えます。

    • <lifetime-seconds>: トークンの有効期間(秒単位)。たとえば、1 日の場合は 86400 です。デフォルトではワークスペースの最大値 (通常は 730 日) に設定されます。
    • <profile-name>: 認証情報を含む構成プロファイル。デフォルトはDEFAULTです。
  2. 応答からtoken_valueコピーします。これは、 Databricksサービスプリンシパルのアクセストークンです。 トークンを安全に保存し、共有しないでください。紛失した場合は、新しいトークンを作成する必要があります。

トークンを作成または使用できない場合は、ワークスペース管理者がトークンを無効にしているか、権限を付与していない可能性があります。ワークスペース管理者または次の担当者に問い合わせてください。

個人アクセストークン認証を実行する​

Databricksの個人アクセストークン認証を構成するには、次の関連する環境変数、 .databrickscfgフィールド、 Terraformフィールド、またはConfigフィールドを設定します。

  • ターゲット Databricks ワークスペース URL として指定される Databricks ホスト (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com.
  • DatabricksユーザーアカウントまたはDatabricksサービスプリンシパルのDatabricks個人用アクセストークン。

Databricks個人用アクセストークン認証を実行するには、参加しているツールまたはSDKに基づいてコード内に以下を統合します。

ツールまたは SDK で特定の Databricks 認証の種類に環境変数を使用するには、 「Databricks リソースへのアクセスの承認」またはツールまたは SDK のドキュメントを参照してください。統合認証の環境変数とフィールド、および認証方法の優先順位も参照してください。

次の環境変数を設定します。

  • DATABRICKS_HOSTで、Databricks ワークスペース URL ( https://dbc-a1b2345c-d6e7.cloud.databricks.comなど) に設定します。
  • DATABRICKS_TOKENは、トークン文字列に設定されます。

Databricks REST API を使用して個人用アクセス トークンを発行する​

Databricks には、PAT を発行するための REST エンドポイント /api/2.0/token/create が用意されています。 API の詳細については、「ユーザー トークンの作成 」を参照してください。

次の例では、次の値を設定します。

  • <databricks-instance>: Databricks ワークスペースの URL。たとえば、 dbc-abcd1234-5678.cloud.databricks.com 。
  • <your-existing-access-token>: 新しいトークンを作成する権限を持つ既存の有効な PAT (文字列)。
  • <lifetime-seconds>: トークンの有効期間 (秒単位)。
  • <scopes>:トークンに割り当てるスコープのリスト、またはワークスペースへのフルアクセス(all-apis スコープ)を付与するための空の配列([])。スコープ付き個人用アクセストークンを参照してください。
Bash
curl -X POST https://<databricks-instance>/api/2.0/token/create \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
"lifetime_seconds": <lifetime-seconds>,
"scopes": [
"sql",
"authentication"
],
"autoscope_enabled": true
}'

成功すると、次のような応答ペイロードが生成されます。

JSON
{
"token_value": "<your-newly-issued-pat>",
"token_info": {
"token_id": "<token-id>",
"creation_time": <creation-timestamp>,
"expiry_time": <expiry-timestamp>,
"comment": "<comment>",
"scopes": ["authentication", "sql"],
"last_accessed_time": 0
}
}

応答からの新しいトークンを、後続の Databricks REST APIへの呼び出しの Authorization ヘッダーに指定します。 例えば:

Bash
# 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>"
Python
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)

個人アクセストークンのスコープを更新する​

スコープ付きトークンにAPI呼び出しに必要なスコープが欠けている場合、リクエストはスコープの不足を示すエラーで失敗します。トークンのスコープを更新するには、RESTエンドポイント/api/2.0/token/<token_id>を使用します。呼び出し元には、他の Windows の管理を許可するauthenticationスコープが必要です。 更新するトークンフィールドを指定するには、 update_maskフィールドを使用します。

Bash
curl -X PATCH https://<databricks-instance>/api/2.0/token/<token_id> \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
"token": {
"scopes": ["sql", "unity-catalog"]
},
"update_mask": "scopes"
}'

トークンに完全なワークスペース アクセス権(all-apis スコープ)を付与するには、scopes を空の配列("scopes": [])に設定します。リテラル文字列 all-apis は受け入れられるスコープ値ではありません。

注記

Databricksでは、all-apisアクセスを付与する代わりに特定のスコープを割り当てることが推奨されています。「パーソナルアクセストークンの自動スコープ設定」を参照してください。

スコープの変更が反映されるまでには、最大10分かかる場合があります。

利用可能なすべてのスコープを表示するには、 GET /api/2.0/token-scopesを使用します。