创建配置了用户分配的托管标识和用于 TDE 的跨租户 CMK 的服务器
适用于:Azure SQL 数据库
在本指南中,我们将执行使用透明数据加密 (TDE) 和客户管理的密钥 (CMK) 创建 Azure SQL 逻辑服务器的步骤,通过利用用户分配的托管标识访问 Azure Key Vault,它位于与逻辑服务器租户有所不同的 Microsoft Entra 租户。 有关详细信息,请参阅使用透明数据加密的跨租户客户管理的密钥。
备注
Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。
- 本指南假定你有两个 Microsoft Entra 租户。
- 第一个租户包括 Azure SQL 数据库资源、多租户 Microsoft Entra 应用程序和用户分配的托管标识。
- 第二个租户包含 Azure 密钥保管库。
- 有关设置跨租户 CMK 以及配置 Microsoft Entra 应用程序和 Azure Key Vault 所需的 RBAC 权限的全面说明,请参阅以下指南之一:
考虑到本教程的教学目标,我们假设第一个租户属于独立软件供应商 (ISV),第二个租户来自其客户端。 有关此场景的详细信息,请参阅使用透明数据加密的跨租户客户管理的密钥。
在使用跨租户 CMK 为 Azure SQL 数据库配置 TDE 之前,需要有一个多租户 Microsoft Entra 应用程序,该应用程序配置了用户分配的托管标识,作为应用程序的联合标识凭据进行分配。 按照先决条件中的指南之一操作。
在要创建 Azure SQL 数据库的第一个租户上,创建并配置多租户 Microsoft Entra 应用程序
配置用户分配的托管标识,使之成为多租户应用程序的联合标识凭据
记录应用程序名称和应用程序 ID。 这可以在 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)进行交互。 有关常见迁移问题,请参阅迁移常见问题解答。 注意:2024 年 6 月 30 日之后,MSOnline 版本 1.0.x 可能会遇到中断。
在 Azure Key Vault 所在的第二个租户上,使用第一个租户中注册应用程序的应用程序 ID 创建服务主体(应用程序)。 下面是一些有关如何注册多租户应用程序的示例。 分别将
<TenantID>
和<ApplicationID>
替换为 Microsoft Entra ID 中的客户端租户 ID 和多租户应用程序中的应用程序 ID:PowerShell:
Connect-AzureAD -TenantID <TenantID> -Environment AzureChinaCloud New-AzADServicePrincipal -ApplicationId <ApplicationID>
Azure CLI:
az login --tenant <TenantID> az ad sp create --id <ApplicationID>
请转到 Azure 门户>Microsoft Entra ID>企业应用程序,然后搜索创建的应用程序。
创建 Azure Key Vault(如果还没有),并创建密钥
-
- 创建访问策略时,在“密钥权限”下选择“获取、包装密钥和解包密钥”权限
- 创建访问策略时,选择在“主体”选项的第一步中创建的多租户应用程序
创建访问策略和密钥后,从密钥保管库检索密钥并记录密钥标识符
本指南将指导你完成使用用户分配的托管标识在 Azure SQL 上创建逻辑服务器和数据库,以及如何设置跨租户客户管理的密钥的过程。 在服务器创建阶段为透明数据加密设置客户管理的密钥时,必须使用用户分配的托管标识。
重要
使用 API 创建 SQL 逻辑服务器的用户或应用程序需要订阅上有 SQL Server 参与者和托管标识操作员 RBAC 角色或更高版本。
浏览到 Azure 门户中的选择 SQL 部署选项页。
如果你尚未登录到 Azure 门户,请按提示登录。
在“SQL 数据库”下将“资源类型”设置保留为“单一数据库”,然后选择“创建” 。
在“创建 SQL 数据库”窗体的“基本信息”选项卡上的“项目详细信息”下,选择所需的 Azure订阅 。
对于“资源组”,请选择“新建”,输入资源组的名称,然后选择“确定” 。
对于“数据库名称”,输入数据库名称。 例如,
ContosoHR
。对于“服务器”,选择“新建”,并使用以下值填写“新服务器”窗体 :
- 服务器名称:输入唯一的服务器名称。 对于 Azure 中的所有服务器,服务器名称必须全局唯一,而不只是在订阅中唯一。 输入类似
mysqlserver135
的值,Azure 门户将告知你的输入内容是否可用。 - 服务器管理员登录名:输入管理员登录名,例如:
azureuser
。 - 密码:输入符合密码要求的密码,然后在“确认密码”字段中再次输入该密码。
- 位置:从下拉列表中选择一个位置
- 服务器名称:输入唯一的服务器名称。 对于 Azure 中的所有服务器,服务器名称必须全局唯一,而不只是在订阅中唯一。 输入类似
在完成时选择“下一步:网络”。
在“网络”选项卡上,对于“连接方法”,选择“公共终结点” 。
对于“防火墙规则”,将“添加当前客户端 IP 地址”设置为“是” 。 将“允许 Azure 服务和资源访问此服务器”设置保留为“否” 。 此页面上的其余选择可以保留为默认值。
在页面底部选择“下一步: 安全”。
在“安全”选项卡的“标识”下,选择“配置标识”。
在“标识”菜单上,为“系统分配的托管标识”选择“关闭”,然后在“用户分配的托管标识”下选择“添加”。 选择所需的订阅,然后在“用户分配的托管标识”下,从所选订阅中选择所需的用户分配的托管标识。 然后选择“添加”按钮。
在“主标识”下面,选择在上一步中选择的相同用户分配的托管标识。
对于“联合客户端标识”,请选择“更改标识”选项,并搜索在先决条件中创建的多租户应用程序。
备注
如果多租户应用程序尚未添加到具有所需权限(获取、包装密钥、解包密钥)的密钥保管库访问策略,则在 Azure 门户中使用此应用程序进行联合身份验证会显示错误。 在配置联合客户端标识之前,请确保正确配置权限。
选择“应用”
在“安全”选项卡上的“透明数据加密”下面,选择“配置透明数据加密”。 选择“客户管理的密钥”,将显示“输入密钥标识符”选项。 添加从第二个租户中的密钥获取的密钥标识符。
选择“应用”
在页面底部选择“查看 + 创建”
在“查看 + 创建”页上,查看后选择“创建”。
- 开始使用 Azure Key Vault 集成和创建自己的密钥支持 TDE:使用密钥保管库中的自有密钥启用 TDE
- 使用透明数据加密的跨租户客户管理的密钥