43 votes

Y a-t-il un moyen de répertorier les profils AWS CLI disponibles/configurés?

Y a-t-il un moyen de répertorier les profils AWS CLI disponibles/configurés, autre que l'analyse de ~/.aws/config et/ou de ~/.aws/credentials pour les noms de profil?

44voto

Dustin Hooten Points 541

Vous pouvez répertorier les profils dans vos fichiers de configuration / d'identification aws en utilisant list-profiles:

aws configure list-profiles

Cela fonctionne pour moi avec la version 2.0.8 d'aws-cli.

15voto

Ville Points 2430

(Répondant à ma propre question.)

Non, il n'y en a pas.

J'ai écrit deux scripts qui incluent l'analyse que j'ai finalement utilisée. Pour ceux qui sont intéressés, ils sont disponibles dans deux dépôts GitHub :

awscli-mfa et aws-scripts

Il existe deux articles de blog connexes : "AWS CLI Key Rotation Script for IAM Users revisited", et "Easy MFA and Profile Switching in AWS CLI".

(mise à jour 2019-01-27 : l'article de blog "Easy MFA and Profile Switching in AWS CLI" est obsolète car il fait référence à la version 1.x du script awscli-mfa.sh alors que la version 2.x réécrite a été publiée. Un article de blog mis à jour est à venir, mais en attendant, veuillez vous référer à la documentation du dépôt awscli-mfa)

14voto

thedanotto Points 261

Le parsing de ~/.aws/credentials a été assez simple pour moi.

$ cat ~/.aws/credentials | grep -o '\[[^]]*\]'

\=> [default] [other_profile] [other_profile2]

J'ai également créé un alias de la commande en aws-profiles en ajoutant la ligne suivante dans mon fichier ~/.bash_profile

alias aws-profiles="cat ~/.aws/credentials | grep -o '\[[^]]*\]'"

utiliser un profil

Ajoutez --profile à votre commande aws. Ex. $ aws s3 cp ~/my.pdf s3://my_bucket/my.pdf --profile other_profile2

2voto

Eakraly Points 103

Si vous souhaitez analyser le fichier config plutôt que credentials (ce que j'ai trouvé plus pratique lors de l'utilisation d'un source_profile plutôt que d'avoir des informations d'identification uniques définies dans credentials pour chaque profil), alors ce qui suit devrait faire l'affaire:

cat ~/.aws/config | grep "\[profile " | sed -e 's/\[//g' -e 's/\]//g' -e 's/profile //g'

Cela trouvera toutes les lignes comme ceci:

[profile foo]
[profile bar]

Et retournera ceci:

foo
bar

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X