如何更新sts中的token

How to renew token in sts

我正在使用 aws sts 服务连接亚马逊资源。为此,我有以下 java 代码

 AssumeRoleRequest roleRequest = AssumeRoleRequest.builder()
                        .roleArn(roleArm)
                        .roleSessionName(roleSessionName)
                        .build();
             
  AssumeRoleResponse roleResponse = stsClient.assumeRole(roleRequest);
             
  sessionCredentials = roleResponse.credentials();
         
  stsCredentials = AwsSessionCredentials.create(
                     sessionCredentials.accessKeyId(),
                     sessionCredentials.secretAccessKey(),
                     sessionCredentials.sessionToken()); 
             
  provider = StaticCredentialsProvider.create(stsCredentials);

起初我的印象是我不必检测令牌过期并在给定的时间间隔更新它(我认为服务会自行更新)但似乎令牌在一定时间间隔后过期.

如何检测和更新令牌?

How do I detect and renew the token?

你的 AssumeRoleResponse 应该给你 expiration。所以你必须监控它,当你的凭据过期前几分钟,你必须自己创建新凭据。没有自动更新,除非您 运行 您在 EC2 实例、ECS 容器或 lambda 函数上的代码。在这种情况下,AWS 会负责这个过程。