適用於:Azure SQL 資料庫
在本指南中,我們會逐步說明如何建立具有透明資料加密 (TDE) 和客戶自控金鑰 (CMK) 的 Azure SQL 邏輯伺服器,利用使用者指派的受控識別來存取與邏輯伺服器租用戶不同的 Microsoft Entra 租用戶中的Azure Key Vault。 如需詳細資訊,請參閱使用透明資料加密的跨租用戶客戶自控金鑰。
注意
Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。
必要條件
- 本指南預設您擁有兩個 Microsoft Entra 租戶。
- 第一個包含 Azure SQL Database 資源、多租戶 Microsoft Entra 應用程式,以及使用者指派的受控識別。
- 第二個租戶包含 Azure Key Vault。
- 如需設定 Microsoft Entra 應用程式和 Azure Key Vault 所需的跨租用戶 CMK 和 RBAC 權限的完整指示,請參閱下列其中一個指南:
第一個租戶上的必要資源
為了本教程的目的,我們假設第一個租戶屬於獨立軟體廠商 (ISV),而第二個租戶來自他們的客戶。 如需此案例的詳細資訊,請參閱使用透明資料加密的跨租用戶客戶自控金鑰。
在能夠使用跨租戶 CMK 來設定 Azure SQL Database 的 TDE 之前,我們需要具備一個已配置的多租戶 Microsoft Entra 應用程式,此應用程式透過使用者指派的受控識別,作為應用程式的同盟身分識別認證。 請遵循先決條件中的其中一個指南。
在您想要建立 Azure SQL Database 的第一個租戶上,建立及設定多租戶 Microsoft Entra 應用程式
將使用者指派的受控識別 設定為多租使用者應用程式的 同盟身分識別認證
記錄應用程式名稱和應用程式識別碼。 這可在 Azure 入口網站>Microsoft Entra ID>企業應用程式中找到,並搜尋已建立的應用程式
第二位租戶所需的資源
注意
自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模組已被淘汰。 若要深入了解,請閱讀淘汰更新。 在此日期之後,對這些模組的支援僅限於對 Microsoft Graph PowerShell SDK 的移轉協助和安全性修正。 淘汰的模組將繼續運作至 2025 年 3 月 30 日。
我們建議移轉至 Microsoft Graph PowerShell 以與 Microsoft Entra ID (以前稱為 Azure AD) 互動。 如需了解常見的移轉問題,請參閱移轉常見問題。 注意:MSOnline 1.0.x 版可能會在 2024 年 6 月 30 日之後發生中斷。
在 Azure Key Vault 所在的第二個租用戶上,使用來自第一個租用戶已註冊應用程式的應用程式識別碼,建立服務主體 (應用程式)。 以下是如何註冊多租用戶應用程式的一些範例。 分別將
<TenantID>
和<ApplicationID>
替換為來自 Microsoft Entra ID 的租戶 ID ,以及來自多租戶應用程式的應用程式 ID 。PowerShell:
Connect-AzureAD -TenantID <TenantID> New-AzADServicePrincipal -ApplicationId <ApplicationID>
Azure CLI:
az login --tenant <TenantID> az ad sp create --id <ApplicationID>
前往 Azure 入口網站>Microsoft Entra ID>企業應用程式,並搜尋剛建立的應用程式。
建立 Azure Key Vault (如果您尚未建立),然後建立金鑰
-
- 在建立存取原則時,選取 金鑰權限 下的 取得、包裝金鑰、解除包裝金鑰 權限
- 在建立存取原則時,選取在第一步驟中於 主體 選項建立的多租戶應用程式。
建立存取原則和金鑰之後,請從 Key Vault 擷取金鑰,並記錄金鑰識別碼
建立配置了 TDE 且使用跨租用戶的客戶自主管理金鑰 (CMK) 的伺服器
本指南會逐步說明以使用者指派的受控識別,在 Azure SQL 上建立邏輯伺服器和資料庫的流程,以及如何設定跨租用戶客戶自控金鑰。 需有使用者指派的受控識別,才能在伺服器建立階段,設定客戶自控金鑰以進行透明資料加密。
重要
使用 API 來建立 SQL 邏輯伺服器的使用者或應用程式,需要在訂用帳戶上具有SQL Server Contributor和Managed Identity Operator RBAC 角色或更高等級。
瀏覽至 Azure 入口網站中的 [選取 SQL 部署] 選項頁面。
如果您尚未登入 Azure 入口網站,請在出現提示時登入。
在 SQL Database下,將 [資源類型] 設定為 [單一資料庫],然後選取 [建立]。
在 [建立 SQL Database] 表單 [基本資料] 索引標籤的 [專案詳細資料] 下,選取想要的 Azure 訂用帳戶。
針對 [資源群組],選取 [新建],輸入資源群組的名稱,然後選取 [確定]。
針對 [資料庫名稱],輸入資料庫名稱。 例如:
ContosoHR
。在伺服器中,選取 [建立新的],並以下列值填寫新伺服器表單:
-
伺服器名稱:輸入唯一的伺服器名稱。 伺服器名稱對於 Azure 中所有伺服器必須為全域唯一,而不只是在訂閱中是唯一的。 您可以輸入
mysqlserver135
等,Azure 入口網站會讓您知道該名稱是否可用。 -
伺服器管理員登入:輸入管理員登入名稱,例如
azureuser
。 - 密碼:輸入符合密碼需求的密碼,然後在 [確認密碼] 欄位中再次輸入。
- 位置:從下拉式清單中選取位置
-
伺服器名稱:輸入唯一的伺服器名稱。 伺服器名稱對於 Azure 中所有伺服器必須為全域唯一,而不只是在訂閱中是唯一的。 您可以輸入
選取頁面底部的 [下一步:網路功能]。
在網路功能索引標籤的連線方法中,選取 [公用端點]。
針對 [防火牆規則],將 [新增目前的用戶端 IP 位址] 設定為 [是]。 將 [允許 Azure 服務和資源存取此伺服器] 設定為 [否]。 此頁面上的其餘選取項目可以保留為預設值。
選取頁面底部的 [下一步:安全性]。
在 [安全性] 索引標籤的 [身分識別] 下方,選取 [設定身分識別]。
在 [身分識別] 功能表上,針對 [系統指派的受控身分識別] 選取 [關閉],然後選取 [使用者指派的受控身分識別] 下方的 [新增]。 選取所需的訂用帳戶,然後在 [使用者指派的受控識別] 下方,從選取的訂用帳戶中選取所需的使用者指派受控識別。 接著,選取 [新增] 按鈕。
在 [主要身分識別] 下方,選取上一個步驟中選取的相同使用者指派受控識別。
針對 [聯邦用戶端身分識別],選擇 [更改身分識別] 選項,然後搜尋您在 [必要條件] 中建立的多租戶應用程式。
注意
如果多租戶應用程式尚未被新增到密鑰保存庫存取原則中,並賦予必要的許可權(Get、Wrap Key、Unwrap Key),那麼在 Azure 入口網站中使用此應用程式進行身分識別同盟將會顯示錯誤。 在設定同盟用戶端身分識別之前,請確定已正確設定權限。
選擇 [套用]
在 [安全性] 索引標籤的 [透明資料加密] 下方,選取 [設定透明資料加密]。 選取 [客戶自控金鑰],[輸入金鑰識別碼] 選項隨即顯示。 新增從第二個租用戶中的金鑰取得的 金鑰識別碼。
選擇 套用
請選擇頁面底部的「檢閱 + 建立」
在「檢閱 + 建立」頁面進行檢閱之後,選取「建立」。
下一步
- 開始使用 Azure Key Vault 整合和「攜帶您自己的金鑰」支援以進行 TDE:透過 Key Vault 使用您自己的金鑰開啟 TDE
- 使用透明資料加密的跨租戶客戶管理金鑰