创建配置了用户分配的托管标识和用于 TDE 的跨租户 CMK 的服务器

适用于:Azure SQL 数据库

在本指南中,我们将执行使用透明数据加密 (TDE) 和客户管理的密钥 (CMK) 创建 Azure SQL 逻辑服务器的步骤,通过利用用户分配的托管标识访问 Azure Key Vault,它位于与逻辑服务器租户有所不同的 Microsoft Entra 租户。 有关详细信息,请参阅使用透明数据加密的跨租户客户管理的密钥

注意

Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。

先决条件

第一个租户上的必需资源

考虑到本教程的教学目标,我们假设第一个租户属于独立软件供应商 (ISV),第二个租户来自其客户端。 有关此场景的详细信息,请参阅使用透明数据加密的跨租户客户管理的密钥

在使用跨租户 CMK 为 Azure SQL 数据库配置 TDE 之前,需要有一个多租户 Microsoft Entra 应用程序,该应用程序配置了用户分配的托管标识,作为应用程序的联合标识凭据进行分配。 按照先决条件中的指南之一操作。

  1. 在要创建 Azure SQL 数据库的第一个租户上,创建并配置多租户 Microsoft Entra 应用程序

  2. 创建用户分配的托管标识

  3. 配置用户分配的托管标识,使之成为多租户应用程序的联合标识凭据

  4. 记录应用程序名称和应用程序 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 可能会遇到中断。

  1. 在 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>
      
  2. 请转到 Azure 门户>Microsoft Entra ID>企业应用程序,然后搜索创建的应用程序。

  3. 创建 Azure Key Vault(如果还没有),并创建密钥

  4. 创建或设置访问策略

    1. 创建访问策略时,在“密钥权限”下选择“获取、包装密钥和解包密钥”权限
    2. 创建访问策略时,选择在“主体”选项的第一步中创建的多租户应用程序

    Azure 门户中密钥保管库的访问策略菜单的屏幕截图。

  5. 创建访问策略和密钥后,从密钥保管库检索密钥并记录密钥标识符

使用跨租户客户管理的密钥 (CMK) 创建配置了 TDE 的服务器

本指南将指导你完成使用用户分配的托管标识在 Azure SQL 上创建逻辑服务器和数据库,以及如何设置跨租户客户管理的密钥的过程。 在服务器创建阶段为透明数据加密设置客户管理的密钥时,必须使用用户分配的托管标识。

重要

使用 API 创建 SQL 逻辑服务器的用户或应用程序需要订阅上有 SQL Server 参与者托管标识操作员 RBAC 角色或更高版本。

  1. 浏览到 Azure 门户中的选择 SQL 部署选项页。

  2. 如果你尚未登录到 Azure 门户,请按提示登录。

  3. 在“SQL 数据库”下将“资源类型”设置保留为“单一数据库”,然后选择“创建” 。

  4. 在“创建 SQL 数据库”窗体的“基本信息”选项卡上的“项目详细信息”下,选择所需的 Azure订阅 。

  5. 对于“资源组”,请选择“新建”,输入资源组的名称,然后选择“确定” 。

  6. 对于“数据库名称”,输入数据库名称。 例如,ContosoHR

  7. 对于“服务器”,选择“新建”,并使用以下值填写“新服务器”窗体 :

    • 服务器名称:输入唯一的服务器名称。 对于 Azure 中的所有服务器,服务器名称必须全局唯一,而不只是在订阅中唯一。 输入类似 mysqlserver135 的值,Azure 门户将告知你的输入内容是否可用。
    • 服务器管理员登录名:输入管理员登录名,例如:azureuser
    • 密码:输入符合密码要求的密码,然后在“确认密码”字段中再次输入该密码。
    • 位置:从下拉列表中选择一个位置
  8. 在完成时选择“下一步:网络”。

  9. 在“网络”选项卡上,对于“连接方法”,选择“公共终结点” 。

  10. 对于“防火墙规则”,将“添加当前客户端 IP 地址”设置为“是” 。 将“允许 Azure 服务和资源访问此服务器”设置保留为“否” 。 此页面上的其余选择可以保留为默认值。

    在 Azure 门户中创建 SQL Server 时的网络设置屏幕截图。

  11. 在页面底部选择“下一步: 安全”。

  12. 在“安全”选项卡的“标识”下,选择“配置标识”。

    Azure 门户中安全设置和配置标识的屏幕截图。

  13. 在“标识”菜单上,为“系统分配的托管标识”选择“关闭”,然后在“用户分配的托管标识”下选择“添加”。 选择所需的订阅,然后在“用户分配的托管标识”下,从所选订阅中选择所需的用户分配的托管标识。 然后选择“添加”按钮。

  14. 在“主标识”下面,选择在上一步中选择的相同用户分配的托管标识。

    为服务器选择主标识和联合客户端标识的屏幕截图。

  15. 对于“联合客户端标识”,请选择“更改标识”选项,并搜索在先决条件中创建的多租户应用程序。

    配置服务器标识时用户分配的托管标识的屏幕截图。

    注意

    如果多租户应用程序尚未添加到具有所需权限(获取、包装密钥、解包密钥)的密钥保管库访问策略,则在 Azure 门户中使用此应用程序进行联合身份验证会显示错误。 在配置联合客户端标识之前,请确保正确配置权限。

  16. 选择“应用”

  17. 在“安全”选项卡上的“透明数据加密”下面,选择“配置透明数据加密”。 选择“客户管理的密钥”,将显示“输入密钥标识符”选项。 添加从第二个租户中的密钥获取的密钥标识符。

    使用密钥标识符配置 TDE 的屏幕截图。

  18. 选择“应用”

  19. 在页面底部选择“查看 + 创建”

  20. 在“查看 + 创建”页上,查看后选择“创建”。

后续步骤

另请参阅