你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

配置用于 Azure NetApp 文件卷加密的跨租户客户管理密钥

跨租户客户管理密钥(CMK)用于 Azure NetApp 文件卷加密,这允许基于 Azure 的服务提供商提供客户管理的密钥加密。 在跨租户场景中,NetApp 账户位于由独立软件供应商管理的租户中,而用于加密该 NetApp 账户中卷的密钥则位于您管理的租户的密钥保管库中。

跨租户客户管理的密钥在所有 Azure NetApp 文件支持区域中都可用。

了解跨租户客户管理的密钥

下图演示了一个跨租户 CMK 配置示例。 在关系图中,有两个 Azure 租户,分别为服务提供商的租户(租户 1)和您的租户(租户 2)。 租户 1 托管 NetApp 帐户(源 Azure 资源)。 租户 2 负责托管你的密钥保管库。

屏幕截图显示创建扩展 1 的应用程序卷组接口。

多租户应用程序注册由租户 1 中的服务提供商创建。 使用用户分配的托管标识以及密钥保管库的专用终结点在此应用程序上创建了联合标识凭据。 然后,会共享应用的名称和应用 ID。

按照以下步骤,在租户(租户 2)中安装服务提供商的应用程序,然后向与已安装的应用程序关联的服务主体授予对密钥保管库的访问权限。 还可以将加密密钥(即客户管理的密钥)存储在密钥保管库中。 还可以与服务提供商共享密钥位置(密钥的 URI)。 配置完成后,服务提供商具备以下内容:

  • 安装在客户租户中的多租户应用程序的应用程序 ID,该应用程序已被授予访问客户管理密钥的权限。
  • 配置为多租户应用程序凭据的托管标识。 密钥保管库中密钥的位置。

使用这三个参数,服务提供商在租户 1 中预配 Azure 资源,该资源可以使用租户 2 中的客户管理的密钥进行加密。

为 Azure NetApp 文件配置跨租户客户管理的密钥

跨租户客户管理的密钥的配置过程包含的部分只能使用 REST API 和 Azure CLI 完成。

将 NetApp 帐户配置为使用另一租户中保管库中的密钥

  1. 创建应用程序注册。
    1. 在 Azure 门户中导航到 Microsoft Entra ID
    2. 从左窗格中选择“管理 > 应用注册”
    3. 选择“+ 新建注册”。
    4. 提供应用程序注册的名称,然后选择任何组织目录中的 帐户
    5. 选择“注册”。
    6. 记下应用程序的 ApplicationID/ClientID。
  2. 创建用户分配的托管标识。
    1. 导航至 Azure 门户中的托管标识。
    2. 选择+ 新建
    3. 提供托管标识的资源组、区域和名称。
    4. 选择“查看 + 创建”
    5. 成功部署时,请记下“属性”下的用户分配的托管标识的 Azure ResourceId。 例如:/subscriptions/aaaaaaaa-0000-aaaa-0000-aaaa0000aaaa/resourcegroups/<resourceGroup>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityTitle>
  3. 在应用程序中将用户分配的托管标识配置为联合凭据
    1. 导航到“Microsoft Entra ID”>“应用注册”> 你的应用程序。
    2. 选择“证书和机密”。
    3. 选择“联合凭据”。
    4. 选择“+ 添加凭据”。
    5. 在“联合凭据方案”下,选择 “客户托管密钥”。
    6. 选择“选择托管标识”。 在窗格中,选择订阅。 在“托管标识”下,选择“用户分配的托管标识”。 在“选择”框中,搜索之前创建的托管标识,然后选择窗格底部的 “选择 ”。
    7. 在“凭据详细信息”下,提供凭据的名称和可选说明。 选择 并添加
  4. 创建密钥保管库的专用终结点:
    1. 共享其 Key Vault 的完整 Azure ResourceId。
    2. 导航到“专用终结点”。
    3. 选择+ 新建
    4. 选择订阅和资源组,然后输入专用终结点的名称,然后选择“下一资源>”。
    5. 在“资源”选项卡中,输入以下内容:
      • 在“连接方法”下, 按资源 ID 或别名选择“连接到 Azure 资源”。
      • 在“资源 ID 或别名”下,输入客户的密钥保管库的 ResourceID。
      • 在目标子资源下,输入“vault”。 然后选择 “下一步 > 虚拟网络”
    6. 在“虚拟网络”选项卡中,选择专用终结点的虚拟网络和子网。 终结点必须与要创建的卷位于同一个虚拟网络中。 该子网必须与委托给 Microsoft.NetApp/volumes的子网不同。
    7. 在接下来的几个选项卡上选择“下一步”。 最后,在最后一个选项卡上选择“ 创建 ”。

授权访问密钥保管库

  1. 在客户租户中安装服务提供商应用程序
    1. 从提供商处获取跨租户应用程序的管理员同意 URL。 在我们的示例中,URL 如下所示: https://login.microsoftonline.com/<tenant1-tenantId>/adminconsent/client_id=<client/application-ID-for-the-cross-tenant-application>。 URL 将打开一个登录页,提示输入凭据。 输入凭据后,您可能会看到一个错误提示,说明未配置重定向 URL;这是正常的,不必担心。
  2. 授予服务提供商应用程序对密钥保管库的访问权限。
    1. 导航到你的密钥保管库。 从左窗格中选择 “访问控制”(IAM )。
    2. 在“授予对此资源的访问权限”下,选择“ 添加角色分配”。
    3. 搜索并选择 Key Vault Crypto User
    4. 在“成员”下,选择“ 用户”、“组”或服务主体
    5. 选择“成员”。 从服务提供商处搜索已安装的应用程序的应用程序名称。
    6. 选择“查看 + 分配”。
  3. 接受与密钥保管库的传入专用终结点连接。
    1. 导航到你的密钥保管库。 从左窗格中选择 “网络 ”。
    2. 在“专用终结点连接”下,从提供程序的租户中选择传入的专用终结点,然后选择“批准”。
    3. 设置可选说明或接受默认值。

将 NetApp 帐户配置为使用密钥

注释

使用 az rest 命令是配置 NetApp 帐户以在不同的租户中使用 CMK 的唯一支持方法。

  1. 使用 az rest 命令,将 NetApp 帐户配置为在不同的租户中使用 CMK:

    az rest --method put --uri "/subscriptions/<subscription Id>/resourceGroups/<resourceGroupName>/providers/Microsoft.NetApp/netAppAccounts/<NetAppAccountName>?api-version=2025-01-01" --body 
    '{  \"properties\":
        {    \"encryption\":
            {      \"keySource\": \"Microsoft.KeyVault\",   \"keyVaultProperties\":    
                {\"keyVaultUri\": \"<URI to the key vault>\",   \"keyVaultResourceId\": \"/<full resource ID of the key vault>\", \"keyName\": \"<customer’s key name>\"   },
                \"identity\":
                    { \"userAssignedIdentity\": \"<full resource ID of the user-assigned identity>",  \"federatedClientId\": \"<clientId of multi-tenant application>\"
                    }
                }
            },
        \"location\": \"southcentralus\",   \"identity\": 
            {\"type\": \"userAssigned\",   \"userAssignedIdentities\": 
                {  \"<full resource ID of the user-assigned identity>\": {
                    }
                }
            }
        }'
     --verbose 
    

    发送 az rest 命令后,您的 NetApp 帐户已成功配置为跨租户指定密钥 (CMK)。

创建卷

注释

若要使用跨租户 CMK 创建卷,必须使用 Azure CLI。

  1. 使用 CLI 创建卷:
az netappfiles volume create -g <resource group name> --account-name <NetApp account name> --pool-name <pool name> --name <volume name> -l southcentralus --service-level premium --usage-threshold 100 --file-path "<file path>" --vnet <virtual network name> --subnet default --network-features Standard --encryption-key-source Microsoft.KeyVault --kv-private-endpoint-id <full resource ID to the private endpoint to the customer's vault> --debug 

后续步骤