Qu’est-ce que le contrôle d’accès en fonction du rôle (RBAC) pour les ressources Azure ?What is role-based access control (RBAC) for Azure resources?

Il est vital pour toute organisation qui utilise le cloud de pouvoir gérer les accès aux ressources situées dans cloud.Access management for cloud resources is a critical function for any organization that is using the cloud. Le contrôle d’accès basé sur un rôle (RBAC) permet de gérer les utilisateurs ayant accès aux ressources Azure, les modes d’utilisation des ressources par ces derniers et les zones auxquelles ils ont accès.Role-based access control (RBAC) helps you manage who has access to Azure resources, what they can do with those resources, and what areas they have access to.

Le RBAC est un système d’autorisation basé sur Azure Resource Manager qui propose une gestion affinée des accès des ressources Azure.RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

Que puis-je faire avec le contrôle d’accès en fonction du rôle (RBAC) ?What can I do with RBAC?

Voici quelques exemples de ce que vous pouvez faire avec le contrôle d’accès en fonction du rôle (RBAC) :Here are some examples of what you can do with RBAC:

  • Autoriser un utilisateur à gérer des machines virtuelles dans un abonnement et un autre utilisateur à gérer des réseaux virtuelsAllow one user to manage virtual machines in a subscription and another user to manage virtual networks
  • Permettre à un groupe d’administrateurs de base de données de gérer des bases de données SQL dans un abonnementAllow a DBA group to manage SQL databases in a subscription
  • Permettre à un utilisateur à gérer toutes les ressources dans un groupe de ressources, telles que des machines virtuelles, des sites Web et des sous-réseauxAllow a user to manage all resources in a resource group, such as virtual machines, websites, and subnets
  • Permettre à une application d’accéder à toutes les ressources d’un groupe de ressourcesAllow an application to access all resources in a resource group

Meilleure pratique pour l’utilisation de RBACBest practice for using RBAC

Avec le contrôle d’accès en fonction du rôle, vous pouvez séparer les tâches au sein de votre équipe et accorder aux utilisateurs uniquement les accès nécessaires pour accomplir leur travail.Using RBAC, you can segregate duties within your team and grant only the amount of access to users that they need to perform their jobs. Plutôt que de donner à tous des autorisations illimitées au sein de votre abonnement ou de vos ressources Azure, vous pouvez autoriser uniquement certaines actions sur une étendue donnée.Instead of giving everybody unrestricted permissions in your Azure subscription or resources, you can allow only certain actions at a particular scope.

Lorsque vous planifiez votre stratégie de contrôle d’accès, vous pouvez accorder aux utilisateurs les privilèges minimaux pour effectuer leur travail.When planning your access control strategy, it's a best practice to grant users the least privilege to get their work done. Le diagramme suivante illustre un modèle suggéré pour l’utilisation de RBAC.The following diagram shows a suggested pattern for using RBAC.

RBAC et privilège minimum

Fonctionnement du le contrôle d’accès en fonction du rôle (RBAC)How RBAC works

Les attributions de rôles vous permettent de contrôler l’accès aux ressources à l’aide du contrôle d’accès en fonction du rôle (RBAC).The way you control access to resources using RBAC is to create role assignments. Ce concept est essentiel à comprendre : il s’agit de la façon dont les autorisations sont appliquées.This is a key concept to understand – it’s how permissions are enforced. 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.

Principal de sécuritéSecurity principal

Un principal de sécurité est un objet qui représente un utilisateur, un groupe, un principal de service ou une identité managée demandant l’accès à des ressources Azure.A security principal is an object that represents a user, group, service principal, or managed identity that is requesting access to Azure resources.

Principe de sécurité d’une attribution de rôle

  • Utilisateur : personne disposant d’un profil dans Azure Active Directory.User - An individual who has a profile in Azure Active Directory. Vous pouvez également attribuer des rôles aux utilisateurs dans les autres locataires.You can also assign roles to users in other tenants. Pour plus d’informations sur les utilisateurs des autres organisations, consultez Azure Active Directory B2B.For information about users in other organizations, see Azure Active Directory B2B.
  • Groupe : ensemble d’utilisateurs créés dans Azure Active Directory.Group - A set of users created in Azure Active Directory. Lorsque vous attribuez un rôle à un groupe, vous l’attribuez également à tous les utilisateurs de ce groupe.When you assign a role to a group, all users within that group have that role.
  • Principal de service : identité de sécurité utilisée par des applications ou des services permettant d’accéder aux ressources Azure spécifiques.Service principal - A security identity used by applications or services to access specific Azure resources. Vous pouvez la considérer comme une identité utilisateur (nom d’utilisateur, mot de passe ou certificat) pour une application.You can think of it as a user identity (username and password or certificate) for an application.
  • Identité managée : identité dans Azure Active Directory qui est managée automatiquement par Azure.Managed identity - An identity in Azure Active Directory that is automatically managed by Azure. Vous utilisez généralement des identités managées lors du développement d’applications cloud afin de gérer les informations d’identification pour l’authentification auprès des services Azure.You typically use managed identities when developing cloud applications to manage the credentials for authenticating to Azure services.

Définition de rôleRole definition

Une définition de rôle est une collection d’autorisations.A role definition is a collection of permissions. On l’appelle parfois simplement rôle.It's sometimes just called a role. Une définition de rôle répertorie les opérations qui peuvent être effectuées, telles que lire, écrire et supprimer.A role definition lists the operations that can be performed, such as read, write, and delete. Les rôles peuvent être de haut niveau, comme propriétaire, ou spécifiques, comme lecteur de machines virtuelles.Roles can be high-level, like owner, or specific, like virtual machine reader.

Définition de rôle pour une attribution de rôle

Azure inclut plusieurs rôles intégrés que vous pouvez utiliser.Azure includes several built-in roles that you can use. Voici les quatre rôles fondamentaux intégrés :The following lists four fundamental built-in roles. Les trois premiers s’appliquent à tous les types de ressources.The first three apply to all resource types.

  • Propriétaire : dispose d’un accès total à toutes les ressources, ainsi que le droit de déléguer l’accès à d’autres personnes.Owner - Has full access to all resources including the right to delegate access to others.
  • Contributeur : peut créer et gérer tous les types de ressources Azure, mais ne peut pas accorder l’accès à d’autres personnes.Contributor - Can create and manage all types of Azure resources but can’t grant access to others.
  • Lecteur : peut consulter les ressources Azure existantes.Reader - Can view existing Azure resources.
  • Administrateur de l’accès utilisateur : vous permet de gérer l’accès des utilisateurs aux ressources Azure.User Access Administrator - Lets you manage user access to Azure resources.

Les autres rôles intégrés permettent de gérer des ressources Azure spécifiques.The rest of the built-in roles allow management of specific Azure resources. Par exemple, le rôle de contributeur de machine virtuelle permet à l’utilisateur de créer et gérer des machines virtuelles.For example, the Virtual Machine Contributor role allows a user to create and manage virtual machines. Si les rôles intégrés ne répondent pas aux besoins spécifiques de votre organisation, vous pouvez créer vos propres rôles personnalisés pour les ressources Azure.If the built-in roles don't meet the specific needs of your organization, you can create your own custom roles for Azure resources.

Azure propose des opérations de données (actuellement en version préliminaire) qui vous permettent d’accorder l’accès aux données au sein d’un objet.Azure has introduced data operations (currently in preview) that enable you to grant access to data within an object. Par exemple, si un utilisateur dispose d’un accès en lecture aux données d’un compte de stockage, il peut lire les objets blob ou les messages de ce compte de stockage.For example, if a user has read data access to a storage account, then they can read the blobs or messages within that storage account. Pour plus d’informations, consultez Comprendre les définitions de rôle pour les ressources Azure.For more information, see Understand role definitions for Azure resources.

ÉtendueScope

Étendue représente l’ensemble des ressources auxquelles l’accès s’applique.Scope is the set of resources that the access applies to. Lorsque vous attribuez un rôle, vous pouvez restreindre les actions autorisées en définissant une étendue.When you assign a role, you can further limit the actions allowed by defining a scope. Cette possibilité s’avère utile si vous voulez par exemple attribuer le rôle de contributeur de site web à quelqu’un, mais seulement pour un groupe de ressources.This is helpful if you want to make someone a Website Contributor, but only for one resource group.

Dans Azure, vous pouvez spécifier une étendue à plusieurs niveaux : groupe d'administration, abonnement, groupe de ressources ou ressource.In Azure, you can specify a scope at multiple levels: management group, subscription, resource group, or resource. Les étendues sont structurées dans une relation parent-enfant.Scopes are structured in a parent-child relationship.

Étendue pour une attribution de rôle

Lorsque vous accordez l’accès à une étendue parente, ces autorisations sont héritées par les étendues enfant.When you grant access at a parent scope, those permissions are inherited to the child scopes. Par exemple :For example:

  • Si vous affectez le rôle de propriétaire à un utilisateur dans l’étendue de groupe d’administration, cet utilisateur peut gérer tous les éléments de tous les abonnements dans le groupe d’administration.If you assign the Owner role to a user at the management group scope, that user can manage everything in all subscriptions in the management group.
  • Si vous affectez le rôle de lecteur à un groupe au niveau de l’étendue de l’abonnement, les membres de ce groupe peuvent afficher chaque groupe de ressources et la ressource dans l’abonnement.If you assign the Reader role to a group at the subscription scope, the members of that group can view every resource group and resource in the subscription.
  • Si vous affectez le rôle de contributeur à une application au niveau du groupe de ressources, il peut gérer tous les types de ressources dans ce groupe de ressources, mais aucun groupe de ressources dans l’abonnement.If you assign the Contributor role to an application at the resource group scope, it can manage resources of all types in that resource group, but not other resource groups in the subscription.

Affectations de rôlesRole assignments

Une attribution de rôle est le processus d’attachement d’une définition de rôle à un utilisateur, un groupe, un principal de service ou une identité managée au niveau d’une étendue spécifique pour accorder des accès.A role assignment is the process of attaching a role definition to a user, group, service principal, or managed identity at a particular scope for the purpose of granting access. La création d’une attribution de rôle permet d’accorder un accès, qui peut être révoqué par la suppression d’une attribution de rôle.Access is granted by creating a role assignment, and access is revoked by removing a role assignment.

Le diagramme suivant montre un exemple d’attribution de rôle.The following diagram shows an example of a role assignment. Dans cet exemple, le rôle de contributeur a été attribué au groupe Marketing pour le groupe de ressources pharma-sales.In this example, the Marketing group has been assigned the Contributor role for the pharma-sales resource group. Cela signifie que les utilisateurs du groupe Marketing peuvent créer ou gérer n’importe quelle ressource Azure dans le groupe de ressources pharma-sales.This means that users in the Marketing group can create or manage any Azure resource in the pharma-sales resource group. Les utilisateurs Marketing n’ont pas accès aux ressources en dehors du groupe de ressources pharma-sales, sauf si elles font partie d’une autre attribution de rôle.Marketing users do not have access to resources outside the pharma-sales resource group, unless they are part of another role assignment.

Attribution de rôle pour contrôler les accès

Vous pouvez créer des attributions de rôles à l’aide du Portail Azure, d’Azure CLI, d’Azure PowerShell, des kits de développement logiciel (SDK) Azure ou d’API REST.You can create role assignments using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs. Vous pouvez avoir jusqu’à 2000 attributions de rôles dans chaque abonnement.You can have up to 2000 role assignments in each subscription. Pour créer et supprimer des attributions de rôles, les utilisateurs doivent disposer de l’autorisation Microsoft.Authorization/roleAssignments/*.To create and remove role assignments, you must have Microsoft.Authorization/roleAssignments/* permission. Cette autorisation est accordée par le biais des rôles Propriétaire ou Administrateur de l’accès utilisateur.This permission is granted through the Owner or User Access Administrator roles.

Attributions de rôles multiplesMultiple role assignments

Que se passe-t-il si plusieurs attributions de rôles se chevauchent ?So what happens if you have multiple overlapping role assignments? RBAC étant un modèle additif, vos autorisations effectives correspondent à l’ajout de vos attributions de rôles.RBAC is an additive model, so your effective permissions are the addition of your role assignments. Prenons l’exemple suivant où un utilisateur reçoit le rôle Contributeur pour l’étendue de l’abonnement et le rôle Lecteur pour un groupe de ressources.Consider the following example where a user is granted the Contributor role at the subscription scope and the Reader role on a resource group. L’ajout des autorisations du rôle Contributeur et des autorisations du rôle Lecteur correspond effectivement au rôle Contributeur pour le groupe de ressources.The addition of the Contributor permissions and the Reader permissions is effectively the Contributor role for the resource group. Ainsi, dans ce cas, l’attribution du rôle Lecteur n’a aucun impact.Therefore, in this case, the Reader role assignment has no impact.

Attributions de rôles multiples

Affectations de refusDeny assignments

Jusqu’à maintenant, RBAC était exclusivement un modèle d’autorisation sans possibilité de refus, il prend désormais en charge des affectations de refus dans une certaine mesure.Previously, RBAC was an allow-only model with no deny, but now RBAC supports deny assignments in a limited way. À l’instar d’une attribution de rôle, une affectation de refus attache un ensemble d’actions de refus à un utilisateur, un groupe, un principal de service ou une identité managée, sur une étendue spécifique, afin de refuser l’accès.Similar to a role assignment, a deny assignment attaches a set of deny actions to a user, group, service principal, or managed identity at a particular scope for the purpose of denying access. Une attribution de rôle définit un ensemble d’actions autorisées, tandis qu’une affectation de refus définit un ensemble d’actions non autorisées.A role assignment defines a set of actions that are allowed, while a deny assignment defines a set of actions that are not allowed. En d’autres termes, les affectations de refus empêchent les utilisateurs d’effectuer des actions spécifiées, même si une attribution de rôle leur accorde l’accès.In other words, deny assignments block users from performing specified actions even if a role assignment grants them access. Les affectations de refus ont priorité sur les attributions de rôles.Deny assignments take precedence over role assignments. Pour plus d’informations, consultez Comprendre les affectations de refus pour les ressources Azure et Afficher les affectations de refus pour les ressources Azure avec le portail Azure.For more information, see Understand deny assignments for Azure resources and View deny assignments for Azure resources using the Azure portal.

Notes

À ce stade, la seule façon d’ajouter vos propres affectations de refus est d’utiliser Azure Blueprints.At this time, the only way you can add your own deny assignments is by using Azure Blueprints. Pour plus d’informations, consultez Protéger les nouvelles ressources avec des verrous de ressources Azure Blueprints.For more information, see Protect new resources with Azure Blueprints resource locks.

Comment RBAC détermine si un utilisateur a accès à une ressourceHow RBAC determines if a user has access to a resource

Voici les principales étapes suivies par RBAC pour déterminer si vous avez accès à une ressource sur le plan de gestion.The following are the high-level steps that RBAC uses to determine if you have access to a resource on the management plane. Cela s’avère utile pour comprendre si vous tentez de résoudre un problème d’accès.This is helpful to understand if you are trying to troubleshoot an access issue.

  1. Un utilisateur (ou principal de service) se procure un jeton pour Azure Resource Manager.A user (or service principal) acquires a token for Azure Resource Manager.

    Le jeton inclut les appartenances de l’utilisateur à des groupes (notamment les appartenances à des groupes transitifs).The token includes the user's group memberships (including transitive group memberships).

  2. L’utilisateur effectue un appel d’API REST vers Azure Resource Manager avec le jeton joint.The user makes a REST API call to Azure Resource Manager with the token attached.

  3. Azure Resource Manager récupère toutes les attributions de rôle et les affectations de refus qui s’appliquent à la ressource sur laquelle l’action est entreprise.Azure Resource Manager retrieves all the role assignments and deny assignments that apply to the resource upon which the action is being taken.

  4. Azure Resource Manager restreint les attributions de rôles qui s’appliquent à cet utilisateur ou à son groupe, et détermine les rôles dont l’utilisateur dispose pour cette ressource.Azure Resource Manager narrows the role assignments that apply to this user or their group and determines what roles the user has for this resource.

  5. Azure Resource Manager détermine si l’action contenue dans l’appel d’API est incluse dans les rôles dont l’utilisateur dispose pour cette ressource.Azure Resource Manager determines if the action in the API call is included in the roles the user has for this resource.

  6. Si l’utilisateur n’a aucun rôle avec l’action à l’étendue demandée, l’accès n’est pas accordé.If the user doesn’t have a role with the action at the requested scope, access is not granted. Sinon, Azure Resource Manager vérifie si une affectation de refus s’applique.Otherwise, Azure Resource Manager checks if a deny assignment applies.

  7. Si c’est le cas, l’accès est bloqué.If a deny assignment applies, access is blocked. Autrement, l’accès est accordé.Otherwise access is granted.

Conditions de licence :License requirements

L'utilisation de cette fonctionnalité est gratuite et incluse dans votre abonnement Azure.Using this feature is free and included in your Azure subscription.

Étapes suivantesNext steps