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

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

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

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

Шаг 2: войдите в реестр эластичных контейнеров, используя следующую команду.

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. Из Edge Device я вызову лямбда-функцию и получу пароль для извлечения изображения.

Это будет работать?


person Mohamed Thasin ah    schedule 20.08.2020    source источник


Ответы (1)


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

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

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

person Chris Williams    schedule 20.08.2020
comment
Спасибо за ответ. Пожалуйста, взгляните на обновленный вопрос - person Mohamed Thasin ah; 20.08.2020
comment
Ваше решение будет работать, но вы бы хотели, чтобы оно было действительно заблокировано. :) - person Chris Williams; 20.08.2020