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

Lecture de 3 minute(s)
0

J'ai associé un rôle AWS Identity and Access Management (IAM) à une instance Amazon Elastic Compute Cloud (Amazon EC2). Malheureusement, 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 pour rechercher des 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 en savoir plus, reportez-vous à Configuration et priorité des informations d'identification.

Résolution

Recherchez l'ID de l'utilisateur IAM et l'emplacement à partir duquel les informations d'identification de l'utilisateur IAM sont stockées. Utilisez ensuite l'AWS CLI pour gérer les informations d'identification IAM et supprimez le paramètre de priorité le plus élevé.

Remarque : Si des erreurs surviennent lors de l'exécution des commandes AWS CLI, vérifiez que vous utilisez la version la plus récente de l'interface.

Identifier l'ID de l'utilisateur IAM et accéder à l'emplacement des informations d'identification de l'utilisateur IAM

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

aws sts get-caller-identity

Vous obtenez un résultat similaire au suivant :

{

    "Account": "123456789012",

    "UserId": "AIDACKCEVSQ6C2EXAMPLE",

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

}

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

2.    Utilisez l'option --debug pour vérifier l'emplacement des informations d'identification de l'utilisateur :

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

Dans l'exemple de résultat précédent, les informations d'identification de l'utilisateur IAM sont stockées dans le fichier .aws/credentials. Ces informations d'identification étant plus prioritaires que les informations d'identification de rôle, les informations d'identification utilisateur IAM sont utilisées pour effectuer des appels d'API.

Utilisez l'AWS CLI pour gérer les informations d'identification IAM et supprimer le paramètre de priorité le plus élevé

Vous trouverez ci-dessous les bonnes pratiques en matière de gestion des informations d'identification IAM :

  • N'utilisez pas l'option --profil dans l'AWS CLI.
  • Annulez ou supprimez toutes les variables d'environnement.
  • Pour la commande configure, supprimez le fichier des informations d'identification dans le dossier .aws/credentials. Supprimez ensuite 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 les paramètres de configuration supprimés, exécutez la commande get-caller-identity pour vérifier les informations d'identification du rôle IAM :

aws sts get-caller-identity

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

Dans l'exemple de sortie précédent, les informations d'identification du rôle IAM ExampleInstanceRole sont utilisées.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois