2017-01-30 56 views
9

Używam wersji 1.11.79 zestawu Amazon Java SDK Mam zadanie, które tworzy migawkę wszystkich moich woluminów serwera. Z śpi itp (do spełnienia wytycznych Amazon SDK) - ta zaczęła się ponad godzinęPakiet Amazon SDK - Tymczasowe poświadczenia i AssumeRoleRequest

używam następujący kod do konstruowania moje AmazonEC2Client stosując tymczasowe poświadczenia

 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); 

Problem polega na tym ze AssumeRoleRequest i metoda withDurationSeconds - max można go ustawić to 3600 sekund (1 godzina)

muszę być w stanie ustawić to znaczy 2 lub 3 godziny

czy ktoś wie, czy jest Inny sposób tworzenia tymczasowych poświadczeń, które będą trwać dłużej niż 1 godzinę?

Dzięki Damien

Odpowiedz

5

Można skorzystać z GetSessionToken, która przyjmuje wartość DurationSeconds tak wysokie, jak 129600 warunkiem jesteś IAM użytkownika.

Od docs:

poświadczenia, które są tworzone przez IAM użytkowników są ważne na czas określony przez użytkownika, od 900 sekund (15 minut), aż do maksymalnej wysokości 129600 sekund (36 godzin), z domyślna z 43200 sekund (12 godzin)

+0

to byłoby użyteczne, ale niestety nie używamy IAM, ponieważ niektóre serwery zdołamy są w wielu różnych kont Amazon – Damien

+0

w tym przypadku nie istnieje myśleć jest dostępna dowolna opcja żądania danych uwierzytelniających przez ponad godzinę. Możesz spróbować zastąpić token nowym wygenerowanym po wygaśnięciu i kontynuować migawkę. – franklinsijo

+2

Czy kiedykolwiek korzystałeś z tej klasy - zastanawiałeś się tylko, czy i kiedy odświeżysz metodę - http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/STSAssumeRoleSessionCredentialsProvider.html – Damien