Enumeración de asignaciones de roles de Azure mediante Azure PowerShell

El control de acceso basado en rol (RBAC) de Azure es el sistema de autorización que puede utilizar para administrar el acceso a los recursos de Azure. Para determinar a qué recursos tienen acceso los usuarios, grupos, entidades de servicio o identidades administradas, se muestran sus asignaciones de roles. En este artículo se describe cómo enumerar las asignaciones de roles mediante Azure PowerShell.

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Nota:

Si su organización ha externalizado las funciones de administración a un proveedor de servicios que usa Azure Lighthouse, las asignaciones de roles autorizadas por ese proveedor de servicios no se mostrarán aquí. Del mismo modo, los usuarios del inquilino del proveedor de servicios no verán asignaciones de roles para los usuarios en el inquilino de un cliente, independientemente del rol que se les haya asignado.

Requisitos previos

Enumeración de asignaciones de roles de la subscripción actual

La forma más fácil de obtener una lista de todas las asignaciones de roles de la suscripción actual (incluidas las asignaciones de roles heredadas de los grupos raíz y de administración) es usar Get-AzRoleAssignment sin ningún parámetro.

Get-AzRoleAssignment
PS C:\> Get-AzRoleAssignment

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName        : Alain
SignInName         : alain@example.com
RoleDefinitionName : Storage Blob Data Reader
RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName        : Marketing
SignInName         :
RoleDefinitionName : Contributor
RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
ObjectId           : 22222222-2222-2222-2222-222222222222
ObjectType         : Group
CanDelegate        : False

...

Enumeración de asignaciones de roles de una subscripción

Para enumerar todas las asignaciones de roles en un ámbito de suscripción, use Get-AzRoleAssignment. Para obtener el identificador de suscripción, lo puede encontrar en la hoja Suscripciones de Azure Portal o bien puede usar Get-AzSubscription.

Get-AzRoleAssignment -Scope /subscriptions/<subscription_id>
PS C:\> Get-AzRoleAssignment -Scope /subscriptions/00000000-0000-0000-0000-000000000000

Lista de las asignaciones de rol de un usuario

Para enumerar todos los roles que están asignados a un usuario específico, use Get-AzRoleAssignment.

Get-AzRoleAssignment -SignInName <email_or_userprincipalname>
PS C:\> Get-AzRoleAssignment -SignInName isabella@example.com | FL DisplayName, RoleDefinitionName, Scope

DisplayName        : Isabella Simonsen
RoleDefinitionName : BizTalk Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

To list all the roles that are assigned to a specified user and the roles that are assigned to the groups to which the user belongs, use Get-AzRoleAssignment.

Get-AzRoleAssignment -SignInName <email_or_userprincipalname> -ExpandPrincipalGroups
Get-AzRoleAssignment -SignInName isabella@example.com -ExpandPrincipalGroups | FL DisplayName, RoleDefinitionName, Scope

Lista de las asignaciones de roles de un grupo de recursos

Para enumerar todas las asignaciones de roles en un ámbito de grupo de recursos, use Get-AzRoleAssignment.

Get-AzRoleAssignment -ResourceGroupName <resource_group_name>
PS C:\> Get-AzRoleAssignment -ResourceGroupName pharma-sales | FL DisplayName, RoleDefinitionName, Scope

DisplayName        : Alain Charon
RoleDefinitionName : Backup Operator
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

DisplayName        : Isabella Simonsen
RoleDefinitionName : BizTalk Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

DisplayName        : Alain Charon
RoleDefinitionName : Virtual Machine Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

Lista de asignaciones de rol para un grupo de administración

Para enumerar todas las asignaciones de roles en un ámbito de grupo de administración, use Get-AzRoleAssignment. Para obtener el identificador del grupo de administración, puede encontrarlo en la hoja Grupos de administración de Azure Portal o usar Get-AzManagementGroup.

Get-AzRoleAssignment -Scope /providers/Microsoft.Management/managementGroups/<group_id>
PS C:\> Get-AzRoleAssignment -Scope /providers/Microsoft.Management/managementGroups/marketing-group

Lista de las asignaciones de roles de un recurso

Para enumerar las asignaciones de roles de un recurso específico, use Get-AzRoleAssignment y el parámetro -Scope. El ámbito será diferente según el recurso. Para obtener el ámbito, puede ejecutar Get-AzRoleAssignment sin parámetros para mostrar todas las asignaciones de roles y, a continuación, buscar el ámbito que quiere enumerar.

Get-AzRoleAssignment -Scope "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/<provider_name>/<resource_type>/<resource>

This following example shows how to list the role assignments for a storage account. Note that this command also lists role assignments at higher scopes, such as resource groups and subscriptions, that apply to this storage account.

PS C:\> Get-AzRoleAssignment -Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/storage-test-rg/providers/Microsoft.Storage/storageAccounts/storagetest0122"

If you want to just list role assignments that are assigned directly on a resource, you can use the Where-Object command to filter the list.

PS C:\> Get-AzRoleAssignment | Where-Object {$_.Scope -eq "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/storage-test-rg/providers/Microsoft.Storage/storageAccounts/storagetest0122"}

Enumeración de asignaciones de roles para el administrador y los coadministradores del servicio clásico

Para enumerar las asignaciones de roles para el administrador y los coadministradores de una suscripción clásica, use Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

Lista de asignaciones de roles para una identidad administrada

Siga estos pasos:

  1. Obtenga el identificador de objeto de la identidad administrada asignada por el usuario o el sistema.

    Para obtener el identificador de objeto de una identidad administrada asignada por el usuario, puede usar Get-AzADServicePrincipal.

    Get-AzADServicePrincipal -DisplayNameBeginsWith "<name> or <vmname>"
    
  2. Para enumerar las asignaciones de roles, use Get-AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId <objectid>
    

Paso siguiente