2017-01-30 17 views
9

Tôi đang sử dụng phiên bản 1.11.79 của Amazon Java SDK Tôi có một công việc tạo ảnh chụp nhanh tất cả các khối lượng máy chủ của mình. Với ngủ vv (để đáp ứng chủ trương SDK Amazon) - điều này đã bắt đầu để mất hơn một giờAmazon SDK - Thông tin đăng nhập tạm thời và AssumeRoleRequest

tôi sử dụng đoạn mã sau để xây dựng AmazonEC2Client của tôi bằng các thông tin tạm thời

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

Vấn đề là với AssumeRoleRequest và phương pháp withDurationSeconds - tối đa bạn có thể thiết lập nó để là 3600 giây (1 giờ)

tôi cần để có thể thiết lập này để nói 2 hoặc 3 giờ

có ai biết nếu có một cách nào để tạo thông tin đăng nhập tạm thời sẽ kéo dài hơn 1 giờ?

Cảm ơn Damien

Trả lời

5

Bạn có thể tận dụng GetSessionToken, mà chấp nhận giá trị DurationSeconds cao như 129.600 miễn là bạn là người dùng IAM.

Từ các tài liệu:

Credentials được tạo bởi người dùng IAM có giá trị trong suốt thời gian mà bạn chỉ định, từ 900 giây (15 phút) lên đến tối đa là 129.600 giây (36 giờ), với mặc định là 43200 giây (12 giờ)

+0

Điều đó sẽ hữu ích nhưng không may, chúng tôi không sử dụng IAM vì một số máy chủ mà chúng tôi quản lý có nhiều tài khoản amazon khác nhau – Damien

+0

Trong trường hợp đó, tôi không nghĩ rằng là bất kỳ tùy chọn nào có sẵn để yêu cầu thông tin xác thực trong hơn một giờ. Bạn có thể thử thay thế mã thông báo bằng mã thông báo mới được tạo khi hết hạn và tiếp tục snapshotting. – franklinsijo

+2

Bạn đã bao giờ sử dụng lớp này chưa - chỉ cần tự hỏi liệu và khi nào phương thức làm mới sẽ được gọi - http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/STSAssumeRoleSessionCredentialsProvider.html – Damien

Các vấn đề liên quan