你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
将托管标识用于 Azure 负载测试
本文内容
本文介绍如何为 Azure 负载测试创建托管标识。 你可以在负载测试中使用托管标识安全地读取 Azure 密钥保管库中的机密或证书。
Microsoft Entra ID 中的托管标识允许负载测试资源轻松访问受 Microsoft Entra 保护的 Azure 密钥保管库。 标识由 Azure 平台管理,你无需管理或轮换任何机密。 有关 Microsoft Entra ID 中的托管标识的详细信息,请参阅 Azure 资源的托管标识 。
Azure 负载测试支持两种类型的标识:
系统分配的标识与负载测试资源关联,如果删除该资源,也会删除该标识 。 一个资源只能有一个系统分配的标识。
用户分配的标识是可以分配给负载测试资源的独立 Azure 资源 。 删除负载测试资源时,托管标识仍然可用。 可以将多个用户分配的标识分配给负载测试资源。
目前,只能使用托管标识访问 Azure 密钥保管库。
先决条件
具有活动订阅的 Azure 帐户。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户 。
一个 Azure 负载测试资源。 如果需要创建 Azure 负载测试资源,请参阅创建并运行负载测试 快速入门。
若要创建用户分配的托管标识,你的帐户需要托管标识参与者 角色分配。
将系统分配的标识分配到负载测试资源
若要为 Azure 负载测试资源分配系统分配的标识,请在资源上启用相应属性。 可使用 Azure 门户设置此属性,也可使用 Azure 资源管理器 (ARM) 模板进行设置。
若要在门户中设置托管标识,首先要创建 Azure 负载测试资源,然后启用该功能。
在 Azure 门户 中,转到你的 Azure 负载测试资源。
在左窗格中,选择“标识” 。
在“系统分配”选项卡中,将“状态”切换到“开”,然后选择“保存”。
在确认窗口中,选择“是”确认分配该托管标识 。
此操作完成后,页面会显示托管标识的对象 ID,并允许向其分配权限。
使用 --identity-type SystemAssigned
运行 az load update
命令,将系统分配的标识添加到负载测试资源:
az load update --name <load-testing-resource-name> --resource-group <group-name> --identity-type SystemAssigned
可以使用 ARM 模板自动部署 Azure 资源。 有关将 ARM 模板与 Azure 负载测试配合使用的详细信息,请参阅 Azure 负载测试 ARM 参考文档 。
可以在创建 Microsoft.LoadTestService/loadtests
类型的资源时分配系统分配的托管标识。 在资源定义中使用 SystemAssigned
值配置 identity
属性:
"identity": {
"type": "SystemAssigned"
}
添加系统分配的标识类型将告知 Azure 为资源创建和管理标识。 例如,Azure 负载测试资源可能如下所示:
{
"type": "Microsoft.LoadTestService/loadtests",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"identity": {
"type": "SystemAssigned"
}
}
资源创建完成后,将为资源配置以下属性:
"identity": {
"type": "SystemAssigned",
"tenantId": "00000000-0000-0000-0000-000000000000",
"principalId": "00000000-0000-0000-0000-000000000000"
}
tenantId
属性将标识该托管标识所属的 Microsoft Entra 租户。 principalId
是资源的新标识的唯一标识符。 在 Microsoft Entra ID 中,服务主体的名称与 Azure 负载测试资源相同。
将用户分配的标识分配到负载测试资源
在将用户分配的托管标识添加到 Azure 负载测试资源之前,必须先在 Microsoft Entra ID 中创建此标识。 然后,可以使用该标识的资源标识符来分配标识。
可将多个用户分配的托管标识添加到资源。 例如,如果需要访问多个 Azure 资源,可为这些标识中的每一个授予不同的权限。
按照创建用户分配的托管标识 中所述的说明创建用户分配的托管标识。
在 Azure 门户 中,转到你的 Azure 负载测试资源。
在左窗格中,选择“标识” 。
选择“用户分配”选项卡,然后选择“添加” 。
搜索并选择前面创建的托管标识。 然后选择“添加”以将其添加到 Azure 负载测试资源 。
创建用户分配的标识。
az identity create --resource-group <group-name> --name <identity-name>
使用 --identity-type UserAssigned
运行 az load update
命令,将用户分配的标识添加到负载测试资源:
az load update --name <load-testing-resource-name> --resource-group <group-name> --identity-type UserAssigned --user-assigned <identity-id>
可以使用 ARM 模板和资源类型 Microsoft.LoadTestService/loadtests
来创建 Azure 负载测试资源。 有关将 ARM 模板与 Azure 负载测试配合使用的详细信息,请参阅 Azure 负载测试 ARM 参考文档 。
按照创建用户分配的托管标识 中所述的说明创建用户分配的托管标识。
在资源定义的 identity
节中指定用户分配的托管标识。
请将 <RESOURCEID>
文本占位符替换为用户分配的标识的资源 ID:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
以下代码片段显示了具有用户分配的标识的 Azure 负载测试 ARM 资源定义的示例:
{
"type": "Microsoft.LoadTestService/loadtests",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
创建负载测试资源后,Azure 将在输出中提供 principalId
和 clientId
属性:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {
"principalId": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000"
}
}
}
principalId
是用于 Microsoft Entra 管理的标识的唯一标识符。 clientId
是资源的新标识的唯一标识符,用于指定在运行时调用期间使用哪个标识。
你可能需要将目标资源配置为允许从负载测试资源进行访问。 例如,如果读取 Azure 密钥保管库中的机密或证书 ,或者使用客户管理的密钥进行加密 ,则还必须添加包含资源的托管标识的访问策略。 否则,即使使用的令牌有效,对 Azure 密钥保管库的调用也会被拒绝。
同样,如果要在服务器指标上设置故障条件 ,则应指定指标引用标识来为其获取指标。 应配置目标资源,以便标识可以从资源中读取指标。
相关内容