Azure 基于角色的访问控制 (Azure RBAC) 是用于管理 Azure 资源访问权限的授权系统。 若要确定用户、组、服务主体或托管标识有权访问的资源,请列出其角色分配。 本文介绍如何使用 Azure CLI 列出角色分配。
注意
如果你的组织已将管理功能外包给使用 Azure Lighthouse 的服务提供商,则此处将不会显示该服务提供商授权的角色分配。 同样,无论已分配有什么角色,服务提供商租户中的用户都不会看到用户在客户租户中的角色分配。
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 基于角色的访问控制 (Azure RBAC) 是用于管理 Azure 资源访问权限的授权系统。 若要确定用户、组、服务主体或托管标识有权访问的资源,请列出其角色分配。 本文介绍如何使用 Azure CLI 列出角色分配。
注意
如果你的组织已将管理功能外包给使用 Azure Lighthouse 的服务提供商,则此处将不会显示该服务提供商授权的角色分配。 同样,无论已分配有什么角色,服务提供商租户中的用户都不会看到用户在客户租户中的角色分配。
若要列出特定用户的角色分配,请使用 az role assignment list:
az role assignment list --assignee {assignee}
By default, only role assignments for the current subscription will be displayed. To view role assignments for the current subscription and below, add the --all
parameter. To include role assignments at parent scopes, add the --include-inherited
parameter. To include role assignments for groups of which the user is a member transitively, add the --include-groups
parameter.
The following example lists the role assignments that are assigned directly to the patlong@contoso.com user:
az role assignment list --all --assignee patlong@contoso.com --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
{
"principalName": "patlong@contoso.com",
"roleDefinitionName": "Backup Operator",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
},
{
"principalName": "patlong@contoso.com",
"roleDefinitionName": "Virtual Machine Contributor",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
}
]
若要列出存在于资源组范围的角色分配,请使用 az role assignment list:
az role assignment list --resource-group {resourceGroup}
The following example lists the role assignments for the pharma-sales resource group:
az role assignment list --resource-group pharma-sales --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
{
"principalName": "patlong@contoso.com",
"roleDefinitionName": "Backup Operator",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
},
{
"principalName": "patlong@contoso.com",
"roleDefinitionName": "Virtual Machine Contributor",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
},
...
]
若要列出订阅范围内的所有角色分配,请使用 az role assignment list。 若要获取订阅 ID,可以在 Azure 门户中的“订阅”边栏选项卡上找到它,也可以使用 az account list。
az role assignment list --scope "/subscriptions/{subscriptionId}"
Example:
az role assignment list --scope "/subscriptions/00000000-0000-0000-0000-000000000000" --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
{
"principalName": "admin@contoso.com",
"roleDefinitionName": "Owner",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
},
{
"principalName": "Subscription Admins",
"roleDefinitionName": "Owner",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
},
{
"principalName": "alain@contoso.com",
"roleDefinitionName": "Reader",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
},
...
]
若要列出管理组范围内的所有角色分配,请使用 az role assignment list。 若要获取管理组 ID,可以在 Azure 门户中的“管理组”边栏选项卡上找到它,也可以使用 az account management-group list。
az role assignment list --scope /providers/Microsoft.Management/managementGroups/{groupId}
Example:
az role assignment list --scope /providers/Microsoft.Management/managementGroups/sales-group --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
{
"principalName": "admin@contoso.com",
"roleDefinitionName": "Owner",
"scope": "/providers/Microsoft.Management/managementGroups/sales-group"
},
{
"principalName": "alain@contoso.com",
"roleDefinitionName": "Reader",
"scope": "/providers/Microsoft.Management/managementGroups/sales-group"
}
]
执行以下步骤:
获取系统分配的或用户分配的托管标识的主体 ID。
若要获取用户分配的托管标识的主体 ID,可以使用 az ad sp list 或 az identity list。
az ad sp list --display-name "{name}" --query [].id --output tsv
若要获取系统分配的托管标识的主体 ID,可以使用 az ad sp list。
az ad sp list --display-name "{vmname}" --query [].id --output tsv
若要列出角色分配,请使用 az role assignment list。
默认情况下,将仅显示当前订阅的角色分配。 若要查看当前订阅和以下订阅的角色分配,请添加 --all
参数。 若要查看继承的角色分配,请添加 --include-inherited
参数。
az role assignment list --assignee {objectId}