#aws-sts #aws-sdk-java-2.0 #aws-credentials
#aws-sts #aws-sdk-java-2.0 #aws-учетные данные
Вопрос:
Мой профиль 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
который не включает токен сеанса, только идентификатор ключа доступа и секретный ключ доступа.
Есть ли какой-либо способ получить полные учетные данные сеанса?
Ответ №1:
AWSCredentials — это интерфейс.
public interface AwsCredentials {
String accessKeyId();
String secretAccessKey();
}
и это реализовано AwsBasicCredentials и AwsSessionCredentials.
В зависимости от того, установлен токен сеанса или нет, при вызове API resolveCredentials() вам будет возвращен соответствующий класс.
Ответ №2:
вместо использования AWSCredentials / AwsSessionCredentials почему вам не нравится использовать Aws4PresignerParams, он предоставит вам все три параметра (aws_session_token, aws_access_key_id и aws_secret_access_key).