個人用アクセス トークンの監視と取り消し
Databricks REST APIに対して認証するために、ユーザーは個人アクセス ノート (PAT) を作成し、それをREST APIリクエストで使用できます。 ユーザーは、サービスプリンシパルを作成し、それを個人的なアクセストークンとともに使用して、 CI/CDツールおよび自動化でDatabricks REST APIを呼び出すこともできます。 この記事では、 Databricks管理者がワークスペースで個人のアクセス権を管理する方法について説明します。 個人アクセストークンを作成するには、 Databricksの個人アクセストークンによる認証 (レガシー)を参照してください。
個人用アクセストークンの代わりに OAuth を使用する
Databricksでは、セキュリティと利便性を高めるために、PATの代わりにOAuthアクセストークンを使用することをお勧めします。Databricksは引き続きPATをサポートしますが、セキュリティリスクが高いため、アカウントの現在のPAT使用状況を監査し、ユーザーとService PrincipalをOAuthアクセストークンに移行することをお勧めします。OAuth自動化のサービスプリンシパルと共に使用する アクセス トークン (PAT ではなく) を作成するには、OAuthを使用してDatabricksサービスプリンシパルによるDatabricksへのアクセスを承認するを参照してください。
Databricks では、次の手順で個人用アクセス トークンの露出を最小限に抑えることをお勧めします。
- ワークスペースで作成されたすべての新しいトークンの有効期間を短く設定します。 寿命は 90 日未満である必要があります。 デフォルトでは、すべての新しいトークンの最大有効期間は 730 日 (2 年) です。
- Databricks ワークスペースの管理者やユーザーと協力して、有効期間を短くしたトークンに切り替えます。
- これらの古いトークンが時間の経過とともに悪用されるリスクを減らすために、存続期間の長いトークンをすべて取り消します。Databricks は、トークンが 90 日以上使用されていない場合、Databricks ワークスペースのすべての PAT を自動的に取り消します。
必要条件
個人用アクセストークンを管理するには、管理者である必要があります。
Databricksアカウント管理者は、アカウント全体で個人のアクセス権を監視し、取り消すことができます。
Databricks ワークスペース管理者は、次の操作を実行できます。
- ワークスペースの個人用アクセス トークンを無効にします。
- トークンを作成して使用できる管理者以外のユーザーを制御します。
- 新しいトークンの最大有効期間を設定します。
- ワークスペース内のトークンを監視および取り消します。
ワークスペースでパーソナルアクセストークンを管理するには、プレミアムプラン以上が必要です。
アカウント内のパーソナルアクセストークンを監視および取り消す
アカウント 管理者は、アカウント コンソールから個人用アクセス トークンを監視および取り消すことができます。 トークンを監視するクエリは、アカウント管理者がトークンレポートページを使用する場合にのみ実行されます。
-
アカウント管理者として、アカウントコンソールにログインします。
-
サイドバーで、 セキュリティ と トークンのレポート をクリックします。
トークンの所有者、ワークスペース、作成日、有効期限、およびトークンが最後に使用された日付でフィルタリングできます。 レポートの上部にあるボタンを使用して、非アクティブなプリンシパルのアクセストークンまたは有効期限のないアクセストークンをフィルタリングします。
-
レポートを CSV にエクスポートするには、 エクスポート をクリックします。
-
トークンを取り消すには、トークンを選択して 取り消し をクリックします。
ワークスペースの個人用アクセス トークン認証を有効または無効にする
個人用アクセストークン認証は、すべてのDatabricksワークスペースに対してデフォルトで有効になっています。 この設定は、ワークスペース設定ページで変更できます。
ワークスペースの個人用アクセストークンが無効になっている場合、個人用アクセストークンをDatabricksおよびワークスペースユーザーへの認証に使用することはできず、サービスプリンシパルは新しいトークンを作成できません。ワークスペースの個人用アクセストークン認証を無効にしても、トークンは削除されません。後でトークンを再度有効にすると、有効期限が切れていないトークンは使用できるようになります。
一部のユーザーに対してトークン アクセスを無効にする場合は、ワークスペースに対して個人用アクセス トークン認証を有効にしたままにし、ユーザーとグループに対してきめ細かなアクセス許可を設定できます。 パーソナル アクセス トークンを作成および使用できるユーザーを制御するを参照してください。
Partner Connect、パートナー連携、およびサービスプリンシパルでは、ワークスペースで パーソナルアクセストークン を有効にする必要があります。
ワークスペースの個人アクセストークンを作成および使用する機能を無効にするには、次の手順を実行します:
-
設定ページに移動します。
-
詳細設定 タブをクリックします。
-
パーソナルアクセストークン トグルをクリックします。
-
確認 をクリックします。
この変更が有効になるまで数秒かかる場合があります。
ワークスペース構成APIを使用して、ワークスペースの個人用アクセス トークンを無効にすることもできます。
パーソナル アクセス トークンを作成および使用できるユーザーを制御する
ワークスペース 管理者は、個人用アクセス トークンにアクセス許可を設定して、トークンを作成および使用できるユーザー、サービスプリンシパル、およびグループを制御できます。 個人用アクセス トークンのアクセス許可を構成する方法の詳細については、「 個人用アクセス トークンのアクセス許可を管理する」を参照してください。
新しい個人アクセストークンの最大有効期間を設定する
デフォルトでは、新しいトークンの最大有効期間は 730 日 (2 年) です。Databricks CLIまたはワークスペース構成APIを使用して、ワークスペースの最大ライフタイムを短く設定します。 この制限は新しいトークンにのみ適用されます。
maxTokenLifetimeDays新しいトークンの最大有効期間(日数)の整数に設定します。例えば:
- Databricks CLI
- Workspace configuration API
- Terraform
databricks workspace-conf set-status --json '{
"maxTokenLifetimeDays": "90"
}'
curl -n -X PATCH "https://<databricks-instance>/api/2.0/workspace-conf" \
-d '{
"maxTokenLifetimeDays": "90"
}'
Databricks Terraform プロバイダーを使用してワークスペース内の新しいトークンの最大有効期間を管理するには、ワークスペース リソースを参照してください。
maxTokenLifetimeDaysを"0"に設定すると、カスタム有効期間制限が削除され、システムのデフォルトの 730 日 (2 年) に戻ります。以前に構成したカスタム制限を無効にするには、この設定を使用します。
パーソナルアクセストークンの有効期限の通知
Databricks は、ワークスペースユーザーに、個人用アクセス トークンが期限切れになる約7日前に、Eメール通知を送信します。ユーザーは、これらの通知を受け取るには、Eメール形式のユーザー名である必要があります。Databricks は、同じワークスペース内にある有効期限切れのトークンをすべてまとめて、1通の Eメールで通知します。
サービスプリンシパルのトークンの有効期限通知
サービスプリンシパルトークンについては、Databricksは有効期限切れ通知をワークスペース管理者に送信します。通知は、有効期間が7日を超え、かつ一度以上使用されたサービスプリンシパルトークンにのみ送信されます。
これらの通知は、Service Principalのトークンにのみ適用されます。Databricksは、Service PrincipalのOAuthシークレットの有効期限に関する通知を送信しません。認証の失敗を防ぐため、各OAuthシークレットの有効期間を把握し、現在のシークレットの有効期限が切れる前に新しいシークレットを作成してください。ステップ1:OAuthシークレットを作成するを参照してください。
ワークスペース内のトークンの監視と取り消し
このセクションでは、ワークスペース管理者が Databricks CLI を使用してワークスペース内の既存のトークンを管理する方法について説明します。トークン管理 API を使用することもできます。Databricks は、90 日以上使用されていない個人用アクセス トークンを自動的に取り消します。
ワークスペースのトークンを取得する
ワークスペースのトークンを取得するには:
- Python
- Bash
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
spark.createDataFrame([token.as_dict() for token in w.token_management.list()]).createOrReplaceTempView('tokens')
display(spark.sql('select * from tokens order by creation_time'))
# Filter results by a user by using the `created-by-id` (to filter by the user ID) or `created-by-username` flags.
databricks token-management list
トークンを削除 (取り消し)
トークンを削除するには、トークンを削除するトークンの ID に置き換えます。
databricks token-management delete TOKEN_ID
トークンの自動スコープの状態を確認する
トークンの自動スコープの状態、推論されたスコープ、および適用されたスコープは、ワークスペースUIまたはトークンAPIを使用して確認できます。自動スコープの仕組みの概要については、個人用アクセストークンの自動スコープをご覧ください。
新しいトークンの場合、提案されたスコープをワークスペースUIで表示できます。すべてのAPIアクセス権を持つ既存のトークンについては、提案されたスコープはAPIを通じてのみ利用可能です。
- Workspace UI
- API
- Databricksワークスペースで、右上隅にあるユーザー名をクリックします。
- 設定 をクリックします。
- 左側のナビゲーションペインで、**[開発者]** をクリックします。
- Click アクセストークン > Manage .
- 各トークンの自動スコープの状態と、履歴または適用されたスコープを確認します。
GET /api/2.0/token/list を使用して、推論されたスコープと自動スコープの状態を確認します。
新しいトークン:応答には、現在の推測されるスコープを示すinferred_scopes と、現在の自動スコープの状態を示すautoscope_state が含まれます。
{
"token_infos": [
{
"token_id": "<token-id>",
"comment": "example autoscoping completed PAT",
"scopes": ["authentication"],
"autoscope_state": "AUTOSCOPE_STATE_COMPLETED",
"inferred_scopes": ["authentication"]
}
]
}
backfill_scopes**既存のトークン**:応答には、履歴API使用状況から推論されたスコープを示す フィールドが含まれます。
{
"token_infos": [
{
"token_id": "<token-id>",
"comment": "example existing all-apis PAT",
"backfill_scopes": ["authentication"]
}
]
}