监视和撤销个人访问令牌

若要向 Azure Databricks REST API 进行身份验证,用户可以创建个人访问令牌(PAT),并将其用于 REST API 请求。 用户还可以创建服务主体并将其与个人访问令牌配合使用,以在其 CI/CD 工具和自动化中调用 Azure Databricks REST API。 本文介绍如何在 Azure Databricks 管理员的工作区中管理个人访问令牌。 若要创建个人访问令牌,请参阅 Azure Databricks 个人访问令牌身份验证

使用 OAuth 而不是个人访问令牌

Databricks 建议使用 OAuth 访问令牌而不是 PAT,以便提高安全性和便利性。 Databricks 继续支持 PAT,但由于其安全风险更大,建议审核帐户的当前 PAT 使用情况,并将用户和服务主体迁移到 OAuth 访问令牌。 若要创建 OAuth 访问令牌(而不是 PAT)以便在自动化中与服务主体配合使用,请参阅使用 OAuth (OAuth M2M) 通过服务主体对 Azure Databricks 的访问进行身份验证

Databricks 建议通过以下步骤最大程度地减少个人访问令牌公开:

  1. 为工作区中创建的所有新令牌设置短生存期。 生存期应小于 90 天。
  2. 请与 Azure Databricks 工作区管理员和用户合作,切换到生存期较短的令牌。
  3. 撤销所有生存期较长的令牌,以减少这些旧令牌随时间推移被滥用的风险。 Databricks 自动撤销在 90 天或更多天内未使用的个人访问令牌。

若要评估自己组织的 PAT 使用情况并计划从 PAT 迁移到 OAuth 访问令牌,请参阅 评估 Databricks 帐户中的个人访问令牌使用情况

要求

  • 必须是 Azure Databricks 工作区管理员才能禁用工作区的个人访问令牌、监视和撤销令牌、控制哪些非管理员用户可以创建令牌和使用令牌,并为新令牌设置最长生存期。
  • Azure Databricks 工作区必须采用高级计划

为工作区启用或禁用个人访问令牌身份验证

默认情况下,将为在 2018 年或之后创建的所有 Azure Databricks 工作区启用个人访问令牌身份验证。 可以在工作区设置页中更改此设置。

为工作区禁用个人访问令牌时,个人访问令牌不能用于向 Azure Databricks 进行身份验证,工作区用户和服务主体无法创建新令牌。 为工作区禁用个人访问令牌身份验证时,不会删除任何令牌。 如果以后重新启用令牌,则任何未过期的令牌都会变得可供使用。

如果要对部分用户禁用令牌访问权限,可以始终为该工作区启用个人访问令牌身份验证,并为用户和组设置细化的权限。 请参阅 控制谁可以创建和使用个人访问令牌

警告

Partner Connect合作伙伴集成需要在工作区启用个人访问令牌。

要禁用为工作区创建和使用个人访问令牌的功能:

  1. 转到设置页

  2. 单击“高级” 选项卡。

  3. 单击“个人访问令牌”切换开关。

  4. 单击“确认” 。

    此更改可能需要几秒钟的时间才能生效。

还可以使用工作区配置 API 来禁用工作区的个人访问令牌。

控制谁可以创建和使用个人访问令牌

工作区管理员可以设置对个人访问令牌的权限,以控制哪些用户、服务主体和组可以创建和使用令牌。 有关如何配置个人访问令牌权限的详细信息,请参阅管理个人访问令牌权限

设置新个人访问令牌的最大生存期

您可以使用 Databricks CLI工作区配置 API 在工作区中管理新令牌的最长生存期。 此限制仅适用于新令牌。

注意

Databricks 自动撤销未使用 90 天或更多天的个人访问令牌。 只要令牌被主动使用,Databricks 将不会撤销生存期超过 90 天的令牌。

作为安全最佳做法,Databricks 建议通过 PAT 使用 OAuth 令牌。 如果要将身份验证从 PAT 过渡到 OAuth,Databricks 建议使用生存期较短的令牌来增强安全性。

maxTokenLifetimeDays 设置为新令牌的最长令牌生存期(以天为单位的整数)。 如果将其设置为零,则允许新令牌无生存期限制。 例如:

Databricks CLI

databricks workspace-conf set-status --json '{
  "maxTokenLifetimeDays": "90"
}'

工作区配置 API

curl -n -X PATCH "https://<databricks-instance>/api/2.0/workspace-conf" \
  -d '{
  "maxTokenLifetimeDays": "90"
  }'

若要使用 Databricks Terraform 提供程序管理工作区中新令牌的最长生存期,请参阅 databricks_workspace_conf 资源

监视和撤销令牌

本部分介绍如何使用 Databricks CLI 管理工作区中的现有令牌。 还可以使用令牌管理 API。 Databricks 自动撤销在 90 天或更多天内未使用的个人访问令牌。

获取工作区的令牌

若要获取工作区的令牌,请执行以下操作:

Python

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'))

Bash

# 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

删除(撤销)令牌

若要删除令牌,请将 TOKEN_ID 替换为要删除的令牌的 ID:

databricks token-management delete TOKEN_ID