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

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

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

重要

ユーザー名とパスワードによる認証 (トークンなし) は、2024 年 7 月 10 日にサポートが終了しました。Databricks では、OAuth の方がセキュリティが強化されるため、ユーザー アカウント認証には PAT ではなく OAuth を使用することを強くお勧めします。OAuth を使用して Databricks ユーザー アカウントで認証する方法については、 OAuth を使用して Databricks へのユーザー アクセスを承認するを参照してください。

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

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

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

  1. Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [設定] を選択します。
  2. [開発者] をクリックします。
  3. [アクセストークン] の横にある [管理] をクリックします。
  4. [新規トークンを生成] をクリックします。
  5. 今後、このトークンを識別するのに役立つコメントを入力します。
  6. トークンの有効期間を日数で設定します。「新しい個人アクセス権の最大有効期間を設定する」を参照してください。
  7. トークンの権限を制限するには、トークンの種類を選択し、APIスコープを追加します。スコープ付き個人アクセストークンを参照してください。
  8. [生成] をクリックします。
  9. 表示されたトークンを安全な場所にコピーし、 「完了」 をクリックします。トークンを安全に保存し、共有しないでください。紛失した場合は、新しいトークンを作成する必要があります。

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

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

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

警告

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

ワークスペース UI でスコープ付きのウイルスを作成するには、新しいウイルスを生成するときにウイルス タイプを選択し、 APIスコープを追加します。 スコープを割り当てない場合、トークンは作成者のIDの完全な権限を保持します。

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

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

ワークスペース管理者がサービスプリンシパルの初期 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>トークンに割り当てるスコープのリスト。スコープ付き個人アクセストークンを参照してください。
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"
]
}'

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

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"
}'

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

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