2017-01-30 4 views
9

Ich verwende Version 1.11.79 des Amazon Java SDK Ich habe einen Job, der einen Snapshot aller meiner Server-Volumes erstellt. Mit schläft usw. (Amazon SDK-Richtlinien gerecht zu werden) - dieserAmazon SDK - Temporäre Anmeldeinformationen und AssumeRoleRequest

ich den folgenden Code über eine Stunde zu nehmen hat damit begonnen, verwende meinen AmazonEC2Client mit temporären Anmeldeinformationen

 AssumeRoleRequest assumeRequest = new AssumeRoleRequest().withRoleArn(roleARN).withExternalId(externalId).withDurationSeconds(3600) 
      .withRoleSessionName(roleSessionName); 

    AssumeRoleResult assumeResult = amazonSecurityTokenServiceClient.assumeRole(assumeRequest); 
    Credentials credentials = assumeResult.getCredentials(); 

    temporaryCredentials = new BasicSessionCredentials(credentials.getAccessKeyId(), credentials.getSecretAccessKey(), credentials.getSessionToken()); 

    CustomAmazonCredentialsProviderVO customAmazonCredentialsProviderVO = new CustomAmazonCredentialsProviderVO(); 
    customAmazonCredentialsProviderVO.setCredentials(temporaryCredentials); 
    LOG.debug("customAmazonCredentialsProviderVO:{}", customAmazonCredentialsProviderVO); 

    amazonEC2Client = new AmazonEC2Client(customAmazonCredentialsProviderVO, amazonClientConfiguration); 

Das Problem mit dem AssumeRoleRequest zu konstruieren und die withDurationSeconds Methode - die max Sie können diese Funktion 3600 Sekunden (1 Stunde)

ich diese in der Lage sein müssen, ist eingestellt zu sagen 2 oder 3 Stunden

weiß jemand, wenn es eine ist andere Möglichkeit, temporäre Anmeldeinformationen zu erstellen, die länger als 1 Stunde dauern?

Dank Damien

Antwort

5

Sie können von GetSessionToken, der nimmt den DurationSeconds Wert so hoch wie 129.600 vorausgesetzt, Sie sind ein IAM Benutzer machen.

Aus der Dokumentation:

Credentials, die von IAM-Benutzer erstellt wird, sind für die Dauer gültig, die Sie, von 900 Sekunden (15 Minuten) bis zu einem Maximum von 129.600 Sekunden (36 Stunden) angeben, mit ein Standardwert von 43.200 Sekunden (12 Stunden)

+0

, das nützlich sein würde, aber leider sind wir mit IAM als einige der Server nicht, dass wir in vielen verschiedenen amazon Konten verwalten – Damien

+0

in diesem Fall glaube ich nicht, dass es steht eine Option zur Verfügung, um Anmeldeinformationen für mehr als eine Stunde anzufordern. Sie können versuchen, das Token beim Ablauf durch ein neu erstelltes Token zu ersetzen und das Snapshot-Verfahren fortzusetzen. – franklinsijo

+2

Haben Sie jemals diese Klasse verwendet - sich nur gefragt, ob und wann die Refresh-Methode aufgerufen werden würde - http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/STSAssumeRoleSessionCredentialsProvider.html – Damien

Verwandte Themen