Требования к ACL сети AWS ECS

В настоящее время у меня есть настройка в AWS примерно со следующим:

введите описание изображения здесь

Источник изображения из сетевых задач в aws fargate.

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

Однако я хочу усилить безопасность AWS, добавив в белый список только определенные порты. С точки зрения групп безопасности, я обновил их по мере необходимости, и все по-прежнему работает, как ожидалось. Однако для сетевого ACL у меня возникают некоторые проблемы с задачей Fargate. В разделе ACL в общедоступной подсети для правил для входящего трафика я хочу разрешить доступ только к HTTPS и HTTP из Интернета (0.0.0.0/0). Это приводит к этой проблеме с моей дальней задачей: ResourceInitializationError: unable to pull secrets or registry auth: pull command failed: : signal: killed. Следует отметить, что правила исходящего трафика для обеих подсетей (частной и общедоступной) разрешают трафик куда угодно (0.0.0.0/0).

Я понимаю, что задача Fargate должна подключиться к Интернету, чтобы вытащить образ докера в ECR, и NAT помогает в этом. docker pull или docker push использует HTTPS, и в частной подсети разрешен весь трафик из всех источников, и то же самое для исходящего.

NACL для общедоступных подсетей  введите описание изображения здесь

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

P.S: Последнее средство - использовать AWS PrivateLink для доступа к репозиторию ECR, но я пока не хочу этого делать.


person atish.s    schedule 14.04.2021    source источник
comment
Можете ли вы предоставить / снимок экрана, какие именно у вас NACL? Также я понимаю, что все работает, как ожидалось, если вы используете NACL по умолчанию?   -  person Marcin    schedule 14.04.2021
comment
Сообщение обновлено с применением NACL для общедоступных подсетей. Да, с NACL по умолчанию все работает нормально   -  person atish.s    schedule 14.04.2021


Ответы (1)


Вы разрешаете только порты 80 и 443 в ваших NACL. Этого недостаточно, так как вам также необходимо разрешить временные порты.

Это связано с тем, что запрос к ECR вернется в ваш контейнер с использованием эфемерных портов, а не 80 и 443. Эти два порта используются только для вашего контейнера для подключения к ECR, а не для обратного трафика от ECR к ваш контейнер.

person Marcin    schedule 14.04.2021
comment
Большое спасибо, чувак, он работает должным образом после внесения в белый список эфемерных портов. - person atish.s; 14.04.2021
comment
@ atish.s Нет проблем. Рад, что все получилось. - person Marcin; 15.04.2021