Как использовать переменные среды и роли IAM в докере, работающем под управлением AWS SDK для Java? - PullRequest
0 голосов
/ 17 декабря 2018

Я не могу использовать временные учетные данные, полученные при назначении роли 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.

...