監視和撤銷個人存取令牌
若要向 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 建議您使用下列步驟將個人存取令牌暴露程度降至最低:
- 為工作區中建立的所有新令牌設定簡短的存留期。 存留期應少於 90 天。
- 請與您的 Azure Databricks 工作區系統管理員和使用者合作,以切換至存留期較短的權杖。
- 撤銷所有長時間存在的權杖,以降低這些較舊權杖在一段時間後遭誤用的風險。 Databricks 會自動撤銷 90 天以上未使用的個人存取令牌。
若要評估您自己的組織中 PAT 的使用情況,並規劃從 PAT 移轉至 OAuth 存取權杖,請參閱評估 Databricks 帳戶中的個人存取權杖使用情況。
需求
- 您必須是 Azure Databricks 工作區管理員,才能停用工作區的個人存取令牌、監視和撤銷令牌、控制哪些非系統管理員使用者可以建立令牌和使用令牌,以及為新的令牌設定最大存留期。
- 您的 Azure Databricks 工作區必須使用進階方案。
為工作區啟用或停用個人存取權杖驗證
對於在 2018 年或之後建立的所有 Azure Databricks 工作區,依預設會啟用個人存取權杖驗證。 可以在工作區設定頁面中變更此設定。
停用工作區的個人存取權杖時,個人存取權杖無法用於驗證 Azure Databricks,而且工作區使用者和服務主體無法建立新權杖。 當您停用工作區的個人存取權杖驗證時,不會刪除任何權杖。 如果稍後重新啟用權杖,則任何未過期的權杖都可供使用。
如果您想要停用使用者子集的權杖存取,可以保持針對工作區啟用個人存取權杖驗證,並為使用者和群組設定微調權限。 請參閱 控制誰可以建立和使用個人存取令牌。
警告
Partner Connect 和 Partner Integrations 需要在工作區上啟用個人存取權杖。
若要停用為工作區建立和使用個人存取權杖的能力:
也可以使用工作區設定 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 取代為要刪除的權杖識別碼:
databricks token-management delete TOKEN_ID