Я не могу использовать временные учетные данные, полученные при назначении роли IAM экземпляру с переменной среды внутри контейнера Docker.Пример, следующий не работает:
[root@ip-172-xx-xx-xx ec2-user]# aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************ABCD iam-role
secret_key ****************12a3 iam-role
region <not set> None None
и docker run -e AWS_REGION=us-east-1 <some-java-image>
AWS_REGION
var находится внутри докера, но SDK не выбирает, поэтому AmazonSQSClientBuilder.defaultClient()
завершается неудачно с Exception in thread "main" com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.
,
Он работает локально на моем ноутбуке, вероятно, потому что у меня есть набор постоянных учетных данных.
Кроме того, aws sqs list-queues
отлично работает в докере, мне не нужно указывать регион, потому что онвыбирает из переменной env, которую я передал.Работает также с Go SDK AWS внутри докера.Итак, awscli работает, но не SDK.
Это также мешает мне использовать роли экземпляров в AWS Batch.