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!
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
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.
Tags und Links amazon-web-services aws-sdk amazon-iam