Я использую 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")
или даже если я вообще не назначаю провайдера!
Что я делаю не так?