J'utilise la commande "aws ec2 run-instances" (à partir de l' interface de ligne de commande AWS (CLI) ) pour lancer une instance Amazon EC2 . Je veux définir un rôle IAM pour l'instance EC2 que je lance. Le rôle IAM est configuré et je peux l'utiliser avec succès lors du lancement d'une instance à partir de l'interface utilisateur Web AWS. Mais lorsque j'essaie de le faire en utilisant cette commande et l'option "--iam-instance-profile", cela a échoué. Faire "aide aux instances d'exécution aws ec2" affiche les sous-champs Arn = et Name = pour la valeur. Lorsque j'essaie de rechercher Arn en utilisant "aws iam list-instance-profiles", il donne ce message d'erreur:
Une erreur client (AccessDenied) s'est produite: utilisateur: arn: aws: sts :: xxxxxxxxxxxx: assume-role / shell / i-15c2766d n'est pas autorisé à effectuer: iam: ListInstanceProfiles sur la ressource: arn: aws: iam :: xxxxxxxxxxxxx: instance -profil/
(où xxxxxxxxxxxx est mon numéro de compte AWS à 12 chiffres)
J'ai recherché la chaîne Arn via l'interface utilisateur Web et l'ai utilisée via "--iam-instance-profile Arn = arn: aws: iam :: xxxxxxxxxxxx: instance-profile / shell" sur la commande run-instances, et cela a échoué avec :
Une erreur client (UnauthorizedOperation) s'est produite: vous n'êtes pas autorisé à effectuer cette opération.
Si je laisse complètement l'option "--iam-instance-profile", l'instance se lancera mais elle n'aura pas le paramètre de rôle IAM dont j'ai besoin. La permission semble donc avoir quelque chose à voir avec l'utilisation de "--iam-instance-profile" ou l'accès aux données IAM. J'ai répété plusieurs fois en cas de pépins AWS (ils se produisent parfois) et sans succès.
Je soupçonne qu'il existe peut-être une restriction selon laquelle une instance avec un rôle IAM n'est pas autorisée à lancer une instance avec un rôle IAM plus puissant. Mais dans ce cas, l'instance dans laquelle je fais la commande a le même rôle IAM que j'essaie d'utiliser. nommé "shell" (bien que j'aie aussi essayé d'en utiliser un autre, pas de chance).
La définition d'un rôle IAM n'est-elle même pas autorisée à partir d'une instance (via ses informations d'identification de rôle IAM)?
Existe-t-il une autorisation de rôle IAM plus élevée nécessaire pour utiliser les rôles IAM que celle requise pour le lancement d'une instance simple?
"--Iam-instance-profile" est-il la manière appropriée de spécifier un rôle IAM?
Dois-je utiliser un sous-ensemble de la chaîne Arn ou le formater d'une autre manière?
Est-il possible de configurer un rôle IAM pouvant accéder à n'importe quel rôle IAM (peut-être un "Super Root IAM" ... constituant ce nom)?
Pour info, tout implique Linux fonctionnant sur les instances. De plus, j'exécute tout cela à partir d'une instance car je n'ai pas pu installer ces outils sur mon bureau. Cela et je ne veux pas mettre mes informations d'identification d'utilisateur IAM sur un stockage AWS comme conseillé par AWS ici .
après avoir répondu:
Je n'ai pas mentionné l'autorisation d'instance de lancement de "PowerUserAccess" (par rapport à "AdministratorAccess") car je ne savais pas qu'un accès supplémentaire était nécessaire au moment où la question a été posée. J'ai supposé que le rôle IAM était une "information" attachée au lancement. Mais c'est vraiment plus que ça. Il s'agit d'une autorisation.