Wie erhalte ich aus dem AWS SDK den aktuell angemeldeten Benutzernamen (oder IAM-Benutzer)?

8

Ich verwende das Ruby SDK (V2), aber ich denke, meine Frage ist allgemeiner als die spezifische Implementierung, da ich in keinem der SDKs eine Antwort finden konnte.

Wie erhalte ich den Benutzernamen (und / oder den IAM-Benutzer), zu dem meine Sitzung aktuell gehört?

Ich lasse das SDK sein Standardverhalten für die Auswahl der Anmeldeinformationen ausführen (ENV vars, dann 'default' Profil oder anderes, falls angegeben und dann Maschinenrolle). Dann initialisiere ich meinen Client und führe Befehle aus. Ich würde gerne wissen, wer die Befehle ausführt. Ich erwarte, den AWS-Benutzernamen zu erhalten und wenn die gewählten Anmeldeinformationen von einem IAM-Benutzer darin waren, dann auch diesen Benutzernamen.

Irgendwelche Ideen? Das Beste, was ich bisher bekommen habe, war, dass ich, nachdem ich ein Objekt Client erstellt habe, das tatsächliche config abfragen und Credentials erhalten kann. Aber das gibt mir nur, welche Anmeldeinformationen gewählt wurden (d. H.% Co_de% vs. SharedCredentials profile='default' ) und sagt mir nicht, wer der Benutzername dahinter ist.

Vielen Dank!

    
Zach Moshe 14.12.2015, 10:34
quelle

2 Antworten

2

Seien Sie bei Ihrer Terminologie vorsichtig - die Interaktionen mit den AWS-APIs erfolgen ausschließlich über HTTP und sind sessionlos und zustandslos. Es gibt also kein Konzept für den aktuell angemeldeten Benutzer oder eine "Sitzung".

>

Sie können jedoch für einen bestimmten Berechtigungssatz die Attribute des "aktuellen" Benutzers (des Benutzers, dessen Anmeldeinformationen Sie verwenden) von Aws::IAM::CurrentUser abrufen.

Ссылка

Ich entschuldige mich für das Fehlen eines Beispiels - ich bin mit Ruby im Allgemeinen nicht vertraut -, fand dies aber basierend auf dem, was ich mit den direkten Abfrage-APIs und dem Kommandozeilen-Client mit aws iam get-user machen konnte. Die verfügbaren Attribute sind alle gleich: user_name , password_last_used , create_date , user_id , path und arn ... also ich vermute, dass Sie genau danach suchen.

>

Aus den Anfrage-API-Dokumenten :

  

ist standardmäßig der Benutzer, der die Anfrage macht

    
Michael - sqlbot 14.12.2015, 17:27
quelle
1

STS (Security Token Service) stellt hierfür eine API zur Verfügung:

GetCallerIdentity Gibt Details zur IAM-Identität zurück, deren Anmeldeinformationen zum Aufrufen der API verwendet werden.

Ссылка

    
Michael Rush 02.10.2017 20:43
quelle