Tutoriel : Accorder un accès utilisateur aux ressources Azure à l’aide d’Azure PowerShell

Le contrôle d’accès en fonction du rôle Azure (RBAC Azure) vous permet de gérer l’accès aux ressources Azure. Dans ce tutoriel, vous accordez l’accès à un utilisateur pour afficher tous les éléments d’un abonnement et gérer tous les éléments d’un groupe de ressources à l’aide d’Azure PowerShell.

Dans ce tutoriel, vous allez apprendre à :

  • Accorder l’accès à un utilisateur dans différentes étendues
  • Répertorier les accès
  • Suppression d'accès

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

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.

Prérequis

Pour exécuter ce didacticiel, les éléments suivants sont nécessaires :

Affectations de rôles

Dans le contrôle d’accès en fonction du rôle Azure, vous créez une attribution de rôle pour accorder l’accès. Une attribution de rôle se compose de trois éléments : un principal de sécurité, une définition de rôle et une étendue. Voici deux attributions de rôles que vous allez effectuer dans ce tutoriel :

Principal de sécurité Définition de rôle Étendue
Utilisateur
(Utilisateur du tutoriel RBAC)
Lecteur Abonnement
Utilisateur
(Utilisateur du tutoriel RBAC)
Contributeur Resource group
(rbac-tutorial-resource-group)

Role assignments for a user

Créer un utilisateur

Pour attribuer un rôle, vous avez besoin d’un utilisateur, d’un groupe ou d’un principal du service. Si vous n’avez pas déjà un utilisateur, vous pouvez en créer un.

  1. Dans Azure Cloud Shell, créez un mot de passe conforme à vos exigences de complexité de mot de passe.

    $PasswordProfile = @{ Password = "<Password>" }
    
  2. Créez un nouvel utilisateur pour votre domaine à l’aide de la commande New-MgUser.

    New-MgUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile `
       -UserPrincipalName "rbacuser@example.com" -AccountEnabled:$true -MailNickName "rbacuser"
    
    DisplayName        Id                                   Mail UserPrincipalName
    -----------        --                                   ---- -----------------
    RBAC Tutorial User 11111111-1111-1111-1111-111111111111      rbacuser@example.com
    

Créer un groupe de ressources

Vous utilisez un groupe de ressources pour montrer comment attribuer un rôle à une étendue de groupe de ressources.

  1. Obtenez la liste des emplacements de région à l’aide de la commande Get-AzLocation.

    Get-AzLocation | select Location
    
  2. Sélectionnez un emplacement près de chez vous et assignez-le à une variable.

    $location = "westus"
    
  3. Créez un groupe de ressources avec la commande New-AzResourceGroup.

    New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
    
    ResourceGroupName : rbac-tutorial-resource-group
    Location          : westus
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    

Accorder l'accès

Pour accorder l’accès à l’utilisateur, utilisez la commande New-AzRoleAssignment afin d’attribuer un rôle. Vous devez spécifier le principal de sécurité, la définition de rôle et l’étendue.

  1. Obtenez l’ID de votre abonnement à l’aide de la commande Get-AzSubscription.

    Get-AzSubscription
    
    Name     : Pay-As-You-Go
    Id       : 00000000-0000-0000-0000-000000000000
    TenantId : 22222222-2222-2222-2222-222222222222
    State    : Enabled
    
  2. Enregistrez l’étendue de l’abonnement dans une variable.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  3. Attribuez le rôle de Lecteur à l’utilisateur dans l’étendue de l’abonnement.

    New-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/44444444-4444-4444-4444-444444444444
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    
  4. Attribuez le rôle de Contributeur à l’utilisateur dans l’étendue du groupe de ressources.

    New-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    

Répertorier les accès

  1. Pour vérifier l’accès à l’abonnement, utilisez la commande Get-AzRoleAssignment afin de lister les attributions de rôle.

    Get-AzRoleAssignment -SignInName rbacuser@example.com -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    

    Dans la sortie, vous pouvez voir que le rôle de Lecteur a été attribué à l’utilisateur du tutoriel RBAC dans l’étendue de l’abonnement.

  2. Pour vérifier l’accès au groupe de ressources, utilisez la commande Get-AzRoleAssignment afin de lister les attributions de rôle.

    Get-AzRoleAssignment -SignInName rbacuser@example.com -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    

    Dans la sortie, vous pouvez voir que les rôles de Collaborateur et de Lecteur ont été attribués à l’utilisateur du tutoriel RBAC. Le rôle de Contributeur est dans l’étendue rbac-tutorial-resource-group et le rôle de Lecteur est hérité dans l’étendue de l’abonnement.

(Facultatif) Accès à la liste à l’aide du portail Azure

  1. Pour voir les attributions de rôle dans le portail Azure, affichez le panneau Contrôle d’accès (IAM) pour l’abonnement.

    Role assignments for a user at subscription scope

  2. Affichez le panneau Contrôle d’accès (IAM) pour le groupe de ressources.

    Role assignments for a user at resource group scope

Suppression d'accès

Pour supprimer l’accès accordé à des utilisateurs, des groupes ou des applications, utilisez Remove-AzRoleAssignment afin de supprimer une attribution de rôle.

  1. Utilisez la commande suivante pour supprimer l’attribution de rôle de Collaborateur pour l’utilisateur dans l’étendue de groupe de ressources.

    Remove-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
  2. Utilisez la commande suivante pour supprimer l’attribution de rôle de Lecteur pour l’utilisateur dans l’étendue d’abonnement.

    Remove-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    

Nettoyer les ressources

Pour supprimer les ressources créées par ce tutoriel, supprimez le groupe de ressources et l’utilisateur.

  1. Supprimez le groupe de ressources à l’aide de la commande Remove-AzResourceGroup.

    Remove-AzResourceGroup -Name "rbac-tutorial-resource-group"
    
    Confirm
    Are you sure you want to remove resource group 'rbac-tutorial-resource-group'
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
    
  2. Lorsque vous êtes invité à confirmer votre choix, saisissez Y. La suppression prendra quelques secondes.

  3. Supprimez l’utilisateur à l’aide de la commande Remove-MgUser.

    $User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'"
    Remove-MgUser -UserId $User.Id
    

Étapes suivantes