web-dev-qa-db-fra.com

Comment tester les informations d'identification pour les outils de ligne de commande AWS

Existe-t-il une commande/sous-commande pouvant être transmise à l'utilitaire aws qui peut 1) vérifier que les informations d'identification dans le fichier ~/.aws/credentials sont valides, et 2) indiquer à quel utilisateur les informations d'identification appartiennent? Je recherche quelque chose de générique qui ne présume pas que l'utilisateur possède des autorisations sur IAM ou sur un service spécifique.

Le cas d'utilisation de cette opération est une vérification de l'intégrité du déploiement pour s'assurer que les informations d'identification sont correctes. Idéalement, il y aurait un moyen de vérifier la valeur de retour et d'abandonner le déploiement s'il existe des informations d'identification non valides.

103
smitelli

Utilisez GetCallerIdentity :
aws sts get-caller-identity

Contrairement aux autres appels API/CLI, cela fonctionnera toujours, quelles que soient vos autorisations IAM.

Vous obtiendrez une sortie au format suivant:

{
    "Account": "123456789012", 
    "UserId": "AR#####:#####", 
    "Arn": "arn:aws:sts::123456789012:assumed-role/role-name/role-session-name"
}

Exact format ARN dépendra du type d'informations d'identification, mais comprend souvent le nom de l'utilisateur (humain).

Il utilise le standard codes d'erreur AWS CLI , donnant 0 en cas de succès et 255 si vous ne disposez pas d'informations d'identification.

143
Jason

Il existe un moyen simple - aws iam get-user de dire en détail qui vous êtes (l'utilisateur IAM actuel) - à condition que l'utilisateur dispose des privilèges iam.

Il existe plusieurs appels CLI prenant en charge le drapeau --dry-run tel que aws ec2 run-instances, qui vous indique si vous avez la configuration/le code de créance nécessaire pour effectuer l'opération.

Il existe également --auth-dry-run qui vérifie si vous disposez des autorisations requises pour la commande, sans exécuter la commande. Si vous disposez des autorisations requises, la commande retourne DryRunOperation; sinon, il retourne UnauthorizedOperation. [De Documentation AWS - Options communes ]

Vous pourrez répertorier les clés d’accès IAM à partir de la console de gestion que vous pourrez vérifier pour voir qui a été affecté à quelle clé.

Le meilleur moyen de comprendre quel utilisateur/quel rôle a quels privilèges est d'utiliser Simulateur de stratégie IAM .

46
Naveen Vijay