2016-07-29 24 views
1

Dokumentation WidersprüchlicheAWS STS AssumeRole: Sind IAM-Benutzeranmeldeinformationen erforderlich oder nicht?

Die documentation here, zu AssumeRole gehören, scheint sich in einem zusammenhängenden Block zu widersprechen:

Sie müssen diese API aufrufen vorhandene IAM Benutzer-Credentials. Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen für einen IAM Benutzer und Konfigurieren des MFA-geschützten API-Zugriffs.

Dies ist ein unsigned Anruf, was bedeutet, dass die App nicht Zugriff auf alle AWS Sicherheitsnachweise zu haben, um brauchen den Anruf zu tätigen.

Die Widersprüche sind gegeben fett Schwerpunkt.

Codebeispiel

Die code sample provided here scheint sicher Berechtigungsnachweise zu verlangen:

AmazonSecurityTokenServiceClient securityTokenServiceClient = new AmazonSecurityTokenServiceClient(
    Config.AccessKey, 
    secretKeyAsString, 
    securityTokenServiceConfig); 

...

AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest 
{ 
    DurationSeconds = sessionDurationSec, 
    RoleArn = roleArn, 
    RoleSessionName = awsUsername, 
    ExternalId = groupSid 
}; 

...

assumeRoleResponse = securityTokenServiceClient.AssumeRole(assumeRoleRequest); 

Abschließend

Welches ist wahr? Sind die Anforderungen im Codebeispiel wirklich redundant?

Vielen Dank!

Antwort

2

Der API-Aufruf erfordert.

Um eine IAM-Rolle zu übernehmen, muss ein vorhandener Satz von Anmeldeinformationen verwendet werden, damit AWS erkennt, wer die Rolle übernimmt. Auf diese Weise kann AWS überprüfen, ob die übernehmende Partei die Rolle übernehmen darf.

In der Dokumentation:

Dies ist ein unsigned Anruf, was bedeutet, dass die App keinen Zugriff auf AWS Sicherheitsberechtigungen, um den Anruf zu tätigen haben muss.

Dies scheint falsche Informationen zu sein.

1

Dies ist in der Tat ein Fehler in der Dokumentation, der gerade korrigiert wird. Für AssumeRole sind vorhandene Anmeldeinformationen für den langfristigen (IAM-Benutzer) oder den temporären Anmeldedatensatz erforderlich. Es sind die beiden Föderationsäquivalente AssumeRoleWithSAML und AssumeRoleWithIdentity, die ohne Anmeldeinformationen aufgerufen werden können. Entschuldigung für die Verwirrung!