Édition

Répertorier les attributions de rôle Azure à l’aide d’Azure CLI

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 CLI.

Remarque

Si votre organisation externalise des fonctions de gestion à un fournisseur de services qui utiliseAzure Lighthouse, les attributions de rôles autorisées par ce fournisseur de services ne s’afficheront pas ici. De même, les utilisateurs du locataire du fournisseur de services ne voient pas les attributions de rôles pour les utilisateurs du locataire d’un client, quel que soit le rôle qui leur a été attribué.

Prérequis

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

Pour lister les attributions de rôles d’un utilisateur déterminé, utilisez az role assignment list :

az role assignment list --assignee {assignee}

By default, only role assignments for the current subscription will be displayed. To view role assignments for the current subscription and below, add the --all parameter. To include role assignments at parent scopes, add the --include-inherited parameter. To include role assignments for groups of which the user is a member transitively, add the --include-groups parameter.

The following example lists the role assignments that are assigned directly to the patlong@contoso.com user:

az role assignment list --all --assignee patlong@contoso.com --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Virtual Machine Contributor",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  }
]

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

Pour lister les attributions de rôle qui existent dans l’étendue d’un groupe de ressources, utilisez az role assignment list :

az role assignment list --resource-group {resourceGroup}

The following example lists the role assignments for the pharma-sales resource group:

az role assignment list --resource-group pharma-sales --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Virtual Machine Contributor",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  
  ...

]

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 az role assignment list. Pour obtenir l’ID d’abonnement, accédez au panneau Abonnements du portail Azure ou utilisez az account list.

az role assignment list --scope "/subscriptions/{subscriptionId}"

Example:

az role assignment list --scope "/subscriptions/00000000-0000-0000-0000-000000000000" --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "admin@contoso.com",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "Subscription Admins",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "alain@contoso.com",
    "roleDefinitionName": "Reader",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },

  ...

]

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 az role assignment list. Pour obtenir l’ID du groupe d’administration, accédez au panneau Groupes d’administration dans le portail Azure ou utilisez az account management-group list.

az role assignment list --scope /providers/Microsoft.Management/managementGroups/{groupId}

Example:

az role assignment list --scope /providers/Microsoft.Management/managementGroups/sales-group --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "admin@contoso.com",
    "roleDefinitionName": "Owner",
    "scope": "/providers/Microsoft.Management/managementGroups/sales-group"
  },
  {
    "principalName": "alain@contoso.com",
    "roleDefinitionName": "Reader",
    "scope": "/providers/Microsoft.Management/managementGroups/sales-group"
  }
]

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

Effectuez les étapes suivantes :

  1. Récupérez l’ID du principal de l’identité managée affectée par le système ou par l’utilisateur.

    Pour obtenir l’ID du principal d’une identité managée affectée par l’utilisateur, vous pouvez utiliser az ad sp list ou az identity list.

    az ad sp list --display-name "{name}" --query [].id --output tsv
    

    Pour obtenir l’ID du principal d’une identité managée affectée par le système, vous pouvez utiliser az ad sp list.

    az ad sp list --display-name "{vmname}" --query [].id --output tsv
    
  2. Pour lister les attributions de rôles, utilisez az role assignment list.

    Par défaut, seules les attributions de rôles de l'abonnement actuel sont affichées. Pour afficher les attributions de rôles de l’abonnement actuel et antérieur, ajoutez le paramètre --all. Pour afficher les attributions de rôles héritées, ajoutez le paramètre --include-inherited.

    az role assignment list --assignee {objectId}
    

Étape suivante