Как получить временный токен сеанса для доступа к AWS ECR?

#amazon-web-services #amazon-ecr

#amazon-web-services #amazon-ecr

Вопрос:

Я поместил изображения в свой AWS ECR. Я хочу извлечь изображение с пограничного устройства. Если я использую Access / секретный ключ на своем пограничном устройстве, я могу войти в репозиторий и получить доступ к своим изображениям, как показано ниже,

шаг 1: Добавьте переменные среды

 export AWS_ACCESS_KEY_ID=access-key
export AWS_SECRET_ACCESS_KEY=secret-key
export AWS_DEFAULT_REGION=ap-southeast-1
  

шаг 2: войдите в реестр контейнеров elastic, используя следующую команду.

 aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin repo-id.dkr.ecr.ap-southeast-1.amazonaws.com
  

шаг 3: Извлеките изображение

  docker pull repo-id.dkr.ecr.ap-southeast-1.amazonaws.com/image_name
  

Эти шаги гарантируют, что я получу изображение из ECR.

Теперь, я не хочу хранить ключ доступа / секрет на пограничном устройстве. Я ищу какой-нибудь сеансовый ключ / временные ключи для доступа к изображению ECR без настройки доступа / секрета на пограничном устройстве. В этом потоке я могу исключить хранение строго конфиденциальных данных на пограничном устройстве.

Любая помощь была бы заметна.

Редактировать- 1:

одним из возможных способов является написание лямбда-функции для генерации пароля для ECR и защиты лямбда-кода с помощью ключа API в API Gateway. С пограничного устройства я вызову функцию lambda и получу пароль для извлечения изображения.

Будет ли это работать?

Ответ №1:

К сожалению, поскольку ваше устройство расположено не в AWS, оно не сможет воспользоваться преимуществами того, что к нему напрямую подключена роль IAM (что решает проблему не жестко запрограммированных разрешений).

Однако вы можете создать роль IAM в AWS, а затем использовать службу STS, чтобы принять роль от другого пользователя / роли IAM, у которого есть разрешения принять роль. Когда вы принимаете роль, вам предоставляются временные учетные данные для доступа к сервисам AWS (вы можете сами определять срок действия временных учетных данных).

Если вы сможете найти способ скопировать эти учетные данные на свое локальное устройство, вы сможете использовать их в течение всего срока их службы.

Комментарии:

1. спасибо за ответ. Пожалуйста, ознакомьтесь с обновленным вопросом

2. Ваше решение сработало бы, но вы бы хотели, чтобы оно было действительно заблокировано. 🙂