[FIXED] So überprüfen Sie, ob AWS CLI SSO angemeldet ist

Ausgabe

Ich verwende aws sso login, aber ich kann nicht herausfinden, wie ich feststellen kann, ob ich bereits angemeldet bin oder mich erneut anmelden muss. Die einzige Möglichkeit, dies zu tun, besteht darin, einen Befehl auszuführen, von dem ich weiß, dass ich ihn habe Berechtigung und prüfen Sie, ob keine Fehler auftreten.

aws sso logout
aws sqs list-queues # error
aws sso login # brower accept
aws sqs list-queues # success

Mein Ziel dabei ist es, einige Skripte zu automatisieren und nur bei Bedarf nach einer Anmeldung zu fragen.

Lösung

Sie können nach dem sts-Anruferidentitätsanruf suchen

Gibt Details über den IAM-Benutzer oder die IAM-Rolle zurück, deren Anmeldeinformationen zum Aufrufen der Operation verwendet werden.

https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html

#!/bin/bash

SSO_ACCOUNT=$(aws sts get-caller-identity --query "Account" --profile sso)
#you can add a better check, but this is just an idea for quick check
if [ ${#SSO_ACCOUNT} -eq 14 ];  then 
echo "session still valid" ;
else 
echo "Seems like session expired"
# performed login here
fi

Wenn die Sitzung noch gültig ist, wird sie zurückgegeben

{
    "UserId": "AIDASAMPLEUSERID",
    "Account": "123456789012",
    "Arn": "arn:aws:iam::123456789012:user/DevAdmin"
}

Wenn die Sitzung nicht gültig ist, wird sie zurückgegeben


The SSO session associated with this profile has expired or is otherwise invalid. To refresh this SSO session run aws sso login with the corresponding profile.

Oder Sie können dieses Dienstprogramm verwenden, das für diesen Zweck entwickelt wurde

https://github.com/benkehoe/aws-sso-util


Beantwortet von –
Adiii


Antwort geprüft von –
Cary Denson (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like