Kubernetes имеет правильную переменную среды
aws_web_identity_token_file
aws_role_arn < /p>
Попродки в Kubernetes работают с учетной записью службы. Для AWS_IAM нам нужно сгенерировать токен сеанса. Это не генерирует токен сеанса. < /P>
< /li>
[*] Так, в основном, нам нужно преобразовать команду STS CLI в Java < /p>
Код: Выделить всё
aws sts assume-role-with-web-identity \
--role-arn $AWS_ROLE_ARN \
--role-session-name mysession \
--web-identity-token file://$AWS_WEB_IDENTITY_TOKEN_FILE \
--duration-seconds 1000 > /tmp/irp-cred.txt
< /code>
< /li>
Я передаю правильные вещи в коде Java < /p>
AssumeRoleWithWebIdentityRequest assumeRoleWithWebIdentityRequest = AssumeRoleWithWebIdentityRequest.builder()
.webIdentityToken("file:///var/run/secrets/eks.amazonaws.com/serviceaccount/token")
.roleArn("arn:aws:iam::*:role/eks/test")
.roleSessionName("user")
.build();
log.info("AssumeRoleWithWebIdentityRequest:{}",assumeRoleWithWebIdentityRequest.toString());
StsClient stsClient = StsClient.builder()
.region(region).build();
AssumeRoleWithWebIdentityResponse assumeRoleWithWebIdentityResponse = stsClient.assumeRoleWithWebIdentity(assumeRoleWithWebIdentityRequest);
log.info("AssumeRoleWithWebIdentityResponse:{}",assumeRoleWithWebIdentityResponse.toString());
Credentials credentials = assumeRoleWithWebIdentityResponse.credentials();
log.info("credentials, AccessKey:{},AccessSecret:{},AccessToken:{}",credentials.accessKeyId(),credentials.secretAccessKey(),credentials.sessionToken();
< /code>
< /li>
Я использую ниже зависимости < /p>
software.amazon.awssdk
acm
2.17.102
Но это не работает.
может кто -нибудь помочь?
Подробнее здесь: https://stackoverflow.com/questions/721 ... st-in-java