"нет базовых учетных данных аутентификации" при попытке извлечь изображение из частного ECR - PullRequest
0 голосов
/ 10 июля 2019

У меня есть следующая строка где-то в середине моего Dockerfile, чтобы получить изображение из моего личного ECR.

FROM **********.dkr.ecr.ap-southeast-1.amazonaws.com/prod/*************:ff03401

Это ошибка, которую я получаю в AWS Codebuild при попытке построить это:

Шаг 21/36: ОТ **********. Dkr.ecr.ap-southeast-1.amazonaws.com/prod/*************: ff03401 Получить https://**********.dkr.ecr.ap -southeast-1.amazonaws.com / prod / ************* / manifes / ff03401: без базовых учетных данных для аутентификации

Как можно предоставить эти учетные данные наиболее безопасным способом и способом, который также может быть terraform ed?

1 Ответ

4 голосов
/ 10 июля 2019

Есть несколько способов сделать это.

Использование доступа aws и секретного ключа.В котором вы устанавливаете учетные данные aws на машине ec2 и запускаете команду ecr login.aws ecr get-login --no-include-email --registry-ids <some-id> --region eu-west-1 и затем должно работать Docker Pull.Но это не рекомендуемый безопасный способ.

Я предпочитаю использовать aws iam role .

Предполагая, что вы хотите вытащить это изображение на ваш компьютер ec2, который был доставленс помощью терраформ.Используйте роли iam.

  • Создайте роль iam вручную или с помощью terraform iam resource .
  • Информацию о политике iam см. this .
  • При переносе ec2 с использованием terraform экземпляр ресурса использовать атрибут iam_instance_profile , значением этого атрибута должно быть имя созданной вами роли iam.

Этого должно быть достаточно для автоматического извлечения образов докера из ECR безопасным способом.

Надеюсь, это поможет.

...