2016-03-08 6 views
7

Ich bin auf einer EC2 eine App läuft eine Rolle mit den Berechtigungen mit:Fehler beim EC2 als Rolle ausgeführt wird versucht, eine Session-Token in AWS zu bekommen

"sts:GetSessionToken", 
"sts:AssumeRole" 

Wenn ich versuche, temporäre Anmeldeinformationen zu erhalten, unter Verwendung von diese Rolle, erhalte ich die Fehlermeldung:

Cannot call GetSessionToken with session credentials (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; 

Bin ich fehle eine oder mehr Berechtigungen für die Rolle temporäre Sitzung Anmeldeinformationen erhalten zu können?

+0

Beginnen Sie mit '" sts: * "' und sehen Sie, dass es funktioniert. Wenn dies nicht der Fall ist, ist die Richtlinie Ihrer Rolle nicht korrekt definiert. Wenn dies der Fall ist, machen Sie die Richtlinie Schritt für Schritt detaillierter. – helloV

+0

Ich habe beide erlaubt "sts: *" und "iam: *" auf die Rolle, aber ohne Erfolg. – Todd

+0

Ihre Richtlinie ist nicht korrekt definiert. Es gibt viele Beispiele, verwenden Sie sie oder posten Sie Ihre Richtlinie. – helloV

Antwort

5

Gemäß der AWS-Unterstützung können Rollen keine temporären Anmeldeinformationen anfordern. Nur tatsächliche Benutzer können das tun.

Eine Umgehung besteht darin, die Anmeldeinformationen der Rolle zu verwenden. Sie werden jede Stunde umgerollt, also sind sie vorübergehend (wenn auch hart codiert zu 1 Stunde TTL)

+2

Wenn Sie mit einer Rolle arbeiten, sind Ihre Anmeldedaten * Sitzungsberechtigungsnachweise * (die der EC2-Dienst im Namen Ihrer Instanz erhält), daher der Wortlaut des Fehlers 'GetSessionToken mit Sitzungsanmeldeinformationen kann nicht aufgerufen werden'. –