Как использовать временные ключи AWS вместо переменных env с Java AWS SDK? - PullRequest
0 голосов
/ 11 сентября 2018

Я использую saml2aws для генерации временных ключей AWS для моих клиентов. Ранее я использовал переменные среды:

aws_access_key_id=MY KEY
aws_secret_access_key=MY SECRET

После аутентификации с saml2aws мой ~/.aws/config файл выглядит следующим образом (без изменений) :

[default]
output=json

А мой ~/.aws/credentials выглядит так:

[default]
aws_access_key_id        = MY KEY ID
aws_secret_access_key    = MY KEY
aws_session_token        = MY SESSION TOKEN
aws_security_token       = MY TOKEN
x_principal_arn          = MY ARN
x_security_token_expires = TIME

Когда я пытаюсь сделать это из cli с aws s3 ls, это работает, но когда я пытаюсь получить доступ к S3 из Java SDK:

AmazonS3Client(ProfileCredentialsProvider())
                .listObjects(ListObjectsRequest()
                        .withBucketName("some-bucket")
                        .withPrefix("some-prefix")
                        .withDelimiter("/")
                        .withMaxKeys(10000))

Я получаю:

com.amazonaws.AmazonClientException: невозможно загрузить учетные данные в профиль. Имя профиля или идентификатор ключа доступа AWS или секретный ключ доступа AWS для профиля отсутствуют.

И это не работает, даже если я явно пытаюсь использовать профиль default: ProfileCredentialsProvider("default") или даже если я вообще не назначаю провайдера!

Что я делаю не так?

1 Ответ

0 голосов
/ 11 сентября 2018
AmazonS3Client().listObjects(ListObjectsRequest()
                        .withBucketName("some-bucket")
                        .withPrefix("some-prefix")
                        .withDelimiter("/")
                        .withMaxKeys(10000))

достаточно, нет необходимости явно указывать ProfileCredentialsProvider(). Подробнее см.

https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html#AmazonS3Client--

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...