Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Rôles IAM pour Amazon EC2
Les applications doivent signer leurs demandes d'API avec des AWS informations d'identification. Par conséquent, si vous êtes un développeur d’applications, vous avez besoin d’une stratégie pour gérer les informations d’identification de vos applications qui s’exécutent sur les instances EC2. Par exemple, vous pouvez distribuer en toute sécurité vos informations d’identification AWS aux instances, en permettant ainsi aux applications de ces instances d’utiliser vos informations d’identification pour signer des demandes, tout en les protégeant des autres utilisateurs. Cependant, il est difficile de distribuer en toute sécurité les informations d'identification à chaque instance, en particulier celles AWS créées en votre nom, telles que les instances Spot ou les instances de groupes Auto Scaling. Vous devez également être en mesure de mettre à jour les informations d'identification sur chaque instance lorsque vous effectuez une rotation de vos AWS informations d'identification.
Note
Pour vos charges de travail Amazon EC2, nous vous recommandons de récupérer les informations d’identification de session en utilisant la méthode décrite ci-dessous. Ces informations d’identification devraient permettre à votre charge de travail d’effectuer des requêtes d’API AWS , sans avoir besoin d’utiliser sts:AssumeRole
pour assumer le rôle déjà associé à l’instance. À moins que vous ne deviez transmettre des balises de session pour le contrôle d’accès par attributs (ABAC) ou adopter une politique de session pour restreindre davantage les autorisations du rôle, ces appels de prise en charge de rôle sont inutiles, car ils créent un nouveau jeu des mêmes informations d’identification de session de rôle temporaire.
Si votre charge de travail utilise un rôle pour s’assumer elle-même, vous devez créer une politique de confiance qui autorise explicitement ce rôle à s’assumer lui-même. Si vous ne créez pas la politique de confiance, vous obtenez l’erreur AccessDenied
. Pour de plus amples informations, veuillez consulter la rubrique Modifying a role trust policy (Modification d’une politique d’approbation de rôle) dans le Guide de l’utilisateur IAM.
Nous avons conçu les rôles IAM de telle sorte que vos applications puissent créer des demandes d’API en toute sécurité depuis vos instances, sans requérir que vous gériez les informations d’identification de sécurité que les applications utilisent. Au lieu de créer et de distribuer vos AWS informations d'identification, vous pouvez déléguer l'autorisation d'effectuer des demandes d'API à l'aide des rôles IAM comme suit :
-
Créez un rôle IAM.
-
Définissez quels comptes ou AWS services peuvent assumer le rôle.
-
Définissez les actions d’API et les ressources que l’application peut utiliser en assumant le rôle.
-
Spécifiez le rôle au lancement de votre instance ou attachez-le à une instance existante.
-
Demandez à l’application d’extraire un ensemble d’informations d’identification temporaires et utilisez-les.
Par exemple, vous pouvez utiliser des rôles IAM pour accorder l’autorisation aux applications de s’exécuter sur vos instances qui ont besoin d’utiliser un compartiment dans Amazon S3. Vous pouvez spécifier des permissions pour les rôles IAM en créant une politique au format JSON. Ces politiques sont similaires à celles que vous créez pour les utilisateurs . Si vous modifiez un rôle, la modification est répercutée sur toutes les instances.
Note
Les informations d'identification du rôle Amazon EC2 IAM ne sont pas soumises aux durées de session maximales configurées dans le rôle. Pour de plus amples informations, veuillez consulter Utilisation de rôles IAM dans le Guide de l'utilisateur IAM.
Vous ne pouvez attacher qu’un rôle IAM à une instance, mais vous pouvez attacher le même rôle à de nombreuses instances. Pour plus d’informations sur la création et l’utilisation des rôles IAM, consultez Rôles dans le IAM Guide de l’utilisateur.
Vous pouvez appliquer des autorisations au niveau des ressources à vos politiques IAM pour contrôler la possibilité pour les utilisateurs d’attacher, de remplacer ou de détacher des rôles IAM pour une instance. Pour plus d’informations, consultez Autorisations au niveau des ressources prises en charge pour les opérations d’API Amazon EC2 et l’exemple suivant : Exemple : Utiliser des rôles IAM.
Sommaire
Profils d’instance
Amazon EC2 utilise un profil d’instance comme conteneur d’un rôle IAM. Lorsque vous créez un rôle IAM à l’aide de la console IAM, celle-ci crée automatiquement un profil d’instance et lui attribue le même nom qu’au rôle auquel il correspond. Si vous utilisez la console Amazon EC2 pour lancer une instance avec un rôle IAM ou pour attacher un rôle IAM à une instance, vous devez choisir le rôle en vous basant sur une liste de noms de profils d’instance.
Si vous utilisez l' AWS CLI API ou un AWS SDK pour créer un rôle, vous créez le rôle et le profil d'instance en tant qu'actions distinctes, avec des noms potentiellement différents. Si vous utilisez ensuite l' AWS CLI API ou un AWS SDK pour lancer une instance avec un rôle IAM ou pour attacher un rôle IAM à une instance, spécifiez le nom du profil d'instance.
Un profil d’instance ne peut contenir qu’un seul rôle IAM. Cette limite ne peut pas être augmentée.
Pour plus d’informations, consultez Profils d’instance dans le IAM Guide de l’utilisateur.
Extraire les informations d’identification de sécurité à partir des métadonnées d’instance
Une application de l’instance extrait les informations d’identification de sécurité fournies par le rôle à partir de l’élément iam/security-credentials/
nom-rôle des métadonnées d’instance. L’application reçoit les autorisations pour les actions et les ressources que vous avez définies pour le rôle via les informations d’identification de sécurité associées au rôle. Ces informations de sécurité sont temporaires et nous les faisons tourner automatiquement. Nous rendons disponibles de nouvelles informations d’identification au moins cinq minutes avant l’expiration des anciennes informations d’identification.
Avertissement
Si vous utilisez des services qui emploient les métadonnées d’instance avec les rôles IAM, assurez-vous de ne pas exposer vos informations d’identification quand les services effectuent des appels HTTP en votre nom. Les types de services qui peuvent exposer vos informations d’identification incluent les proxys HTTP, les services de validation HTML/CSS et les processeurs XML qui prennent en charge l’inclusion XML.
La commande suivante extrait les informations de sécurité pour un rôle IAM intitulé s3access
.
Voici un exemple de sortie.
{
"Code" : "Success",
"LastUpdated" : "2012-04-26T16:39:16Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIAIOSFODNN7EXAMPLE",
"SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"Token" : "token",
"Expiration" : "2017-05-17T15:09:54Z"
}
Pour les applications et PowerShell les commandes Tools for Windows qui s'exécutent sur l'instance, il n'est pas nécessaire d'obtenir explicitement les informations d'identification de sécurité temporaires : AWS les SDK et les outils pour Windows obtiennent PowerShell automatiquement les informations d'identification du service de métadonnées d'instance EC2 et les utilisent. AWS CLI AWS CLI Pour effectuer un appel en dehors de l’instance à l’aide d’informations d’identification de sécurité temporaires (par exemple, pour tester les politiques IAM), vous devez fournir la clé d’accès, la clé secrète et le jeton de session. Pour plus d'informations, consultez la section Utilisation d'informations d'identification de sécurité temporaires pour demander l'accès aux AWS ressources dans le guide de l'utilisateur IAM.
Pour obtenir plus d’informations sur les métadonnées d’instance, consultez Métadonnées d’instance et données utilisateur. Pour plus d’informations sur l’adresse IP des métadonnées d’instance, consultez Récupérer des métadonnées d’instance.
Octroi à un utilisateur de l’autorisation de transmettre un rôle IAM à une instance
Pour permettre à un utilisateur de lancer une instance avec un rôle IAM, ou d’attacher ou remplacer un rôle IAM pour une instance existante, vous devez accorder à l’utilisateur l’autorisation d’utiliser les actions d’API suivantes :
-
iam:PassRole
-
ec2:AssociateIamInstanceProfile
-
ec2:ReplaceIamInstanceProfileAssociation
Par exemple, la politique IAM suivante accorde aux utilisateurs l’autorisation de lancer des instances avec un rôle IAM, ou d’attacher ou remplacer un rôle IAM pour une instance existante à l’aide de la AWS CLI.
Note
Si vous voulez que la politique accorde aux utilisateurs l’accès à tous vos rôles, spécifiez la ressource comme *
dans la politique. Cependant, veuillez considérer le principe du moindre privilège comme une bonne pratique.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:AssociateIamInstanceProfile", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/DevTeam*" } ] }
Pour autoriser les utilisateurs à lancer des instances avec un rôle IAM, ou à attacher ou remplacer un rôle IAM pour une instance existante, à l’aide de la console Amazon EC2, vous devez leur accorder l’autorisation d’utiliser iam:ListInstanceProfiles
, iam:PassRole
, ec2:AssociateIamInstanceProfile
, et ec2:ReplaceIamInstanceProfileAssociation
en plus de toutes les autres autorisations dont ils pourraient avoir besoin. Pour obtenir des exemples de politiques, consultez Exemples de politiques à utiliser sur la console Amazon EC2.
Utiliser les rôles IAM
Vous pouvez créer un rôle IAM et l’attacher à une instance pendant ou après le lancement. Vous pouvez aussi remplacer ou détacher un rôle IAM pour une instance.
Sommaire
créer un rôle IAM ;
Vous devez créer un rôle IAM avant de pouvoir lancer une instance avec ce rôle ou attacher celui-ci à une instance.
Lancer une instance avec un rôle IAM
Après avoir créé un rôle IAM, vous pouvez lancer une instance et associer le rôle à l’instance durant le lancement.
Important
Après que vous avez créé un rôle IAM, la propagation des permissions peut prendre plusieurs secondes. En cas d’échec de votre première tentative de lancer une instance avec un rôle, attendez quelques secondes avant de recommencer. Pour plus d’informations, consultez Résolution des problèmes liés aux rôles IAM dans le guide de l’utilisateur IAM.
Attacher un rôle IAM à une instance
Pour attacher un IAM à une instance qui n’a pas de rôle, l’instance doit être en état stopped
ou running
.
Remplacer un rôle IAM
Pour remplacer le rôle IAM sur une instance qui a déjà un rôle IAM, l’instance doit être en état running
. Vous pouvez le faire si vous souhaitez modifier le rôle IAM pour une instance sans commencer par détacher le rôle existant. Pour exemple, vous pouvez le faire pour veiller à ce que les actions d’API effectuées par les applications exécutées sur l’instance ne soient pas interrompues.
Détacher un rôle IAM
Vous ne pouvez pas détacher un rôle IAM d’une instance en cours d’exécution ou arrêtée.
Générer une politique pour votre rôle IAM en fonction de l’activité d’accès
Lorsque vous créez un rôle IAM pour vos applications, vous pouvez parfois accorder plus d’autorisations que nécessaire. Avant de lancer votre application dans votre environnement de production, vous pouvez générer une politique IAM basée sur l’activité d’accès pour un rôle IAM. IAM Access Analyzer examine vos AWS CloudTrail journaux et génère un modèle de politique contenant les autorisations qui ont été utilisées par le rôle dans la plage de dates que vous avez spécifiée. Vous pouvez utiliser le modèle pour créer une politique gérée avec des autorisations affinées, puis l’attacher au rôle IAM. Ainsi, vous accordez uniquement les autorisations dont le rôle a besoin pour interagir avec les AWS ressources correspondant à votre cas d'utilisation spécifique. Cela vous permet de mieux respecter la bonne pratique qui consiste à appliquer le principe du moindre privilège. Pour en savoir plus, consultez Générer des stratégies basées sur l’activité d’accès dans le Guide IAM de l’utilisateur.