Existe-t-il une commande / sous-commande qui peut être transmise à l' aws
utilitaire qui peut 1) vérifier que les informations d'identification dans le ~/.aws/credentials
fichier sont valides et 2) donner une indication à quel utilisateur les informations d'identification appartiennent? Je recherche quelque chose de générique qui ne fait aucune hypothèse sur le fait que l'utilisateur dispose d'autorisations sur IAM ou sur un service spécifique.
Le cas d'utilisation pour cela est une vérification de l'intégrité au moment du déploiement pour s'assurer que les informations d'identification sont bonnes. 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.
la source
Réponses:
Utilisez GetCallerIdentity :
aws sts get-caller-identity
Contrairement aux autres appels API / CLI, il fonctionnera toujours, quelles que soient vos autorisations IAM.
Vous obtiendrez la sortie dans le format suivant:
Le format ARN exact dépendra du type d'informations d'identification, mais inclut souvent le nom de l'utilisateur (humain).
Il utilise les codes d'erreur AWS CLI standard donnant 0 en cas de succès et 255 si vous n'avez pas d'informations d'identification.
la source
aws iam get-user --profile test-mfa
, je reçois:An error occurred (AccessDenied) when calling the GetUser operation
. Cependant,aws sts get-caller-identity --profile test-mfa
génère (de la même manière, sans jeton de session MFA actif) letest-mfa
compte, l'ARN et l'ID utilisateur du.Il existe un moyen simple -
aws iam get-user
indiquerait les détails sur qui vous êtes (l'utilisateur IAM actuel) - à condition que l'utilisateur dispose deiam
privilèges.Il y a quelques appels CLI qui prennent en charge l'
--dry-run
indicateur commeaws ec2 run-instances
lequel vous vous dites si vous avez la configuration / crédité nécessaire pour effectuer l'opération.Il y a aussi
--auth-dry-run
qui vérifie si vous avez les autorisations requises pour la commande, sans réellement exécuter la commande. Si vous disposez des autorisations requises, la commande renvoie DryRunOperation; sinon, il renvoie UnauthorizedOperation. [À partir de la documentation AWS - Options communes ]Vous pourrez répertorier les clés d'accès IAM à partir de la console de gestion que vous pouvez contre-vérifier pour voir à qui a été attribuée quelle clé.
La meilleure façon de comprendre quel utilisateur / rôle dispose de quels privilèges consiste à utiliser IAM Policy Simulator .
la source
AccessDenied
erreur - qui incluait laarn:aws:iam::123...890:user/somebody
chaîne complète dans le cadre de la sortie d'erreur.