管理 Databricks 工作的身分識別和權限
本文包含管理 Databricks 工作身分識別和權限的建議和指示。
注意
系統不會從叢集的 Spark 驅動程式記錄 stdout
和 stderr
串流中修訂祕密。 為了保護敏感性資料,Spark 驅動程式記錄預設只能由對工作具有 [可管理] 權限、單一使用者存取模式和共用存取模式叢集的使用者檢視。 若要允許具有 [可連結至] 或 [可重新啟動] 權限的使用者檢視這些叢集上的記錄,請在叢集設定中設定下列 Spark 組態屬性:spark.databricks.acl.needAdminPermissionToViewLogs false
。
在「無隔離共用存取模式叢集」上,Spark 驅動程式記錄可由具有 CAN ATTACH TO 或 CAN MANAGE 權限的使用者檢視。 若要限制只有具有 [可管理] 權限的使用者才能讀取記錄,請將 spark.databricks.acl.needAdminPermissionToViewLogs
設定為 true
。
請參閱 Spark 組態,以了解如何將 Spark 屬性新增至叢集組態。
工作的預設權限
工作預設會設定下列權限:
- 工作的建立者被授與 IS OWNER 權限。
- 工作區系統管理員會被授與 CAN MANAGE 權限。
- 工作的建立者會被設定 [執行身分]。
工作的管理員權限
根據預設,工作區管理員可將工作擁有者或 [執行身分] 設定變更為工作區中的任何使用者或服務主體。 帳戶管理員可設定 RestrictWorkspaceAdmins
設定來變更此行為。 請參閱限制工作區管理員。
工作如何與 Unity Catalog 權限互動?
會以 [執行身分] 設定中的使用者身分執行工作。 此身分識別會根據下列權限授與進行評估:
- Unity Catalog 管理的資產,包括資料表、磁碟區、模型和檢視。
- 舊版 Hive 中繼存放區中註冊資產的舊版資料表存取控制清單 (ACL)。
- 計算、筆記本、查詢及其他工作區資產的 ACL。
- Databricks 祕密。 請參閱機密管理。
注意
Unity Catalog 授權和舊版資料表 ACL 需要相容的計算存取模式。 請參閱設定工作的計算。
SQL 任務和權限
檔案任務是唯一可完全遵守 [執行身分] 識別的 SQL 任務類型。
SQL 查詢、警示和舊版儀表板任務會遵守已設定的共用設定。
- 以擁有者身分執行:排程的 SQL 任務執行一律使用所設定 SQL 資產擁有者的身分識別。
- 以檢視人員身分執行:排程的 SQL 任務的執行一律會使用工作 [執行身分] 欄位中設定的身分識別。
若要深入了解查詢共用設定,請參閱設定查詢權限。
範例
下列案例說明 SQL 共用設定與工作 [執行身分] 設定的互動:
- 使用者 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 Catalog 相容的計算組態
Unity Catalog 資料控管需要您使用支援的計算組態。
工作與 SQL 倉儲的無伺服器計算一律使用 Unity Catalog。
對於具有傳統計算的工作,Databricks 建議針對支援的工作負載使用共用存取模式。 視需要使用單一使用者存取模式。
使用 Unity Catalog 設定的差異即時資料表管線有一些限制。 請參閱限制。
限制生產工作的權限
觸發、停止或重新啟動工作執行的使用者需要 [可管理執行] 權限。
檢視工作組態或監視執行的使用者需要 [可檢視] 權限。
僅向受信任可修改生產程式碼的使用者授與 [可管理] 或 [是擁有者] 權限。
控制 DPS 的存取
工作存取控制可讓工作擁有者和管理員對其工作授與微調權限。 有下列權限可供使用:
注意
下表中的每個權限都包含其下方的權限授與。
權限 | 授與 |
---|---|
是擁有者 | 根據預設,用於 [執行身分] 的身份識別。 |
可以管理 | 使用者可編輯工作定義,包括權限。 使用者可暫停和繼續排程。 |
可管理執行 | 使用者可觸發和取消工作執行。 |
可以檢視 | 使用者可檢視工作執行結果。 |
如需工作權限等級的詳細資訊,請參閱工作 ACL。
設定工作權限
若要在工作區 UI 中為工作設定權限,請使用下列步驟選取現有的工作:
- 按一下側邊欄中的 [工作流程]。
- 在 [名稱] 資料行,按下工作名稱。
- 在 [工作詳細資料] 面板中,按下 [編輯權限]。 [權限設定] 對話方塊隨即顯示。
- 按下 [選取使用者、群組或服務主體...] 欄位,然後開始輸入使用者、群組或服務主體。 欄位會搜尋工作區中的所有可用身分識別。
- 按一下 [新增] 。
- 按一下 [檔案] 。
管理工作擁有者
只有工作區管理員可編輯工作擁有者。 必須指派一個工作擁有者。 工作擁有者可是使用者或服務主體。