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

Para enumerar todos los roles asignados a un usuario especificado y los roles que se asignan a los grupos a los que pertenece el usuario, 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>

En el ejemplo siguiente se muestra cómo enumerar las asignaciones de roles para una cuenta de almacenamiento. Tenga en cuenta que este comando también enumera las asignaciones de roles en ámbitos más altos, como los grupos de recursos y las suscripciones, que se aplican a esta cuenta de almacenamiento.

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

Si quiere simplemente mostrar las asignaciones de roles que se asignan directamente en un recurso, puede usar el comando Where-Object para filtrar la lista.

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

  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>
    

Pasos siguientes