Databricks個人用アクセストークン認証

Databrickspersonal アクセストークン (PAT) は、APIs Databricksワークスペース レベルでリソースと へのアクセスを認証するために使用されます。認証情報や関連情報 (環境変数や Databricks 設定プロファイルなど) の多くのストレージメカニズムは、 Databricks 個人用アクセストークンをサポートしています。 ユーザーは Databricks ワークスペースに複数の個人用アクセストークンを持つことができますが、各個人用アクセストークンは 1 つの Databricks ワークスペースでのみ機能します。 ユーザーあたりの個人用アクセストークンの数は、ワークスペースごとに 600 に制限されています。

Databricks は、90 日以上使用されていない個人用アクセストークンを自動的に取り消します。

重要

Databricks では、OAuth のセキュリティが向上しているため、ユーザー アカウント クライアントの認証と承認に PAT の代わりに OAuth を使用することをお勧めします。 OAuth を使用して Databricks ユーザーアカウントでクライアント認証を実行する方法については、「 OAuth を使用してユーザーアカウントで Databricks へのアクセスを認証する (OAuth U2M) (ユーザーアカウント認証用)」を参照してください。

Databricks のユーザー名とパスワードを使用した基本 (トークンベースではない) 認証は、2024 年 7 月 10 日にサポートが終了しました。

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

ワークスペースユーザー用のDatabricks個人用アクセストークン

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

  1. Databricksワークスペースで、上部バーにあるDatabricksユーザー名をクリックし、ドロップダウンから [設定] を選択します。

  2. [開発者] をクリックします。

  3. [アクセストークン] の横にある [管理] をクリックします。

  4. [新規トークンを生成] をクリックします。

  5. (任意)今後このトークンを識別するのに役立つコメントを入力し、トークンのデフォルトの有効期間である90日を変更します。有効期間のないトークンを作成するには(非推奨)、[有効期間(日)] ボックスを空白のままにしてください。

  6. [生成] をクリックします。

  7. 表示されたトークンを安全な場所にコピーし、[完了] をクリックします。

注:

コピーしたトークンは必ず安全な場所に保存してください。コピーしたトークンを他のユーザーと共有しないでください。コピーしたトークンを紛失した場合、まったく同じトークンを再生成することはできません。代わりに、この手順を繰り返して新しいトークンを作成する必要があります。コピーしたトークンを紛失した場合、またはトークンが漏洩したと思われる場合は、[アクセストークン] ページでトークンの横にあるゴミ箱([取り消し])アイコンをクリックして、直ちにそのトークンをワークスペースから削除することを強くお勧めします。

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

サービスプリンシパル用のDatabricks個人用アクセストークン

ステップ 1:Databricks Databricks管理者として、 から サービスプリンシパルの PAT を作成しますCLI

ワークスペース管理者は、次のようにDatabricks を使用して、サービスプリンシパルに代わって 個人用アクセストークンを作成できます。CLI

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

  2. DatabricksサービスプリンシパルのアプリケーションIDを取得します(まだ取得していない場合)。

    1. ワークスペースの管理コンソールがまだ開いていない場合は、ワークスペースの上部のバーにあるユーザー名をクリックし、[設定] をクリックします。

    2. [ワークスペース管理]で、[IDとアクセス]をクリックします。

    3. サービスプリンシパルの横にある[管理]をクリックします。

    4. Databricksサービスプリンシパルの名前をクリックして、その設定ページを開きます。名前が表示されない場合は、サービスプリンシパルのフィルターを使用して検索してください。

    5. [構成]タブで、アプリケーションIDの値を書き留めます。

  3. Databricks CLIを使用して次のコマンドを実行します。これにより、Databricksサービスプリンシパルのアクセストークンが生成されます。

    次のコマンドを実行します。

    databricks token-management create-obo-token <application-id> --lifetime-seconds <lifetime-seconds> --comment <comment> -p <profile-name>
    
    • <application-id> をDatabricksサービスプリンシパルのアプリケーションIDに置き換えます。

    • --lifetime-seconds: <lifetime-seconds> を、アクセストークンが有効な秒数に置き換えます。 たとえば、1 日は 86400 秒です。 --lifetime-seconds オプションが指定されていない場合、アクセストークンは無期限に設定されます (推奨されません)。

    • --comment: <comment> をアクセストークンの目的に関する意味のあるコメントに置き換えます。 --commentオプションが指定されていない場合、コメントは生成されません。

    • --profile-name: <profile-name> を、Databricks サービスプリンシパルとターゲット ワークスペースの認証情報を含む Databricks 構成プロファイルの名前に置き換えます。-p オプションが指定されていない場合、Databricks CLI は DEFAULTという名前の構成プロファイルを検索して使用しようとします。

  4. レスポンス内の、Databricksサービスプリンシパルのアクセストークンであるtoken_valueの値をコピーします。

    コピーしたトークンは必ず安全な場所に保存してください。コピーしたトークンを他のユーザーと共有しないでください。コピーしたトークンを紛失した場合、まったく同じトークンを再生成することはできません。代わりに、この手順を繰り返して新しいトークンを作成する必要があります。

    ワークスペースでトークンを作成または使用できない場合は、ワークスペース管理者がトークンを無効にしたか、トークンを作成または使用する権限を与えていないことが原因である可能性があります。ワークスペース管理者に問い合わせるか、以下をご覧ください。

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

Databricks サービスプリンシパルの PAT を作成したら、その PAT を使用して、次のようにサービスプリンシパルの追加の Databricks personal アクセストークンを作成できます。

この手順は、Databricksサービスプリンシパルに対する最初のDatabricks個人アクセストークンがすでに生成されていることを前提としています。このアクセストークンを使用してDatabricks CLIを設定し、Databricksサービスプリンシパルを認証し、それ自体に対して追加のアクセストークンを生成できるようにします。「Databricks個人アクセストークン認証」を参照してください。

  1. Databricks CLIを使用して次のコマンドを実行すると、Databricksサービスプリンシパルに対する別のアクセストークンが生成されます。

    次のコマンドを実行します。

    databricks tokens create --comment <comment> --lifetime-seconds <lifetime-seconds> -p <profile-name>
    
    • --comment: <comment> をアクセストークンの目的に関する意味のあるコメントに置き換えます。 --commentオプションが指定されていない場合、コメントは生成されません。

    • --lifetime-seconds: <lifetime-seconds> を、アクセストークンが有効な秒数に置き換えます。 たとえば、1 日は 86400 秒です。 --lifetime-seconds オプションが指定されていない場合、アクセストークンは無期限に設定されます (推奨されません)。

    • --profile-name: <profile-name> を、Databricks サービスプリンシパルとターゲット ワークスペースの認証情報を含む Databricks 構成プロファイルの名前に置き換えます。-p オプションが指定されていない場合、Databricks CLI は DEFAULTという名前の構成プロファイルを検索して使用しようとします。

  2. レスポンス内の、Databricks サービスプリンシパルのアクセストークンである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 構成プロファイル を作成または識別し、 .databrickscfg ファイルに次のフィールドを含めます。 プロファイルを作成する場合は、プレースホルダを適切な値に置き換えます。 ツールまたは SDK でプロファイルを使用するには、「 Databricks リソースへのアクセスを認証 する」またはツールまたは SDK のドキュメントを参照してください。 クライアント統合認証の環境変数とフィールドおよびクライアント統合認証のデフォルト方式も参照してください。

.databrickscfgファイルに以下の値を設定します。この場合、ホストはDatabricksワークスペースのURLとなります(例:https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

[<some-unique-configuration-profile-name>]
host  = <workspace-url>
token = <token>

.databrickscfgファイルに前述の値を手動で設定する代わりに、次のようにDatabricks CLIを使用してこれらの値を設定できます。

注:

次の手順では、Databricks CLIを使用して、 DEFAULTという名前のDatabricks構成プロファイルを作成します。すでにDEFAULT構成プロファイルをお持ちの場合、この手順により既存のDEFAULT構成プロファイルが上書きされます。

DEFAULT構成プロファイルが既に存在するかどうかを確認し、存在する場合にこのプロファイルの設定を表示するには、Databricks CLIを使用してコマンドdatabricks auth env --profile DEFAULTを実行します。

DEFAULT以外の名前の構成プロファイルを作成するには、次のdatabricks configureコマンドの --profile DEFAULTDEFAULT の部分を、構成プロファイルの別の名前に置き換えてください。

  1. この を使用して、 個人用アクセストークン認証を使用する DatabricksCLIという名前のDatabricks 構成プロファイル を作成します。DEFAULTDatabricksこれを行うには、次のコマンドを実行します。

    databricks configure --profile DEFAULT
    
  2. プロンプトDatabricks Hostに、Databricksワークスペース インスタンスのURLを入力します (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

  3. プロンプトのPersonal Access Tokenに、ワークスペースのDatabricks個人用アクセストークンを入力します。

Databricks CLIの場合は、databricks configureコマンドを実行します。プロンプトで、次の設定を入力します。

  • ターゲットDatabricksワークスペースのURLとして指定されたDatabricksホスト(例:https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

  • DatabricksユーザーアカウントまたはDatabricksサービスプリンシパルのDatabricks個人用アクセストークン。

詳細については、「Databricks個人用アクセストークン認証」を参照してください。

注:

Databricks個人用アクセストークン認証は、次の Databricks Connectバージョンでサポートされています。

  • Pythonの場合、Databricks Connect for Databricks Runtime 13.3 LTS以降。

  • Scalaの場合、Databricks Connect for Databricks Runtime 13.3 LTS以降。

Databricks Connectでは、Databricks CLIを使用して、この記事の「プロファイル」セクションで指定されているDatabricksワークスペースレベルの操作のために、.databrickscfgファイルの値を以下のように設定することができます。

注:

次の手順では、Databricks CLIを使用して、 DEFAULTという名前のDatabricks構成プロファイルを作成します。すでにDEFAULT構成プロファイルをお持ちの場合、この手順により既存のDEFAULT構成プロファイルが上書きされます。

DEFAULT構成プロファイルが既に存在するかどうかを確認し、存在する場合にこのプロファイルの設定を表示するには、Databricks CLIを使用してコマンドdatabricks auth env --profile DEFAULTを実行します。

DEFAULT 以外の名前の設定プロファイルを作成するには、次のステップに示すように databricks configure コマンドの --profile DEFAULTDEFAULT の部分を、設定プロファイルの別の名前に置き換えてください。

  1. この を使用して、 個人用アクセストークン認証を使用する DatabricksCLIという名前のDatabricks 構成プロファイル を作成します。DEFAULTDatabricksこれを行うには、次のコマンドを実行します。

    databricks configure --configure-cluster --profile DEFAULT
    
  2. プロンプトDatabricks Hostに、Databricksワークスペース インスタンスのURLを入力します (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

  3. プロンプトのPersonal Access Tokenに、ワークスペースのDatabricks個人用アクセストークンを入力します。

  4. 表示される利用可能なクラスターのリストで、上矢印キーと下矢印キーを使用してワークスペース内の対象のDatabricksクラスターを選択し、 Enterを押します。クラスターの表示名の一部を入力して、利用可能なクラスターのリストを絞り込むこともできます。

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

Databricks には、PAT を発行するための 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 APIsへの呼び出しの 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)