Résoudre les problèmes liés à IAM et Amazon EC2 - AWS Identity and Access Management

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ésoudre les problèmes liés à IAM et Amazon EC2

Les informations suivantes peuvent vous aider à résoudre les problèmes liés à l'IAM avec Amazon. EC2

Lorsque j'essaie de lancer une instance, le rôle ne s'affiche pas dans la liste des rôles IAM de la EC2 console Amazon

Vérifiez les éléments suivants :

  • Si vous êtes connecté en tant qu'utilisateur IAM, vérifiez que vous avez l'autorisation d'appeler ListInstanceProfiles. Pour plus d’informations sur les autorisations nécessaires pour utiliser ces rôles, consultez Autorisations requises pour utiliser les rôles auprès d'Amazon EC2. Pour de plus amples informations sur l'ajout d'autorisations à un utilisateur, veuillez consulter Gestion des politiques IAM.

    Si vous ne pouvez pas modifier vos propres autorisations, vous devez contacter un administrateur qui peut utiliser IAM pour mettre à jour vos autorisations.

  • Si vous avez créé un rôle à l’aide de l’interface de ligne de commande ou l’API IAM, vérifiez les points suivants :

    • Vous avez créé un profil d’instance et ajouté le rôle à celui-ci.

    • Vous avez utilisé le même nom pour le rôle et le profil d’instance. Si vous nommez votre rôle et votre profil d'instance différemment, le nom de rôle correct ne s'affichera pas dans la EC2 console Amazon.

    La liste des rôles IAM de la EC2 console Amazon répertorie les noms des profils d'instance, et non les noms des rôles. Vous devez sélectionner le nom du profil d'instance qui contient le rôle choisi. Pour plus informations sur les profils d'instance, veuillez consulter Utilisation des profils d’instance.

    Note

    Si vous utilisez la console IAM pour créer des rôles, vous n'avez pas besoin d'utiliser des profils d'instance. Pour chaque rôle que vous créez dans la console IAM, un profil d'instance est créé avec un nom identique à celui du rôle, et le rôle est ajouté automatiquement à ce profil d'instance. Un profil d'instance peut contenir un rôle IAM uniquement et cette limite ne peut pas être augmentée.

Les informations d'identification sur mon instance concernent le mauvais rôle

Le rôle dans le profil d'instance a peut-être été remplacé récemment. Si tel est le cas, votre application attendra la prochaine rotation des informations d'identification planifiée automatiquement pour que les informations d'identification de votre rôle deviennent disponibles.

Pour forcer la modification, vous devez dissocier le profil d'instance, puis associer le profil d'instance, ou vous pouvez arrêter votre instance, puis la redémarrer.

Quand je tente d'appeler AddRoleToInstanceProfile, je reçois un message d'erreur AccessDenied.

Si vous faites des demandes en tant qu'utilisateur IAM, vérifiez que vous avez les autorisation suivantes :

  • iam:AddRoleToInstanceProfile avec la ressource correspondant à l'ARN du profil d'instance (par exemple, arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile).

Pour plus d’informations sur les autorisations nécessaires pour utiliser ces rôles, consultez Comment puis-je commencer ?. Pour de plus amples informations sur l'ajout d'autorisations à un utilisateur, veuillez consulter Gestion des politiques IAM.

Amazon EC2 : Lorsque j'essaie de lancer une instance avec un rôle, je reçois un AccessDenied message d'erreur

Vérifiez les éléments suivants :

  • Lancez une instance sans profil d'instance. Cela permettra de garantir que le problème est limité aux rôles IAM pour les EC2 instances Amazon.

  • Si vous faites des demandes en tant qu'utilisateur IAM, vérifiez que vous avez les autorisation suivantes :

    • ec2:RunInstances avec une ressource générique (« * »)

    • iam:PassRole avec la ressource correspondant à l'ARN du rôle (par exemple, arn:aws:iam::999999999999:role/ExampleRoleName)

  • Appelez l'action IAM GetInstanceProfile pour vous assurer que vous utilisez un nom de profil d'instance valide ou un ARN de profil d'instance valide. Pour plus d'informations, consultez la section Utilisation des rôles IAM avec les EC2 instances Amazon.

  • Appelez l'action GetInstanceProfile IAM pour vous assurer que le profil d'instance dispose d'un rôle. Les profils d'instance vides échoueront et renverront l'erreur AccessDenied. Pour plus d'informations sur la création d'un rôle, veuillez consulter Création d’un rôle IAM.

Pour plus d’informations sur les autorisations nécessaires pour utiliser ces rôles, consultez Comment puis-je commencer ?. Pour de plus amples informations sur l'ajout d'autorisations à un utilisateur, veuillez consulter Gestion des politiques IAM.

Je ne parviens pas à accéder aux informations d'identification de sécurité temporaires de mon EC2 instance

Pour accéder aux informations d'identification de sécurité temporaires sur votre EC2 instance, vous devez d'abord utiliser la console IAM pour créer un rôle. Ensuite, vous lancez une EC2 instance qui utilise ce rôle et vous examinez l'instance en cours d'exécution. Pour de plus amples informations, veuillez consulter Comment démarrer avec ce service ? dans Utiliser un rôle IAM pour accorder des autorisations aux applications exécutées sur des instances Amazon EC2 .

Si vous ne parvenez toujours pas à accéder à vos informations de sécurité temporaires sur votre EC2 instance, vérifiez les points suivants :

  • Pouvez-vous accéder à une autre partie du service des métadonnées d'instance (IMDS) ? Si ce n'est pas le cas, vérifiez qu'aucune règle de pare-feu ne bloque l'accès aux demandes envoyées à l'IMDS.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/hostname; echo
  • La sous-arborescence iam de l'IMDS existe-elle ? Dans le cas contraire, vérifiez qu'un profil d'instance IAM est associé à votre instance en appelant l'opération EC2 DescribeInstances API ou en utilisant la commande aws ec2 describe-instances CLI.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam; echo
  • Consultez le document info dans la sous-arborescence IAM pour rechercher une erreur. S'il existe une erreur, veuillez consulter Que signifient les erreurs dans le document info de la sous-arborescence IAM ? pour plus d'informations.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam/info; echo

Que signifient les erreurs dans le document info de la sous-arborescence IAM ?

Le document iam/info indique "Code":"InstanceProfileNotFound"

Votre profil d'instance IAM a été supprimé et Amazon ne EC2 peut plus fournir d'informations d'identification à votre instance. Vous devez associer un profil d'instance valide à votre EC2 instance Amazon.

S'il existe un profil d'instance avec le même nom, vérifiez que celui-ci n'a pas été supprimé et qu'un autre n'a pas été créé avec le même nom :

  1. Appelez l'opération GetInstanceProfile IAM pour obtenir l'ID de profil d'instance InstanceProfileId.

  2. Appelez l' EC2 DescribeInstancesopération Amazon pour obtenir le code IamInstanceProfileId correspondant à l'instance.

  3. Vérifiez que l'opération InstanceProfileId from the IAM correspond IamInstanceProfileId à l'opération from the Amazon EC2 .

S' IDs ils sont différents, le profil d'instance attaché à vos instances n'est plus valide. Vous devez attacher un profil d'instance valide à l'instance.

Le document iam/info indique un succès, mais renvoie le message "Message":"Instance Profile does not contain a role..."

Le rôle a été supprimé du profil d'instance par l'action RemoveRoleFromInstanceProfile IAM. Vous pouvez utiliser l'action AddRoleToInstanceProfile IAM pour attacher un rôle au profil d'instance. Votre application devra attendre la prochaine actualisation planifiée pour accéder aux informations d'identification du rôle.

Pour forcer la modification, vous devez dissocier le profil d'instance, puis associer le profil d'instance, ou vous pouvez arrêter votre instance, puis la redémarrer.

Le document iam/security-credentials/[role-name] indique "Code":"AssumeRoleUnauthorizedAccess"

Amazon EC2 n'est pas autorisé à assumer ce rôle. L'autorisation d'endosser le rôle est contrôlée par la politique d'approbation attachée au rôle, comme dans l'exemple suivant. Utilisez l'API UpdateAssumeRolePolicy IAM pour mettre à jour la politique d'approbation.

JSON
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}

Votre application attendra jusqu'à la prochaine actualisation des informations d'identification planifiée automatiquement pour accéder aux informations d'identification du rôle.

Pour forcer la modification, vous devez dissocier le profil d'instance, puis associer le profil d'instance, ou vous pouvez arrêter votre instance, puis la redémarrer.