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

管理对 Azure 负载测试的访问权限

本文介绍了如何管理对 Azure 负载测试资源的访问权限(授权)。 Azure 基于角色的访问控制 (Azure RBAC) 用于管理对 Azure 资源的访问权限,例如,创建新资源或使用现有资源的权限。 可以使用 Azure 门户、Azure 命令行工具或 Azure 管理 API 将基于角色的访问权限授予用户。

先决条件

若要分配 Azure 角色,Azure 帐户必须具有:

若要创建新的负载测试资源,Azure 帐户必须具有:

  • 在资源组中为负载测试资源创建资源的权限(例如参与者所有者角色)。

Azure 负载测试中的角色

在 Azure 负载测试中,访问权限是通过将相应的 Azure 角色分配给负载测试资源域的用户、组和应用程序来授予的。 以下是负载测试资源所支持的内置角色:

角色 说明
负载测试读取者 负载测试资源中的只读操作。 读者可以在资源中列出和查看测试和测试运行。 读取者无法创建、更新或运行测试。
负载测试参与者 查看、创建、编辑或删除(如果适用)负载测试资源中的测试和测试运行。
负载测试所有者 对负载测试资源的完全访问权限,包括查看、创建、编辑或删除(如果适用)资源中的资产的权限。 例如,你可以修改或删除负载测试资源。

如果你在订阅级别拥有“所有者”、“参与者”或“负载测试所有者”角色,则会自动拥有与资源级别的负载测试所有者相同的权限。

重要

在 Azure 中,角色访问的作用域可以限定为多个级别。 例如,某用户对资源拥有所有者访问权限,但对于包含该资源的资源组,该用户可能没有所有者访问权限。 有关详细信息,请参阅 Azure RBAC 工作原理

角色权限

下表描述授予每个角色的特定权限。 这些权限可以包括“操作”(授予权限)和“不操作”(限制权限)。

负载测试所有者

负载测试所有者可管理所有内容,包括访问权限。 下表显示了授予角色的权限:

操作 说明
Microsoft.Resources/deployments/* 创建和管理资源组部署。
Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组。
Microsoft.Insights/alertRules/* 创建和管理警报规则。
Microsoft.Authorization/*/read 读取授权。
Microsoft.LoadTestService/* 创建和管理负载测试资源。
DataActions 说明
Microsoft.LoadTestService/loadtests/* 启动、停止和管理负载测试。

负载测试参与者

负载测试参与者可管理访问权限以外的所有内容。 下表显示了授予角色的权限:

操作 说明
Microsoft.Resources/deployments/* 创建和管理资源组部署。
Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组。
Microsoft.Insights/alertRules/* 创建和管理警报规则。
Microsoft.Authorization/*/read 读取授权。
Microsoft.LoadTestService/*/read 创建和管理负载测试资源。
DataActions 说明
Microsoft.LoadTestService/loadtests/* 启动、停止和管理负载测试。

负载测试读取者

负载测试读取者可以查看负载测试资源中的所有资源,但不能进行任何更改。 下表显示了授予角色的权限:

操作 说明
Microsoft.Resources/deployments/* 创建和管理资源组部署。
Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组。
Microsoft.Insights/alertRules/* 创建和管理警报规则。
Microsoft.Authorization/*/read 读取授权。
Microsoft.LoadTestService/*/read 创建和管理负载测试资源。
DataActions 说明
Microsoft.LoadTestService/loadtests/readTest/action 读取负载测试。

为负载测试资源配置 Azure RBAC

以下部分演示如何通过 Azure 门户和 PowerShell 在负载测试资源上配置 Azure RBAC。

使用 Azure 门户配置 Azure RBAC

  1. 登录到 Azure 门户并从“Azure 负载测试”页打开负载测试资源

  2. 选择“访问控制(IAM)”并从可用角色列表中选择角色。 可以选择 Azure 负载测试资源所支持的任何可用的内置角色,或者你可能已定义的任何自定义角色。 将角色分配给要向其授予权限的用户。

    有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色

删除用户的角色分配

可以删除不管理 Azure 负载测试资源或不再为组织工作的用户的访问权限。 以下步骤演示如何删除用户的角色分配。 有关详细步骤,请参阅删除 Azure 角色分配

  1. 在要删除访问权限的范围(例如管理组、订阅、资源组或资源)内打开“访问控制(IAM)”。

  2. 选择“角色分配”选项卡以查看在此范围内的所有角色分配。

  3. 在角色分配列表中,在具有要删除的角色分配的用户旁边添加一个复选标记。

  4. 选择“删除”,然后选择“是”进行确认

使用 PowerShell 配置 Azure RBAC

还可以使用以下 Azure PowerShell cmdlet 为负载测试资源配置基于角色的访问权限:

  • Get-AzRoleDefinition 列出了 Microsoft Entra ID 中提供的所有 Azure 角色。 可以使用此 cmdlet 和 Name 参数来列出特定角色可以执行的所有操作。

    Get-AzRoleDefinition -Name 'Load Test Contributor'
    

    下面的片段是示例输出:

    Name             : Load Test Contributor
    Id               : 00000000-0000-0000-0000-000000000000
    IsCustom         : False
    Description      : View, create, update, delete and execute load tests. View and list load test resources but can not make any changes.
    Actions          : {Microsoft.LoadTestService/*/read, Microsoft.Authorization/*/read, Microsoft.Resources/deployments/*, Microsoft.Resources/subscriptions/resourceGroups/read…}
    NotActions       : {}
    DataActions      : {Microsoft.LoadTestService/loadtests/*}
    NotDataActions   : {}
    AssignableScopes : {/}
    
  • Get-AzRoleAssignment 列出了指定范围内的 Azure 角色分配。 在没有任何参数的情况下,此 cmdlet 返回在订阅下进行的所有角色分配。 使用 ExpandPrincipalGroups 参数列出针对指定用户和该用户所在组的访问权限分配。

    示例:使用以下 cmdlet 列出负载测试资源中的所有用户及其角色

    Get-AzRoleAssignment -Scope '/subscriptions/<SubscriptionID>/resourcegroups/<Resource Group Name>/Providers/Microsoft.LoadTestService/loadtests/<Load Test Name>'
    
  • 使用 New-AzRoleAssignment 为特定范围内的用户、组和应用程序分配访问权限。

    示例:使用以下命令为负载测试资源范围内的用户分配“负载测试读取者”角色

    New-AzRoleAssignment -SignInName <sign-in Id of a user you wish to grant access> -RoleDefinitionName 'Load Test Reader' -Scope '/subscriptions/<SubscriptionID>/resourcegroups/<Resource Group Name>/Providers/Microsoft.LoadTestService/loadtests/<Load Testing resource name>'
    
  • 使用 Remove-AzRoleAssignment 从特定范围中删除指定用户、组或应用程序的访问权限。

    示例:使用以下命令将用户从负载测试资源范围中的负载测试读取者角色中删除。

    Remove-AzRoleAssignment -SignInName <sign-in Id of a user you wish to remove> -RoleDefinitionName 'Load Test Reader' -Scope '/subscriptions/<SubscriptionID>/resourcegroups/<Resource Group Name>/Providers/Microsoft.LoadTestService/loadtests/<Load Testing resource name>'
    

疑难解答

本部分列出了排查 Azure 负载测试中用户访问常见问题的步骤。

无法使用 You are not authorized to use this resource 创建或运行测试

如果你的 Azure 帐户没有管理测试所需的权限,则会看到此消息。 请确保向用户授予负载测资源的负载测试所有者负载测试参与者角色。

Screenshot that shows an error message in the Azure portal that you're not authorized to use the Azure Load Testing resource.