Elencare le assegnazioni di ruolo di Azure con Azure PowerShell

Il controllo degli accessi in base al ruolo di Azure è il sistema di autorizzazione che si usa per gestire l'accesso alle risorse di Azure. Per determinare le risorse a cui gli utenti, i gruppi, le entità servizio o le identità gestite hanno accesso, elencare le assegnazioni di ruolo. Questo articolo descrive come elencare le assegnazioni di ruolo usando Azure PowerShell.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Nota

Se l'organizzazione ha funzioni di gestione esternalizzate a un provider di servizi che usa Azure Lighthouse, le assegnazioni di ruolo autorizzate da tale provider di servizi non verranno visualizzate qui. Analogamente, gli utenti nel tenant del provider di servizi non vedranno le assegnazioni di ruolo per gli utenti nel tenant di un cliente, indipendentemente dal ruolo assegnato.

Prerequisiti

Elencare le assegnazioni di ruolo per la sottoscrizione corrente

Il modo più semplice per ottenere un elenco di tutte le assegnazioni di ruolo nella sottoscrizione corrente (incluse le assegnazioni di ruolo ereditate dai gruppi radice e di gestione) consiste nell'usare Get-AzRoleAssignment senza parametri.

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

...

Elencare le assegnazioni di ruolo per una sottoscrizione

Per elencare tutte le assegnazioni di ruolo in un ambito di sottoscrizione, usare Get-AzRoleAssignment. Per ottenere l'ID sottoscrizione, è possibile trovarlo nel pannello Sottoscrizioni nel portale di Azure oppure usare Get-AzSubscription.

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

Elencare le assegnazioni di ruolo per un utente

Per elencare tutti i ruoli assegnati a un utente specifico, usare 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

Elencare le assegnazioni di ruolo per un gruppo di risorse

Per elencare tutte le assegnazioni di ruolo nell'ambito di un gruppo di risorse, usare 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

Elencare le assegnazioni di ruolo per un gruppo di gestione

Per elencare tutte le assegnazioni di ruolo nell'ambito di un gruppo di gestione, usare Get-AzRoleAssignment. Per ottenere l'ID del gruppo di gestione, è possibile trovarlo nel pannello Gruppi di gestione nel portale di Azure oppure usare Get-AzManagementGroup.

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

Elencare le assegnazioni di ruolo per una risorsa

Per elencare le assegnazioni di ruolo per una risorsa specifica, usare Get-AzRoleAssignment e il -Scope parametro . L'ambito sarà diverso a seconda della risorsa. Per ottenere l'ambito, è possibile eseguire Get-AzRoleAssignment senza parametri per elencare tutte le assegnazioni di ruolo e quindi trovare l'ambito da elencare.

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"}

Elencare le assegnazioni di ruolo per l'amministratore del servizio classico e i coamministratori

Per elencare le assegnazioni di ruolo per l'amministratore e i coamministratori della sottoscrizione classici, usare Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

Elencare le assegnazioni di ruolo per un'identità gestita

Seguire questa procedura:

  1. Ottenere l'ID oggetto dell'identità gestita assegnata dal sistema o assegnata dall'utente.

    Per ottenere l'ID oggetto di un'identità gestita assegnata dall'utente, è possibile usare Get-AzADServicePrincipal.

    Get-AzADServicePrincipal -DisplayNameBeginsWith "<name> or <vmname>"
    
  2. Per elencare le assegnazioni di ruolo, usare Get-AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId <objectid>
    

Passaggio successivo