獨占存取是一種模式,可讓資料存取採用 明確選擇加入 的方式,而非預設即可取得。 在一般的 Unity 目錄權限中,權限會跟隨使用者:使用者會隨時間累積並攜帶這些權限,因此他們的存取權限是直接獲得的權限與從所有成員群組繼承的權限的總和。 專屬存取模式讓客戶將敏感資料存取建模為需要刻意行動——使用者必須主動扮演角色才能取得資料,而非擁有永久存取權。 這避免他們以個人身份存取資料,也避免在使用案例、臨床試驗、專案或客戶間混用資料。
為了幫助描述這種模式,我們用兩個詞來形容這些不同的身份。 這些是說明性標籤,並非正式的 Azure Databricks 術語:
- 存取權角色:一個沒有成員但持有敏感資料權限的群組。 使用者扮演此角色以存取資料。 存取權角色必須保持空置:任何存取權角色的成員都能直接繼承其權限,且 可存取敏感資料而無需 扮演該角色,這會破壞專屬存取權。 在 Azure Databricks 中,存取角色是以群組形式實作的。
- 成員群組:即使用者被允許擔任存取權角色的群組。 將存取角色的 Assume 權限授予成員群組,可讓該群組的所有成員都能 Assume 該角色。 成員群組只是為了方便,並非必要條件——你也可以直接將 Assume 權限授與個別使用者或服務主體。 這樣可讓您免於一次只管理一個主體的 Assume 授權。
設定完成後,使用者可透過任何支援的方法擔任存取角色:角色切換器、分配給群組的專用存取模式叢集、CLI、API 或第三方 BI 工具。 請參見 「切換角色」。
Azure Databricks 支援兩種建立存取權角色的方法。 選擇最適合您組織管理身份的方案:
- Account-local access role:建立一個 Azure Databricks account-local 群組作為存取角色。 如果在 Azure Databricks 中建立群組比建立新的 Microsoft Entra ID 群組更簡單(例如,當 Microsoft Entra ID 的變更需要 IT 工單或內部審查時),則最適合這麼做。
- 從 Microsoft Entra ID 同步的存取角色:使用空白的 Microsoft Entra ID 群組作為存取角色,並透過 SCIM 將其同步至 Azure Databricks。 最好是在你已經在 Microsoft Entra ID 管理群組,且偏好將所有群組生命週期都保留在那裡時。
要求
- 一個支援 Unity Catalog 的工作區。
- 帳號管理員或工作區管理員權限以建立群組並授予假設。
方法一:帳戶-本地存取角色
在此方法中,存取角色由完全在 Azure Databricks 內部管理的 Azure Databricks 帳戶本機群組擔任。 成員群組可以是任何有權限擔任存取權的群組:通常是從 Microsoft Entra ID 同步的群組,包含被允許存取敏感資料的使用者。
步驟 1:建立存取權角色並將其指派到你的工作區
建立一個沒有任何成員的帳戶層級群組,作為存取角色。 Databricks 建議使用一致的命名前綴(例如 role-)來區分存取角色與一般群組。 例如,如果你的允許使用者成員群組是 clinical-trial-1-ds,你可以將存取權角色 role-clinical-trial-1-ds命名為 。
若要建立存取角色:
帳戶主控台
- 作為帳號管理員,請登入帳號主控台。
- 在側邊欄中,按一下 [使用者管理]。
- 在 [群組] 索引標籤上,按一下 [新增群組]。
- 輸入存取權角色的名稱。 請勿新增成員。
- 按一下 [確認]。
帳戶群組 API
databricks api post /api/2.0/account/scim/v2/Groups --json '{
"displayName": "<access-role-name>"
}'
建立存取權角色後,將它指派到應該可用的工作區。 請參閱 將群組指派給工作區。
步驟 2:授權存取資料與工作區資產
使用標準 Azure Databricks 工具,授予敏感資料與工作空間資產的存取權角色權限:
-
Unity Catalog 可保護物件:使用
GRANT陳述式或 Catalog Explorer,將 UC 權限授予存取角色。 - 工作區資產:使用存取控制清單(ACL)來授予筆記本、工作、SQL 倉庫及其他工作區物件的存取權角色權限。
例如,要授權存取角色閱讀 Unity 目錄資料表:
GRANT USE SCHEMA ON <catalog>.<schema> TO `<access-role-name>`;
GRANT SELECT ON TABLE <catalog>.<schema>.<table> TO `<access-role-name>`;
步驟三:授予 假設許可
授予應該能擔任此角色的使用者、服務主體或成員群組「 承擔 」權限。 請參見 「管理群組權限」。
步驟 4:使用者扮演該角色
具有存取角色之 Assume 權限的使用者可以切換至該角色。 請參閱 「切換角色 」以獲得可用的方法。
方法二:存取角色從 Microsoft Entra ID 同步
使用此方法管理 Microsoft Entra ID 中的存取角色,並使用 SCIM 同步至 Azure Databricks,而非建立獨立的 Azure Databricks 管理存取權角色。 存取權角色與成員群組皆源自 Microsoft Entra ID。
在此方法中:
- 存取角色是已同步至 Azure Databricks 的空白 Microsoft Entra ID 群組,並已獲授與敏感資料相關的權限。
- 成員群組是現有的 Microsoft Entra ID 群組,其成員是被允許擔任存取權的使用者。 你在存取角色上將成員群組授予 Assume 權限,因此其所有成員都會自動繼承 Assume 權限。
Note
Microsoft Entra ID 中的存取權角色必須保持空置。 在 Microsoft Entra ID 中新增存取權角色的成員會同步到 Azure Databricks,並直接繼承該角色的權限,這表示他們可以在不扮演該角色的情況下存取敏感資料。 這打破了排他存取模式。
步驟 1:在 Microsoft Entra ID 中設定群組
你如何設定群組,取決於你是從頭開始,還是重新利用已經在 Azure Databricks 中擁有權限的 Microsoft Entra ID 群組。
全新設置
在您的身分識別提供者中:
- 建立空白群組,做為存取角色。 例如:
role-clinical-trial-1-ds。 - 識別或建立成員群組,該群組成員應能擔任存取權角色。 例如:
clinical-trial-1-ds。 - 用你的 SCIM 連接器把兩個群組同步到 Azure Databricks。 參見 使用 SCIM 從 Microsoft Entra ID 同步使用者和群組。
重新利用現有的
如果你已經有一個從 Microsoft Entra ID 同步的群組,且其成員已獲得 Azure Databricks 敏感資料權限,請使用此變體。 將現有群組重新利用為存取權角色,避免將所有權限重新授予新群組。
在您的身分識別提供者中:
- 建立一個新的 Microsoft Entra ID 群組作為成員群組。 例如,如果你現有的群組是
clinical-trial-1-ds,建立clinical-trial-1-ds-members。 - 將現有 Microsoft Entra ID 群組的所有成員移入新成員群組。
- 現有的 Microsoft Entra ID 群組現在會在 Microsoft Entra ID 中變成空群組,並成為存取角色。 由於它保留了現有的 Azure Databricks 權限,你可以跳過下面的第 3 步。
- 用你的 SCIM 連接器把兩個群組同步到 Azure Databricks。 參見 使用 SCIM 從 Microsoft Entra ID 同步使用者和群組。
步驟二:將兩個群組都指派到你的工作區
將存取權角色和成員群組都指派到應該可用的工作區。 請參閱 將群組指派給工作區。
步驟 3:授權存取資料與工作區資產
Note
如果你在步驟 1 中重新利用了現有的 Microsoft Entra ID 群組,存取權角色已經擁有 Azure Databricks 權限,你可以跳過這個步驟。
依照方法1、步驟2,授予敏感資料和工作空間資產的 存取權 角色權限。
步驟 4:授予成員群組 Assume 權限
授予 成員群組 對 存取角色 的 Assume 權限。 成員群組中的所有成員都會自動繼承 Assume 權限。 請參見 「管理群組權限」。
步驟五:使用者扮演該角色
成員群的成員可以擔任存取權的角色。 請參閱 「切換角色 」以獲得可用的方法。
下一步
| 資源 | Description |
|---|---|
| 管理群組權限 | 使用 UI 或 API 授與或撤銷切換至存取角色的權限。 |
| 轉換角色 | 可以使用角色切換器、專用存取模式叢集、CLI、API 或第三方 BI 工具。 |
| 工作區資產共享控制 | 防止承擔存取角色的使用者分享該角色所擁有的工作空間資產。 |
| 基於角色的存取控制(RBAC)限制 | 了解在使用角色時不支援哪些 Azure Databricks 功能,以及其他限制因素,例如工作空間 SCIM API 在群組管理上的缺口。 |