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

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

0 ответов

Другие вопросы по тегам