亚马逊SDK - 临时凭证和AssumeRoleRequest

Dam*_*ien 12 java amazon-ec2 amazon-web-services

我正在使用Amazon Java SDK的1.11.79版本我有一个作业,它创建了我所有服务器卷的快照.随着睡眠等(以满足亚马逊SDK指南) - 这已开始需要一个多小时

我使用以下代码使用临时凭证构建我的AmazonEC2Client

        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);
Run Code Online (Sandbox Code Playgroud)

问题出在AssumeRoleRequest和withDurationSeconds方法 - 你可以设置的最大值是3600秒(1小时)

我需要能够设置为2或3个小时

有谁知道是否有另一种方法来创建持续时间超过1小时的临时凭证?

谢谢Damien

fra*_*ijo 5

您可以使用GetSessionToken,如果您是IAM用户,则接受DurationSeconds值高达129600.

来自文档:

由IAM用户创建的凭据在您指定的持续时间内有效,从900秒(15分钟)到最大129600秒(36小时),默认值为43200秒(12小时)

  • 您是否曾使用过此类 - 只是想知道是否以及何时调用刷新方法 - http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/STSAssumeRoleSessionCredentialsProvider.html (2认同)