Доступ к токену сеанса 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 который не включает токен сеанса, только идентификатор ключа доступа и секретный ключ доступа.

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

3 ответа

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

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

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

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

Ниже приведен код, который можно использовать для получения учетных данных.

      BasicSessionCredentials basicSessionCredentials = (BasicSessionCredentials) new ProfilesConfigFile().getCredentials(profile);

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

Другие вопросы по тегам