Lister les attributions de rôle Azure avec Azure PowerShell

Le contrôle d’accès en fonction du rôle Azure (Azure RBAC) est le système d’autorisation que vous utilisez pour gérer l’accès aux ressources Azure. Pour déterminer les ressources auxquelles les utilisateurs, les groupes, les principaux de service et les identités managées ont accès, vous devez lister les rôles qui leur sont attribués. Cet article explique comment lister les attributions de rôles à l’aide d’Azure PowerShell.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Notes

Si votre organisation possède des fonctions de gestion externalisées à un fournisseur de services qui utiliseAzure Lighthouse, les attributions de rôles autorisées par ce fournisseur de services ne s’afficheront pas ici.

Prérequis

Lister les attributions de rôles pour l’abonnement actuel

Le moyen le plus simple d’obtenir une liste de toutes les attributions de rôle de l’abonnement actuel (y compris les attributions de rôle héritées de la racine et des groupes de gestion) consiste à utiliser Get-AzRoleAssignment sans aucun paramètre.

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

...

Répertorier les attributions de rôles pour un abonnement

Pour lister toutes les attributions de rôle dans l’étendue d’un abonnement, utilisez Get-AzRoleAssignment. Pour obtenir l’ID d’abonnement, vous pouvez le trouver dans le panneau Abonnements du portail Azure ou utiliser Get-AzSubscription.

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

Répertorier les attributions de rôles pour un utilisateur

Pour répertorier tous les rôles qui sont attribués à un utilisateur, utilisez 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

Pour répertorier tous les rôles attribués à un utilisateur et les rôles attribués aux groupes auxquels appartient l’utilisateur, utilisez Get-AzRoleAssignment.

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

Lister les attributions de rôles pour un groupe de ressources

Pour lister toutes les attributions de rôle dans l’étendue d’un groupe de ressources, utilisez 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

Lister les attributions de rôles pour un groupe d’administration

Pour lister toutes les attributions de rôle dans l’étendue d’un groupe d’administration, utilisez Get-AzRoleAssignment. Pour obtenir l’ID du groupe d’administration, accédez au panneau Groupes d’administration dans le portail Azure ou utilisez Get-AzManagementGroup.

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

Énumération des attributions de rôles d’une ressource

Pour lister les attributions de rôles d’une ressource, utilisez Get-AzRoleAssignment et le paramètre -Scope. L’étendue sera différente selon la ressource. Pour obtenir l’étendue, vous pouvez exécuter Get-AzRoleAssignment sans aucun paramètre afin de lister toutes les attributions de rôles, puis localiser l’étendue souhaitée.

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

L’exemple suivant montre comment lister les attributions de rôles d’un compte de stockage. Notez que cette commande recense également les attributions de rôles d’étendue supérieure (par exemple, les groupes de ressources et les abonnements) qui s’appliquent à ce compte de stockage.

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

Si vous souhaitez ne lister que les attributions de rôles directes d’une ressource, vous pouvez utiliser la commande Where-Object pour filtrer la liste.

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

Répertorier les attributions de rôles pour l’administrateur de service classique et les coadministrateurs

Pour lister les attributions de rôle des administrateurs et des coadministrateurs d’abonnements classiques, utilisez Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

Lister les attributions de rôles pour une identité managée

  1. Obtenez l’ID d’objet de l’identité managée attribuée par le système ou par l’utilisateur.

    Pour obtenir l'ID d’objet d'une identité managée attribuée par l'utilisateur, vous pouvez utiliser Get-AzADServicePrincipal.

    Get-AzADServicePrincipal -DisplayNameBeginsWith "<name> or <vmname>"
    
  2. Pour lister les attributions de rôles, utilisez AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId <objectid>
    

Étapes suivantes