Gibt es einen Befehl / Unterbefehl, der an das aws
Dienstprogramm übergeben werden kann, um 1) ~/.aws/credentials
die Gültigkeit der Anmeldeinformationen in der Datei zu überprüfen und 2) anzugeben, zu welchem Benutzer die Anmeldeinformationen gehören? Ich suche nach etwas Allgemeinem, das keine Annahmen darüber macht, dass der Benutzer Berechtigungen für IAM oder einen bestimmten Dienst hat.
Der Anwendungsfall hierfür ist eine Überprüfung der Integrität während der Bereitstellung, um sicherzustellen, dass die Anmeldeinformationen ordnungsgemäß sind. Im Idealfall gibt es eine Möglichkeit, den Rückgabewert zu überprüfen und die Bereitstellung abzubrechen, wenn ungültige Anmeldeinformationen vorhanden sind.
amazon-web-services
aws-cli
Smitelli
quelle
quelle
Antworten:
Verwenden Sie GetCallerIdentity :
aws sts get-caller-identity
Im Gegensatz zu anderen API / CLI-Aufrufen funktioniert es immer, unabhängig von Ihren IAM-Berechtigungen.
Sie erhalten die Ausgabe im folgenden Format:
Das genaue ARN-Format hängt von der Art der Anmeldeinformationen ab, enthält jedoch häufig den Namen des (menschlichen) Benutzers.
Es werden die Standard- AWS-CLI-Fehlercodes verwendet , die bei Erfolg 0 und 255 angeben, wenn Sie keine Anmeldeinformationen haben.
quelle
aws iam get-user --profile test-mfa
, erhalte ich bei Ausführung Folgendes :An error occurred (AccessDenied) when calling the GetUser operation
. Allerdingsaws sts get-caller-identity --profile test-mfa
Ausgänge (ähnlich, ohne MFA Session - Token aktiv) dastest-mfa
‚s Konto, ARN, und die Benutzer - ID.Es gibt einen direkten Weg -
aws iam get-user
würde die Details darüber mitteilen, wer Sie sind (der aktuelle IAM-Benutzer) - vorausgesetzt, der Benutzer verfügt überiam
Berechtigungen.Es gibt einige CLI-Aufrufe, die ein
--dry-run
Flag unterstützen, mitaws ec2 run-instances
dem Sie angeben, ob Sie die erforderliche Konfiguration / Berechtigung haben, um den Vorgang auszuführen.Dort wird auch
--auth-dry-run
geprüft, ob Sie über die erforderlichen Berechtigungen für den Befehl verfügen, ohne den Befehl tatsächlich auszuführen. Wenn Sie über die erforderlichen Berechtigungen verfügen, gibt der Befehl DryRunOperation zurück. Andernfalls wird UnauthorizedOperation zurückgegeben. [Aus der AWS-Dokumentation - Allgemeine Optionen ]Sie können die IAM-Zugriffsschlüssel in der Verwaltungskonsole auflisten, die Sie überprüfen können, um festzustellen, wem welcher Schlüssel zugewiesen wurde.
Der beste Weg, um zu verstehen, welcher Benutzer / welche Rolle welche Berechtigungen hat, ist die Verwendung von IAM Policy Simulator .
quelle
AccessDenied
Fehler erhalten - der die vollständigearn:aws:iam::123...890:user/somebody
Zeichenfolge als Teil der Fehlerausgabe enthielt .