使用服務認證管理外部雲端服務的存取權
本文說明如何在 Unity 目錄中建立服務認證物件,讓您控管從 Azure Databricks 存取外部雲端服務的存取權。 Unity 目錄中的服務認證會封裝長期雲端認證,以授與這類服務的存取權。
服務憑證不適用於管理存取雲端儲存的權限,如果它是作為 Unity Catalog 管理的儲存位置或外部儲存位置。 針對這些使用案例,請使用記憶體認證。 請參閱 使用 Unity Catalog 管理雲端儲存體的存取權。
若要建立服務認證以存取 Azure 服務,您可以建立參考 Azure 受控識別的 Azure Databricks 存取連接器,為其指派服務或服務的許可權。 接著,您會在服務認證定義中參考該存取連接器。
開始之前
建立服務認證之前,您必須先符合下列需求:
在 Azure Databricks 中:
已針對 Unity Catalog 啟用的 Azure Databricks 工作區。
CREATE SERVICE CREDENTIAL
附加至工作區之 Unity 目錄中繼存放區的許可權。 帳戶管理員和中繼存放區管理員預設具有此權限。 如果您的工作區已自動啟用 Unity 目錄,工作區系統管理員也具有此許可權。注意
服務主體必須具有帳戶管理員角色,才能建立使用受控識別的服務認證。 您無法委派
CREATE SERVICE CREDENTIAL
給服務主體。 這同時適用於 Azure Databricks 服務主體和Microsoft Entra ID 服務主體。
於 Azure 租戶中:
- 與您要從中存取資料的工作區位於相同區域中的 Azure 服務。
- Azure 資源群組上的參與者或擁有者角色。
- 服務帳戶上的擁有者或使用者存取系統管理員 Azure RBAC 角色。
使用受控識別建立服務認證
若要設定授權存取服務帳戶的身分識別,請使用將 Azure 受控識別連線到 Azure Databricks 帳戶的 Azure Databricks 存取連接器。 如果您已經定義存取連接器,您可以直接跳到下列程式中的步驟 2。
注意
您可以使用服務主體,而不是受控識別,但強烈建議使用受控識別。 受控識別的優點在於允許 Unity Catalog 存取受網路規則保護的服務帳戶,而這是使用服務主體無法達成的,同時也不需要管理和定期更換秘密。 如果您必須使用服務主體,請參閱 使用服務主體建立 Unity Catalog 受控存儲(舊版)。
在 Azure 入口網站中,創建 Azure Databricks 存取連接器,然後依照 配置 Unity Catalog 的受控識別的指示,為您想要存取的服務指派權限。
Azure Databricks 存取連接器是第一方 Azure 資源,可讓您將受控識別連線到 Azure Databricks 帳戶。 您必須在 Azure 中的存取連接器資源上擁有 參與者 角色或更高角色,才能新增服務認證。
在「步驟 2:授與受控識別存取權給儲存帳戶」中,不要遵循
中的指示,而應將受控識別存取權授與服務帳戶。 記下存取連接器的資源標識碼。
以符合開始之前所列需求的使用者身分登入您的 Azure Databricks 工作區。
點選
目錄。
在 [
快速存取 ] 頁面上,按兩下 [外部數據 ] 按鈕,移至 [認證 ] 索引卷標,然後選取 [建立認證]。 選取 服務認證。
以下欄格式輸入認證名稱、選擇性批註和存取連接器的資源識別碼:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
(選擇性)如果您使用使用者指派的受控識別建立存取連接器,請在 [使用者指派的受控識別識別碼] 字段中輸入受控識別的資源識別元,格式如下:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
按一下 [建立]。
在 [ 服務認證建立] 對話框中,複製 [ 外部標識符]。
您也可以隨時在服務認證詳細數據頁面上檢視外部標識碼。
按一下完成。
(選擇性)將服務認證指派給特定工作區
根據預設,服務認證可從中繼存放區中的所有工作區存取。 這表示如果使用者已獲授與該服務認證的權限,他們可以從連接至中繼存放區的任何工作區執行該權限。 如果您使用工作區來隔離用戶數據存取,您可能只想要允許從特定工作區存取服務認證。 這項功能稱為工作區系結或服務認證隔離。
將服務認證系結至特定工作區的一般使用案例是雲端系統管理員使用生產雲端帳戶認證來設定服務認證的情況,而您想要確保 Azure Databricks 使用者使用此認證只存取生產工作區中的外部雲端服務。
如需工作區系結的詳細資訊,請參閱 (選擇性) 將記憶體認證指派給特定工作區 和 限制特定工作區的存取。
將服務認證系結至一或多個工作區
若要將服務認證指派給特定工作區,請使用目錄總管。
所需許可權:中繼存放區管理員或服務認證擁有者。
注意
中繼存放區管理員可以使用目錄總管查看中繼存放區中的所有服務認證,而服務認證擁有者可以看到他們在中繼存放區中擁有的所有服務認證,而不論服務認證是否已指派給目前的工作區。 未分配到工作區的服務憑證會顯示為灰色。
請登入與中繼存放區連結的工作區。
在側邊欄中,點擊目錄圖示
目錄。
在 [快速存取] 頁面上,按一下 [外部數據 >] 按鈕,然後移至 [認證] 索引標籤。
選取服務認證,然後移至 [工作區] 索引標籤。
在 [ 工作區] 索引 標籤上,清除 [ 所有工作區都有存取權 ] 複選框。
如果您的服務認證已經系結至一或多個工作區,則此複選框已清除。
按兩下 [ 指派給工作區 ],然後輸入或尋找您想要指派的工作區。
若要撤銷存取權,請移至 [工作區] 標籤,選取工作區,然後按一下 [撤銷]。 若要允許從所有工作區存取,請選取 [所有工作區具有存取權] 複選框。
下一步
- 瞭解如何檢視、更新、刪除及授與其他使用者使用服務認證的許可權。 請參閱 管理服務認證。
- 瞭解如何在程式代碼中使用服務認證。 請參閱 使用 Unity 目錄服務認證連線到外部雲端服務。
限制
適用下列限制:
- Databricks Runtime 16.1 版和更新版本僅支援 Python。
- 在 Databricks Runtime 16.2 更新無伺服器計算之前,它只會支援 Python。
- 不支援 SQL 倉儲。
- 某些在服務憑證上進行的動作的稽核事件不會出現在
system.access.audit
數據表中。 稽核有關建立、刪除、更新、讀取、列出或使用服務憑證的資訊將可供使用。 請參閱 稽核記錄系統資料表參考。 - 在服務認證預覽期間,
INFORMATION_SCHEMA.STORAGE_CREDENTIALS
(已淘汰)同時顯示記憶體認證和服務認證,以及INFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES
顯示同時套用至記憶體認證和服務認證的許可權。 情況不再是這樣。 您應該改為針對記憶體和服務認證使用INFORMATION_SCHEMA.CREDENTIALS
和INFORMATION_SCHEMA.CREDENTIAL_PRIVILEGES
。