個人用アクセス トークンの監視と取り消し
Databricks REST API に対して認証するために、ユーザーは個人用アクセス トークン (PAT) を作成し、それを REST API 要求で使用できます。 ユーザーは、サービスプリンシパルを作成し、それを個人用アクセス トークンと共に使用して、 ツールと自動化でDatabricksRESTAPIs CI/CDを呼び出すこともできます。この記事では、Databricks 管理者がワークスペースで個人用アクセス トークンを管理する方法について説明します。 個人用アクセス トークンを作成するには、「 Databricks 個人用アクセス トークン認証」を参照してください。
個人用アクセストークンの代わりに OAuth を使用する
Databricks では、セキュリティと利便性を高めるために、PAT の代わりに OAuth アクセス トークンを使用することをお勧めします。 Databricks は引き続きPATをサポートしますが、セキュリティリスクが高いため、アカウントの現在のPAT使用状況を監査し、ユーザーとサービスプリンシパルを OAuth アクセストークンに移行することをお勧めします。 OAuth自動化のサービスプリンシパルと共に使用する アクセス トークン (PAT ではなく) を作成するには、「Databricksを使用してサービス プリンシパルを使用して リソースへの無人アクセスを承認OAuth する」を参照してください。
Databricks では、次の手順で個人用アクセス トークンの露出を最小限に抑えることをお勧めします。
- ワークスペースで作成されたすべての新しいトークンの有効期間を短く設定します。 寿命は 90 日未満である必要があります。 デフォルトでは、すべての新しいトークンの最大有効期間は 730 日 (2 年) です。
- Databricks ワークスペースの管理者やユーザーと協力して、有効期間を短くしたトークンに切り替えます。
- これらの古いトークンが時間の経過とともに悪用されるリスクを減らすために、存続期間の長いトークンをすべて取り消します。 Databricks は、トークンが 90 日以上使用されていない場合、Databricks ワークスペースのすべての PAT を自動的に取り消します。
必要条件
個人用アクセストークンを管理するには、管理者である必要があります。
Databricks アカウント管理者は、アカウント全体で個人用アクセス トークンを監視および取り消すことができます。
Databricks ワークスペース管理者は、次の操作を実行できます。
- ワークスペースの個人用アクセス トークンを無効にします。
- トークンを作成して使用できる管理者以外のユーザーを制御します。
- 新しいトークンの最大有効期間を設定します。
- ワークスペース内のトークンを監視および取り消します。
ワークスペースで個人用アクセストークンを管理するには、プレミアム プランが必要です。
アカウント内のパーソナルアクセストークンを監視および取り消す
プレビュー
この機能は パブリック プレビュー段階です。
アカウント 管理者は、アカウント コンソールから個人用アクセス トークンを監視および取り消すことができます。 トークンを監視するクエリは、アカウント管理者がトークンレポートページを使用する場合にのみ実行されます。
-
アカウント管理者として、アカウントコンソールにログインします。
-
サイドバーで、 プレビュー をクリックします。
-
トグル
を使用して 、アクセストークンレポート を有効にします。
-
サイドバーで、 設定 と トークンレポート をクリックします。
トークンの所有者、ワークスペース、作成日、有効期限、およびトークンが最後に使用された日付でフィルタリングできます。 レポートの上部にあるボタンを使用して、非アクティブなプリンシパルのアクセストークンまたは有効期限のないアクセストークンをフィルタリングします。
-
レポートを CSV にエクスポートするには、 エクスポート をクリックします。
-
トークンを取り消すには、トークンを選択して 取り消し をクリックします。
ワークスペースの個人用アクセス トークン認証を有効または無効にする
個人用アクセストークン認証は、すべてのDatabricksワークスペースに対してデフォルトで有効になっています。 この設定は、ワークスペース設定ページで変更できます。
ワークスペースの個人用アクセストークンが無効になっている場合、個人用アクセストークンをDatabricksおよびワークスペースユーザーへの認証に使用することはできず、サービスプリンシパルは新しいトークンを作成できません。ワークスペースの個人用アクセストークン認証を無効にしても、トークンは削除されません。後でトークンを再度有効にすると、有効期限が切れていないトークンは使用できるようになります。
一部のユーザーに対してトークン アクセスを無効にする場合は、ワークスペースに対して個人用アクセス トークン認証を有効にしたままにし、ユーザーとグループに対してきめ細かなアクセス許可を設定できます。 「パーソナル アクセス トークンを作成および使用できるユーザーを制御する」を参照してください。
Partner Connect、パートナー integrations、およびサービスプリンシパルでは、ワークスペースで personal access token を有効にする必要があります。
ワークスペースの個人アクセストークンを作成および使用する機能を無効にするには、次の手順を実行します:
-
設定ページに移動します。
-
詳細設定 タブをクリックします。
-
パーソナルアクセストークン トグルをクリックします。
-
確認 をクリックします。
この変更が有効になるまで数秒かかる場合があります。
ワークスペース構成APIを使用して、ワークスペースの個人用アクセス トークンを無効にすることもできます。
パーソナル アクセス トークンを作成および使用できるユーザーを制御する
ワークスペース 管理者は、個人用アクセス トークンにアクセス許可を設定して、トークンを作成および使用できるユーザー、サービスプリンシパル、およびグループを制御できます。 個人用アクセス トークンのアクセス許可を構成する方法の詳細については、「 個人用アクセス トークンのアクセス許可を管理する」を参照してください。
新しい個人用アクセス トークンの最大有効期間を設定する
デフォルトでは、新しいトークンの最大有効期間は 730 日 (2 年) です。 ワークスペースの最大トークン有効期間を短く設定するには、 Databricks CLI または ワークスペース設定 APIを使用します。 この制限は、新しいトークンにのみ適用されます。
maxTokenLifetimeDays
を新しいトークンの最大トークン有効期間 (日数) に整数として設定します。例えば:
- Databricks CLI
- Workspace configuration API
databricks workspace-conf set-status --json '{
"maxTokenLifetimeDays": "90"
}'
curl -n -X PATCH "https://<databricks-instance>/api/2.0/workspace-conf" \
-d '{
"maxTokenLifetimeDays": "90"
}'
maxTokenLifetimeDays
を 0 に設定すると、最大 730 日 (2 年) の有効期間で新しいトークンを作成できます。
Databricks Terraform プロバイダーを使用してワークスペース内の新しいトークンの最大有効期間を管理するには、ワークスペース リソースを参照してください。
ワークスペース内のトークンの監視と取り消し
このセクションでは、ワークスペース管理者が 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