Compartir a través de


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

El control de acceso basado en rol de Azure (Azure RBAC) es el sistema de autorización que se usa 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 de PowerShell de Azure Az para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az 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.

Prerrequisitos

Enumeración de asignaciones de roles para la suscripción actual

La manera 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 grupos raíz y de administración) es usar Get-AzRoleAssignment sin parámetros.

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 para una suscripción

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

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

Enumeración de asignaciones de roles para un usuario

Para enumerar todos los roles asignados a un usuario especificado, 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 asignados 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

Enumeración de asignaciones de roles para 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

Enumeración de asignaciones de roles 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 el panel Grupos de administración del portal de Azure o puede usar Get-AzManagementGroup.

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

Enumeración de asignaciones de roles para un recurso

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

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

En este ejemplo siguiente se muestra cómo enumerar las asignaciones de roles de una cuenta de almacenamiento. Tenga en cuenta que este comando también enumera las asignaciones de roles en ámbitos superiores, como grupos de recursos y 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 solo desea enumerar 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 administradores de servicios clásicos y coadministradores

Para enumerar las asignaciones de roles para el administrador de suscripciones clásico y los coadministradores, use Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

Enumeración de asignaciones de roles para una identidad administrada

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

    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

Asignación de roles de Azure mediante Azure PowerShell