Gibt es eine Möglichkeit, verfügbare/konfigurierte AWS CLI-Profile aufzulisten?

Gibt es eine Möglichkeit, verfügbare/konfigurierte AWS CLI-Profile aufzulisten, außer ~/.aws/config und/oder ~/.aws/credentials für Profilnamen zu analysieren?

Author: Ville, 2017-10-18

4 answers

Sie können Profile in Ihren aws config/Credential-Dateien auflisten, indem Sie list-profiles:

aws configure list-profiles

Dies funktioniert für mich mit aws-cli Version 2.0.8.

 22
Author: Dustin Hooten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-11-23 01:46:56

(Beantwortung meiner eigenen Frage.)

Nein, gibt es nicht.

Ich habe zwei Skripte geschrieben, die das Parsen enthalten, das ich am Ende verwendet habe. Für alle Interessierten sind sie in zwei GitHub-Repositorys verfügbar:

Awscli-mfa - und aws-scripts

Es gibt zwei Verwandte blog-Artikel : "AWS CLI-Key-Rotation-Skript für IAM-Benutzer revisited" und "Einfache MFA und Profil-Switching in der AWS-CLI".

(update 2019-01-27: der blog-Artikel "Easy MFA and Profile Switching in AWS CLI" ist veraltet, da es sich auf die awscli-mfa.sh - Skriptversion 1 bezieht.x während der neu geschriebenen 2.x wurde veröffentlicht. Ein aktualisierter Blogartikel steht bevor, aber in der Zwischenzeit beachten Sie bitte die awscli-mfa Repository-Dokumentation)

 15
Author: Ville,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-28 02:10:33

Das Parsen von ~/.aws/credentials war einfach genug für mich.

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

=> [default] [other_profile] [other_profile2]

Ich habe den Befehl auch mit einem Alias versehen aws-profiles indem ich die folgende Zeile in mein ~/.bash_profile

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

Verwendung eines Profils

Fügen Sie Ihrem aws-Befehl --profile <profile_name> hinzu. Ex. $ aws s3 cp ~/my.pdf s3://my_bucket/my.pdf --profile other_profile2

 14
Author: thedanotto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-07-11 15:31:35

Wenn Sie die Datei config anstelle von credentials analysieren möchten (was ich bei der Verwendung eines source_profile praktischer fand als eindeutige Anmeldeinformationen, die in credentials für jedes Profil definiert sind), sollte Folgendes den Trick ausführen:

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

Hier finden Sie alle Zeilen wie folgt:

[profile foo]
[profile bar]

Und gib folgendes zurück:

foo
bar
 1
Author: BrianV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-25 19:58:08