管理 Databricks 工作的身分識別、權限和特權
本文包含管理 Databricks 工作身分識別和權限的建議和指示。
注意
Secrets 不會被遮蔽於叢集的 Spark 驅動程式記錄stdout
和串流stderr
中。 為了保護敏感數據,根據預設,Spark 驅動程式記錄只能由具有作業的 CAN MANAGE 許可權、專用存取模式和標準存取模式叢集的用戶檢視。 若要允許具有 CAN ATTACH TO 或 CAN RESTART 許可權的使用者檢視這些叢集上的記錄,請在叢集組態中設定下列 Spark 組態屬性:spark.databricks.acl.needAdminPermissionToViewLogs false
。
在「無隔離共用存取模式叢集」上,Spark 驅動程式記錄可由具有 CAN ATTACH TO 或 CAN MANAGE 權限的使用者檢視。 若要限制僅能由具有 CAN MANAGE 權限的使用者讀取記錄,請將 spark.databricks.acl.needAdminPermissionToViewLogs
設定為 true
。
請參閱 Spark 組態,以了解如何將 Spark 屬性新增至叢集組態。
工作的預設權限
工作預設會設定下列權限:
- 職位的創建者被授予「IS OWNER」許可權。
- 工作區系統管理員會被授與 CAN MANAGE 權限。
- 工作的建立者將設定為以執行方式的
。
職務的管理權限
根據預設,工作區管理員可以將工作擁有者或執行身分設定變更為工作區中的任何使用者或服務主體。 帳戶管理員可設定 RestrictWorkspaceAdmins
設定來變更此行為。 請參閱限制工作區管理員。
作業如何與 Unity 目錄許可權互動?
會以 [執行身分] 設定中的使用者身分執行工作。 此身分識別會根據下列權限授與進行評估:
- Unity Catalog 管理的資產,包括資料表、磁碟區、模型和視圖。
- 舊版Hive中繼存放區中註冊資產的舊版數據表訪問控制清單(ACL)。
- 計算、筆記本、查詢及其他工作區資產的存取控制清單(ACL)。
- Databricks 祕密。 請參閱機密管理。
注意
Unity Catalog 授權和舊版資料表 ACL 需要相容的計算存取模式。 請參閱設定工作所需的運算資源。
SQL 任務和權限
檔案任務是唯一可完全遵守 [執行身分] 識別的 SQL 任務類型。
SQL 查詢、警示和舊版儀表板任務會遵守已設定的共用設定。
- 以擁有者身分執行:排程的 SQL 任務執行一律使用所設定 SQL 資產擁有者的身分識別。
- 以檢視身分執行:排定的 SQL 工作總是使用在作業「使用身分」欄位中設定的身分識別來執行。
若要深入了解查詢共用設定,請參閱設定查詢權限。
範例
下列情境說明 SQL 共用設定與工作執行身分 Run as 設定的互動:
- 使用者 A 是名為
my_query
的 SQL 查詢擁有者。 - 使用者 A 將
my_query
設定為共用設定 執行身分為擁有者。 - 使用者 B 將
my_query
排程為名為my_job
的工作中的任務。 - 使用者 B 設定
my_job
,以名為prod_sp
的服務主體執行。 - 在
my_job
執行時,它會使用使用者 A 的身分識別來執行my_query
。
現在假設使用者 B 不想要此行為。 從現有的組態開始,將會發生下列情況:
- 使用者 A 將
my_query
的共用設定變更為 以檢視人員的身分執行。 - 在
my_job
執行時,它會使用識別prod_sp
。
配置任務執行的身分識別
若要變更執行身分設定,您必須擁有工作上的 CAN MANAGE 或 IS OWNER 權限。
您可以將 執行為 的設定調整為您自己,或將其設為在您擁有 服務主體使用者 權限的工作區中的任何服務主體。
若要在工作區 UI 中設定 "以 身分執行" 的設定,請按照下列步驟選擇一個現有的工作:
- 按一下側邊欄中的
[工作流程]。
- 在 [名稱] 欄中,點擊作業名稱。
- 在 [作業詳細資料] 側面板中,按下 [執行身分] 欄位旁的鉛筆圖示。
- 搜尋並選取使用者或服務主體。
- 按一下儲存。
如需有關使用服務主體的更多資訊,請參閱以下內容:
工作治理的最佳做法
Databricks 針對所有生產工作建議下列項目:
將工作所有權指派給服務主體
如果擁有工作的使用者離開您的組織,工作可能會失敗。 使用服務主體,使工作能夠抵禦員工流失。
根據預設,工作區管理員可管理工作權限,並視需要重新指派所有權。
使用服務主體執行生產工作
工作預設會使用工作擁有者的權限來執行。 如果您將所有權指派給服務主體,工作執行時會使用服務主體的權限。
使用生產工作的服務主體可讓您限制生產資料的寫入權限。 如果您使用使用者的權限執行工作,該使用者需要相同的權限,才能編輯工作所需的生產資料。
一律使用 Unity 目錄相容的計算組態
Unity 目錄數據控管需要您使用支援的計算組態。
作業和 SQL 倉儲的無伺服器計算一律使用 Unity 目錄。
對於具有傳統計算的作業,Databricks 會針對支援的工作負載建議標準存取模式。 視需要使用專用存取模式。
使用 Unity 目錄設定的 DLT 管線有一些限制。 請參閱限制。
限制生產工作的權限
觸發、停止或重新啟動工作執行的使用者需要 [可管理執行] 權限。
需要檢視工作設定或監控執行的使用者必須擁有可檢視權限。
只有將 能管理 或 是擁有者 的許可權授予給可以信任其修改生產程式碼的使用者。
控制職務的存取權限
作業訪問控制可讓作業擁有者和系統管理員授與作業的細微許可權。 有下列權限可供使用:
注意
下表中每個許可權都包含下方所列的所有許可權。
權限 | 獎助金 |
---|---|
是擁有者 | 預設用於執行身分的身份識別。 |
可以管理 | 使用者可編輯工作定義,包括權限。 使用者可暫停和繼續排程。 |
可管理運行 | 使用者可觸發和取消工作執行。 |
可以檢視 | 使用者可檢視工作執行結果。 |
如需工作權限等級的詳細資訊,請參閱工作 ACL。
設定工作權限
若要在工作區 UI 中設定作業的許可權,請使用下列步驟選取現有的作業:
- 按一下側邊欄中的
[工作流程]。
- 在 [名稱] 欄中,點擊作業名稱。
- 在 [工作詳細資料] 面板中,按下 [編輯權限]。 [權限設定] 對話方塊隨即顯示。
- 按兩下 [選取使用者、群組或服務主體... 字段,然後開始輸入使用者、群組或服務主體。 欄位會搜尋工作區中的所有可用身分識別。
- 按一下 [新增] 。
- 按一下儲存。
管理職務負責人
只有工作區管理員可編輯工作擁有者。 必須指派一個工作擁有者。 工作擁有者可以是使用者或服務主體。