Pourquoi mon instance Amazon EC2 utilise-t-elle les informations d'identification d'utilisateur IAM au lieu des informations d'identification de rôle ?

Dernière mise à jour : 12/06/2020

J'ai attaché un rôle AWS Identity and Access Management (IAM) à une instance Amazon Elastic Compute Cloud (Amazon EC2). Toutefois, l'instance Amazon EC2 effectue des appels d'API avec un utilisateur IAM au lieu d'un rôle IAM.

Brève description

L'interface de ligne de commande AWS (AWS CLI) utilise un ensemble de fournisseurs d'informations d'identification afin de rechercher les informations d'identification AWS dans une séquence. Les informations d'identification utilisées dépendent de l'ordre et de la priorité des fournisseurs d'informations d'identification. Pour plus d'informations, consultez la section Paramètres de configuration et priorité.

Résolution

Suivez les instructions pour trouver l'ID d'utilisateur IAM et l'emplacement de stockage des informations d'identification d'utilisateur IAM. Utilisez ensuite l'interface de ligne de commande AWS pour gérer les informations d'identification IAM et ignorer le paramètre de priorité plus élevée.

Rechercher l'ID d'utilisateur IAM et trouver l'emplacement des informations d'identification d'utilisateur IAM

1.    Exécutez la commande get-caller-identity suivante afin de vérifier quelles informations d'identification IAM sont utilisées pour effectuer des appels d'API :

aws sts get-caller-identity

Le résultat obtenu doit être similaire à ce qui suit :

{

    "Account": "123456789012", 

    "UserId": "AIDACKCEVSQ6C2EXAMPLE", 

    "Arn": "arn:aws:iam::123456789012:user/ExampleIAMuser"

}

Dans cet exemple de résultat, les informations d'identification IAM utilisées proviennent de ExampleIAMuser.

2.    Utilisez l'option --debug pour vérifier l'emplacement des informations d'identification d'utilisateur similaires à ce qui suit :

aws s3 ls --debug
2020-03-28 02:04:29,478 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials

Dans cet exemple de résultat, les informations d'identification d'utilisateur IAM sont stockées dans le fichier .aws/credentials. Étant donné que ces informations d'identification ont une priorité plus élevée que les informations d'identification de rôle, les informations d'identification d'utilisateur IAM sont utilisées pour effectuer des appels d'API.

Interface de ligne de commande AWS pour gérer les informations d'identification IAM et ignorer le paramètre de priorité plus élevée

Utilisez les bonnes pratiques suivantes :

  • Veillez à ne pas utiliser l'option --profile avec l'interface de ligne de commande AWS.
  • Annulez ou supprimez toutes les variables d'environnement.
  • Pour la commande configure, supprimez le fichier d'informations d'identification dans le dossier .aws/credentials. Ensuite, supprimez le dossier .aws pour définir les informations d'identification par défaut du profil d'instance.
  • Pour les profils configurés dans le fichier .aws/config, supprimez le profil. Supprimez ensuite le dossier .aws.

Une fois que vous avez supprimé la priorité des paramètres de configuration des informations d'identification IAM, exécutez la commande get-caller-identity pour vérifier les informations d'identification de rôle IAM similaires à ce qui suit :

aws sts get-caller-identity

{
    "UserId": "AROACKCEVSQ6C2EXAMPLE:i-01773d4a8ed647342",
    "Account": "123456789012",
    "Arn": "arn:aws:sts::123456789012:assumed-role/ExampleInstanceRole/i-01773d4a8ed647342"
}

Dans cet exemple de résultat, les informations d'identification IAM utilisées proviennent du rôle IAM ExampleInstanceRole.


Cette page vous a-t-elle été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?