Autorisations requises pour accéder aux autres ressources IAM - AWS Identity and Access Management

Autorisations requises pour accéder aux autres ressources IAM

Les ressources sont des objets au sein d'un service. Les ressources IAM incluent des groupes, des utilisateurs, des rôles et des politiques. Si vous êtes connecté avec les informations d'identification d’utilisateur racine Compte AWS, vous n'avez aucune restrictions pour administrer des données d'identification IAM ou des ressources IAM. Cependant, les utilisateurs IAM doivent explicitement accorder des autorisations pour gérer les informations d'identification ou des ressources IAM. Pour ce faire, vous pouvez attacher une politique basée sur les identités à l'utilisateur.

Note

Dans la documentation AWS, lorsqu'il est fait référence à une politique IAM sans évoquer aucune des catégories spécifiques, il s'agit d'une politique gérée par le client et basée sur une identité. Pour de plus amples informations sur les catégories de politique, veuillez consulter Politiques et autorisations dans IAM.

Autorisations pour la gestion des identités IAM

Les autorisations qui sont requises pour administrer des groupes, des utilisateurs, des rôles et des informations d'identification IAM correspondent aux actions d'API de la tâche. Par exemple, pour créer des utilisateurs IAM, vous devez disposer de l'autorisation iam:CreateUser qui comporte la commande API correspondante : CreateUser. Pour autoriser un utilisateur IAM à créer d'autres utilisateurs IAM, vous pouvez attacher une politique IAM comme celle qui suit à cet utilisateur :

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:CreateUser", "Resource": "*" } }

Dans une politique, la valeur de l'élément Resource dépend de l'action et des ressources que cette action peut affecter. Dans l'exemple précédent, la politique autorise un utilisateur à créer un autre utilisateur (* est un caractère générique qui correspond à toutes les chaînes). Par opposition, une politique qui autorise des utilisateurs à modifier uniquement leurs propres clés d'accès (actions API CreateAccessKey et UpdateAccessKey) comporte généralement un élément Resource. Dans ce cas, l'ARN inclut une variable (${aws:username}) qui se résout par le nom de l'utilisateur actuel, comme dans l'exemple suivant :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListUsersForConsole", "Effect": "Allow", "Action": "iam:ListUsers", "Resource": "arn:aws:iam::*:*" }, { "Sid": "ViewAndUpdateAccessKeys", "Effect": "Allow", "Action": [ "iam:UpdateAccessKey", "iam:CreateAccessKey", "iam:ListAccessKeys" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }

Dans l'exemple précédent, ${aws:username} est une variable qui renvoie au nom utilisateur de l'utilisateur actuel. Pour de plus amples informations sur les variables de politique, veuillez consulter Éléments des politiques IAM : variables et balises.

L'utilisation d'un caractère générique (*) dans le nom d'action facilite souvent l'octroi d'autorisations pour toutes les actions associées à une tâche spécifique. Par exemple, pour autoriser des utilisateurs à exécuter n'importe quelle action IAM, vous pouvez utiliser iam:* pour l'action. Pour autoriser les utilisateurs à effectuer n'importe quelle action associée uniquement aux clés d'accès, vous pouvez utiliser iam:*AccessKey* dans l'élément Action d'une instruction de politique. Cela permet d'accorder à l'utilisateur l'autorisation d'effectuer les actions CreateAccessKey, DeleteAccessKey, GetAccessKeyLastUsed, ListAccessKeys et UpdateAccessKey. (Si, ultérieurement, une action comportant « AccessKey » dans son nom est ajoutée à IAM, l'utilisation de iam:*AccessKey* pour l'élément Action accordera également à l'utilisateur l'autorisation d'exécuter cette action.) L'exemple suivant présente une politique qui permet aux utilisateurs d'exécuter toutes les actions correspondant à leurs propres clés d'accès (remplacez account-id par l'ID de votre compte AWS) :

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:*AccessKey*", "Resource": "arn:aws:iam::account-id:user/${aws:username}" } }

Certaines tâches, comme la suppression d'un groupe, impliquent plusieurs actions : vous devez d'abord supprimer les utilisateurs du groupe, puis détacher ou supprimer les stratégie du groupe et enfin supprimer réellement le groupe. Si vous souhaitez qu'un utilisateur supprime un groupe, vous devez vous assurer d'accorder à celui-ci les autorisations nécessaires pour exécuter toutes les actions associées.

Autorisations pour utiliser AWS Management Console

Les exemples précédents illustrent des politiques autorisant un utilisateur à exécuter les actions avec l’interface AWS CLI ou les kits SDK AWS.

À mesure que les utilisateurs se servent de la console, celle-ci envoie des demandes à IAM pour répertorier les groupes, les utilisateurs, les rôles et les politiques, et pour obtenir les politiques associées à un groupe, un utilisateur ou un rôle. La console émet également des demandes pour obtenir des informations de compte AWS et des informations sur le principal. Le principal est l'utilisateur qui effectue les demandes sur la console.

En général, pour effectuer une action, vous devez posséder uniquement l'action correspondante dans une politique. Pour pouvoir créer un utilisateur, vous devez disposer d'une autorisation pour appeler l'action CreateUser. Souvent, lorsque vous utilisez la console pour effectuer une action, vous devez avoir les autorisations pour afficher, répertorier, obtenir, ou encore afficher les ressources sur la console. Ceci est nécessaire pour vous permettre de naviguer au sein de la console pour effectuer l'action spécifiée. Par exemple, si l'utilisateur Jorge souhaite utiliser la console pour modifier ses propres clés d'accès, il accède à la console IAM et choisit Users. Cette action indique à la console d'effectuer une demande ListUsers. Si Jorge n'a pas l'autorisation d'exécuter l'action iam:ListUsers, la console se voit refuser l'accès lorsqu'elle essaie de répertorier les utilisateurs. Par conséquent, Jorge ne peut accéder à son propre nom et à ses propres clés d'accès, même s'il a l'autorisation d'exécuter les actions CreateAccessKey et UpdateAccessKey.

Si vous souhaitez accorder à des utilisateurs les autorisations leur permettant d'administrer des groupes, des utilisateurs, des politiques et des informations d'identification avec l'AWS Management Console, vous devez inclure des autorisations concernant les actions exécutées par la console. Pour obtenir des exemples de politiques que vous pouvez utiliser pour accorder ces autorisations à un utilisateur, consultez Exemples de politiques de gestion de ressources IAM.

Octroi d'autorisations dans plusieurs comptes AWS

Vous pouvez accorder directement à des utilisateurs IAM de votre propre compte un accès à vos ressources. Si des utilisateurs d'un autre compte ont besoin d'accéder à vos ressources, vous pouvez créer un rôle IAM qui est une entité incluant des autorisations, mais qui n'est pas associée à un utilisateur spécifique. Les utilisateurs d'autres comptes peuvent alors utiliser le rôle et accéder aux ressources selon les autorisations que vous avez attribuées à ce rôle. Pour plus d’informations, veuillez consulter Octroi de l'accès à un utilisateur IAM dans un autre compte AWS vous appartenant.

Note

Certains services prennent en charge les politiques basées sur les ressources, comme décrit dansPolitiques basées sur l'identité et Politiques basées sur une ressource (Amazon S3, Amazon SNS et Amazon SQS, par ex.). Pour ces services, une alternative à l'utilisation de rôles consiste à attacher une politique à la ressource (compartiment, rubrique ou file d'attente) que vous voulez partager. La politique basée sur les ressources peut spécifier le compte AWS, qui dispose des autorisations nécessaires pour accéder à la ressource.

Autorisations pour qu'un service accède à un autre service

De nombreux services AWS accèdent à d'autres services AWS. Par exemple, plusieurs services AWS, notamment Amazon EMR, Elastic Load Balancing et Amazon EC2 Auto Scaling, gèrent des instances Amazon EC2. D'autres services AWS utilisent des compartiments Amazon S3, des rubriques Amazon SNS, des files d'attente Amazon SQS, etc.

Le scénario pour gérer des autorisations dans ces cas varie selon le service. Voici des exemples de la façon dont les autorisations sont gérées pour différents services :

  • Dans Amazon EC2 Auto Scaling, les utilisateurs doivent être autorisés à utiliser Auto Scaling, mais n'ont pas besoin de recevoir explicitement l'autorisation de gérer des instances Amazon EC2.

  • Dans AWS Data Pipeline, un rôle IAM détermine ce que peut faire un pipeline ; les utilisateurs ont besoin d'une autorisation pour endosser le rôle. (Pour obtenir des détails, veuillez consulter Granting Permissions to Pipelines with IAM (Octroi d'autorisations à des pipelines avec IAM)dans le Manuel du développeur AWS Data Pipeline.)

Pour les détails sur la façon de configurer correctement des autorisations pour que le service AWS soit en mesure d'effectuer les tâches prévues, reportez-vous à la documentation du service que vous appelez. Pour savoir comment créer un rôle pour un service, consultez Création d'un rôle pour la délégation d'autorisations à un service AWS.

Configuration d'un service avec un rôle IAM pour l'exécution d'une tâche en votre nom

Lorsque vous souhaitez configurer un service AWS pour fonctionner en votre nom, vous devez généralement fournir l'ARN d'un rôle IAM qui définit ce que le service est autorisé à faire. AWS vérifie alors que vous disposez des autorisations nécessaires pour transférer un rôle à un service. Pour plus d’informations, veuillez consulter Octroi d'autorisations à un utilisateur pour transférer un rôle à un service AWS.

Actions requises

Les actions sont les choses que vous pouvez faire sur une ressource, comme l'affichage, la création, l'édition et la suppression de cette ressource. Les actions sont définies par chaque service AWS.

Pour autoriser une personne à effectuer une action, vous devez inclure les actions nécessaires dans une politique qui s'applique à l'identité appelante ou à la ressource affectée. En général, pour fournir l'autorisation requise pour effectuer une action, vous devez inclure cette action dans votre politique. Par exemple, pour créer un utilisateur, vous devez ajouter l'action CreateUser à votre politique.

Dans certains cas, une action peut exiger l'inclusion d'actions connexes supplémentaires dans votre politique. Par exemple, pour fournir à une personne l'autorisation de créer un annuaire dans AWS Directory Service à l'aide de l'opération ds:CreateDirectory, vous devez inclure les actions suivantes dans sa politique :

  • ds:CreateDirectory

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:CreateSecurityGroup

  • ec2:CreateNetworkInterface

  • ec2:DescribeNetworkInterfaces

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:AuthorizeSecurityGroupEgress

Lorsque vous créez ou éditez une politique à l'aide de l'éditeur visuel, vous recevez des avertissements et des instructions pour vous aider à choisir toutes les actions requises pour votre politique.

Pour de plus amples informations sur les autorisations requises pour créer un annuaire dans AWS Directory Service, veuillez consulter Exemple 2 : Permettre à un utilisateur de créer un annuaire.