J'ai créé un rôle IAM, mais il n'apparaît pas dans la liste déroulante lorsque je lance une instance. Que faire ?

Date de la dernière mise à jour : 16/04/2019

J'ai créé un rôle AWS Identity and Access Management (IAM), mais il n'apparaît pas dans la liste déroulante lorsque je lance une instance.

Résolution

La liste déroulante inclut des profils d'instance, mais pas les rôles IAM. Cependant, vous pouvez ajouter un rôle IAM à un profil d'instance. Vous devez choisir le profil d'instance qui contient le rôle IAM requis.

Procédez comme suit pour créer un rôle IAM lié à un profil d'instance. Ensuite, sélectionnez le profil d'instance dans la liste déroulante lorsque vous lancez votre instance. Créez un rôle IAM lié à un profil d'instance à l'aide de la console IAM ou l'interface de ligne de commande AWS (CLI AWS).

Utilisation de la console IAM

1.    Ouvrez la console IAM.

2.    Dans le volet de navigation, sélectionnez Rôles, puis Créer un rôle.

3.    Sélectionnez EC2 en tant que service AWS, puis EC2 en tant que cas d'utilisation, et enfin Next: Permissions (Suivant : autorisations).

4.    Sélectionnez le Nom de la stratégie correspondant à votre cas d'utilisation, puis Next: Tags (Suivant : balises) et Next: Review (Suivant : vérification).

5.    Saisissez un Nom du rôle, puis sélectionnez Créer un rôle.

Lorsque vous sélectionnez EC2 comme cas d'utilisation, une relation d'approbation est créée pour Amazon Elastic Compute Cloud (Amazon EC2). Votre cas d'utilisation EC2 crée également un profil d'instance avec le même nom que le rôle IAM et ajoute le rôle IAM au même profil d'instance. Si EC2 n'est pas sélectionné lorsque le rôle IAM est créé, aucun profil d'instance ni aucune relation d'approbation n'est créé pour Amazon EC2.

Utilisation de l'interface de la CLI AWS

Important : avant de commencer, il est impératif que l'interface de ligne de commande AWS (CLI AWS) soit installée et configurée.

1.    Créez un fichier nommé Test-Role-Trust-Policy.json et collez la stratégie suivante dans le fichier :

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

2.    Créez un rôle IAM en exécutant la commande suivante :

$ aws iam create-role --role-name Test-Role --assume-role-policy-document file://Test-Role-Trust-Policy.json

3.    Créez un profil d'instance en exécutant la commande suivante :

$ aws iam create-instance-profile --instance-profile-name Webserver

4.    Ajoutez un rôle IAM au profil d'instance en exécutant la commande suivante :

aws iam add-role-to-instance-profile --role-name Test-Role --instance-profile-name Webserver

Pour un rôle IAM existant pour EC2, vous devez ajouter le mandataire de service EC2 dans sa stratégie d'approbation existante. Pour plus d'informations, consultez la section Spécification d'un mandataire.

Remarque : si les rôles IAM et les profils d'instance ont des noms différents, vous devez sélectionner le profil d'instance qui contient le rôle IAM requis lorsque vous lancez une instance EC2. Le rôle IAM ne sera pas répertorié dans la liste déroulante.