2016-03-08 26 views
7

Sono in esecuzione un'applicazione su un EC2 utilizzando un ruolo con i permessi:errore quando EC2 esecuzione come un ruolo cerca di ottenere un token di sessione in AWS

"sts:GetSessionToken", 
"sts:AssumeRole" 

Quando cerco di ottenere le credenziali temporanee utilizzando quel ruolo, ottengo l'errore:

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

mi manca uno o più autorizzazioni per il ruolo di essere in grado di ottenere le credenziali di sessione temporanee?

+0

Inizia con '" ": *" 'e vedi che funziona. In caso contrario, la politica del tuo ruolo non è definita correttamente. In caso affermativo, rendere la politica granulare passo dopo passo. – helloV

+0

Ho aggiunto sia consentire "sts: *" e "iam: *" al ruolo, ma senza successo. – Todd

+0

Quindi la vostra politica non è definita correttamente. Ci sono molti esempi, usali o pubblica la tua politica. – helloV

risposta

5

In base al supporto AWS, i ruoli non possono richiedere credenziali temporanee. Solo gli utenti effettivi possono farlo.

Una soluzione è utilizzare le credenziali del ruolo. Arrotolano ogni ora, quindi sono temporanee (anche se codificate a un'ora TTL)

+2

Quando si esegue un ruolo, le credenziali * sono * credenziali di sessione, (che il servizio EC2 ottiene per conto dell'istanza), quindi il testo dell'errore, 'Impossibile chiamare GetSessionToken con le credenziali di sessione'. –