Доступ к токену сеанса AWS из профиля с помощью DefaultCredentialsProvider

Мой профиль AWS в ~/.aws/credentials содержит учетные данные сеанса, созданные STS.

[default]
aws_session_token=XXX
aws_access_key_id=XXX
aws_secret_access_key=XXX

Я пытаюсь получить доступ к этим учетным данным с помощью AWS SDK Java v2

Использование DefaultCredentialsProvider или ProfileCredentialsProvider находит их, но возвращаемый объект имеет тип AwsCredentials, а не AwsSessionCredentials, который не включает токен сеанса, только идентификатор ключа доступа и секретный ключ доступа.

Есть ли способ получить полные учетные данные сеанса?


person user5633550    schedule 25.08.2020    source источник


Ответы (2)


AwsCredentials - это интерфейс.

public interface AwsCredentials {
    String accessKeyId();
    String secretAccessKey();
}

и его реализует AwsBasicCredentials и AwsSessionCredentials.

В зависимости от того, установлен ли токен сеанса или нет, соответствующий класс будет возвращен вам при вызове API resolveCredentials ().

person Ravi Pandit    schedule 03.04.2021

вместо использования AwsCredentials / AwsSessionCredentials, почему вам не нравится использовать Aws4PresignerParams, он предоставит вам все три параметра (aws_session_token, aws_access_key_id и aws_secret_access_key).

person kotamsettyanand rao    schedule 18.04.2021