Didacticiel : Accorder un accès utilisateur aux ressources Azure à l’aide du contrôle RBAC et d’Azure PowerShellTutorial: Grant a user access to Azure resources using RBAC and Azure PowerShell

Le contrôle d’accès en fonction du rôle (RBAC) vous permet de gérer l’accès aux ressources Azure.Role-based access control (RBAC) is the way that you manage access to Azure resources. 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.In this tutorial, you grant a user access to view everything in a subscription and manage everything in a resource group using Azure PowerShell.

Ce tutoriel vous montre comment effectuer les opérations suivantes :In this tutorial, you learn how to:

  • Accorder l’accès à un utilisateur dans différentes étenduesGrant access for a user at different scopes
  • Répertorier les accèsList access
  • Suppression d'accèsRemove access

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

PrérequisPrerequisites

Pour suivre ce didacticiel, vous avez besoin des éléments suivants :To complete this tutorial, you will need:

  • Autorisations pour créer des utilisateurs dans Azure Active Directory (ou disposer d’un utilisateur existant)Permissions to create users in Azure Active Directory (or have an existing user)
  • Azure Cloud ShellAzure Cloud Shell

Affectations de rôlesRole assignments

Dans RBAC, pour accorder l’accès, vous créez une attribution de rôle.In RBAC, to grant access, you create a role assignment. 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.A role assignment consists of three elements: security principal, role definition, and scope. Voici deux attributions de rôles que vous allez effectuer dans ce tutoriel :Here are the two role assignments you will perform in this tutorial:

Principal de sécuritéSecurity principal Définition de rôleRole definition ÉtendueScope
UtilisateurUser
(Utilisateur du tutoriel RBAC)(RBAC Tutorial User)
LecteurReader AbonnementSubscription
UtilisateurUser
(Utilisateur du tutoriel RBAC)(RBAC Tutorial User)
ContributeurContributor Groupe de ressourcesResource group
(rbac-tutorial-resource-group)(rbac-tutorial-resource-group)

Attributions de rôles pour un utilisateur

Créer un utilisateurCreate a user

Pour attribuer un rôle, vous avez besoin d’un utilisateur, d’un groupe ou d’un principal du service.To assign a role, you need a user, group, or service principal. Si vous n’avez pas déjà un utilisateur, vous pouvez en créer un.If you don't already have a user, you can create one.

  1. Dans Azure Cloud Shell, créez un mot de passe conforme à vos exigences de complexité de mot de passe.In Azure Cloud Shell, create a password that complies with your password complexity requirements.

    $PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
    $PasswordProfile.Password = "Password"
    
  2. Créez un nouvel utilisateur pour votre domaine à l’aide de la commande New-AzureADUser.Create a new user for your domain using the New-AzureADUser command.

    New-AzureADUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile `
      -UserPrincipalName "rbacuser@example.com" -AccountEnabled $true -MailNickName "rbacuser"
    
    ObjectId                             DisplayName        UserPrincipalName    UserType
    --------                             -----------        -----------------    --------
    11111111-1111-1111-1111-111111111111 RBAC Tutorial User rbacuser@example.com Member
    

Créer un groupe de ressourcesCreate a resource group

Vous utilisez un groupe de ressources pour montrer comment attribuer un rôle à une étendue de groupe de ressources.You use a resource group to show how to assign a role at a resource group scope.

  1. Obtenez la liste des emplacements de région à l’aide de la commande Get-AzLocation.Get a list of region locations using the Get-AzLocation command.

    Get-AzLocation | select Location
    
  2. Sélectionnez un emplacement près de chez vous et assignez-le à une variable.Select a location near you and assign it to a variable.

    $location = "westus"
    
  3. Créez un groupe de ressources avec la commande New-AzResourceGroup.Create a new resource group using the New-AzResourceGroup command.

    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èsGrant access

Pour accorder l’accès à l’utilisateur, utilisez la commande New-AzRoleAssignment afin d’attribuer un rôle.To grant access for the user, you use the New-AzRoleAssignment command to assign a role. Vous devez spécifier le principal de sécurité, la définition de rôle et l’étendue.You must specify the security principal, role definition, and scope.

  1. Obtenez l’ID de votre abonnement à l’aide de la commande Get-AzSubscription.Get the ID of your subscription using the Get-AzSubscription command.

    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.Save the subscription scope in a variable.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  3. Attribuez le rôle de Lecteur à l’utilisateur dans l’étendue de l’abonnement.Assign the Reader role to the user at the subscription scope.

    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.Assign the Contributor role to the user at the resource group scope.

    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èsList access

  1. Pour vérifier l’accès à l’abonnement, utilisez la commande Get-AzRoleAssignment afin de lister les attributions de rôle.To verify the access for the subscription, use the Get-AzRoleAssignment command to list the role assignments.

    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.In the output, you can see that the Reader role has been assigned to the RBAC Tutorial User at the subscription scope.

  2. Pour vérifier l’accès au groupe de ressources, utilisez la commande Get-AzRoleAssignment afin de lister les attributions de rôle.To verify the access for the resource group, use the Get-AzRoleAssignment command to list the role assignments.

    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.In the output, you can see that both the Contributor and Reader roles have been assigned to the RBAC Tutorial User. 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.The Contributor role is at the rbac-tutorial-resource-group scope and the Reader role is inherited at the subscription scope.

(Facultatif) Accès à la liste à l’aide du portail Azure(Optional) List access using the Azure Portal

  1. Pour voir les attributions de rôle dans le portail Azure, affichez le panneau Contrôle d’accès (IAM) pour l’abonnement.To see how the role assignments look in the Azure portal, view the Access control (IAM) blade for the subscription.

    Attributions de rôles pour un utilisateur dans l’étendue de l’abonnement

  2. Affichez le panneau Contrôle d’accès (IAM) pour le groupe de ressources.View the Access control (IAM) blade for the resource group.

    Attributions de rôles pour un utilisateur dans l’étendue du groupe de ressources

Suppression d'accèsRemove access

Pour supprimer l’accès accordé à des utilisateurs, des groupes ou des applications, utilisez Remove-AzRoleAssignment afin de supprimer une attribution de rôle.To remove access for users, groups, and applications, use Remove-AzRoleAssignment to remove a role assignment.

  1. Utilisez la commande suivante pour supprimer l’attribution de rôle de Collaborateur pour l’utilisateur dans l’étendue de groupe de ressources.Use the following command to remove the Contributor role assignment for the user at the resource group scope.

    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.Use the following command to remove the Reader role assignment for the user at the subscription scope.

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

Supprimer des ressourcesClean up resources

Pour supprimer les ressources créées par ce tutoriel, supprimez le groupe de ressources et l’utilisateur.To clean up the resources created by this tutorial, delete the resource group and the user.

  1. Supprimez le groupe de ressources à l’aide de la commande Remove-AzResourceGroup.Delete the resource group using the Remove-AzResourceGroup command.

    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.When asked to confirm, type Y. It will take a few seconds to delete.

  3. Supprimez l’utilisateur à l’aide de la commande Remove-AzureADUser.Delete the user using the Remove-AzureADUser command.

    Remove-AzureADUser -ObjectId "rbacuser@example.com"
    

Étapes suivantesNext steps