Как динамически изменить группу безопасности работающего экземпляра ECS на основе запущенного в нем контейнера? - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь развернуть различные типы док-контейнеров из моего кластера ECS.В зависимости от типа контейнера мне нужно разрешить доступ к определенному входящему и исходящему порту.Как изменить существующую группу безопасности экземпляра ECS, в которой развернут контейнер, и динамически добавить это дополнительное правило группы безопасности?Я ищу автоматизированное решение;Если контейнер перемещается в другой экземпляр, мне нужно восстановить исходную группу безопасности для экземпляра ECS.

  1. Я посмотрел в сетевом режиме awsvpc, чтобы динамически создать группу безопасности и назначитьэто для ENI, но тогда мне нужен публичный IP-адрес и определенный порт для каждого экземпляра ECS.Сеть на основе NAT путем развертывания экземпляра ECS в частной подсети, чтобы открыть его для общего доступа, не будет работать для моего случая использования.

  2. awsvpc может дать публичный IP-адрес для развертывания в fargate, но затем для моегослучай использования, который является контейнером с состоянием вместе с EFS-монтированием, fargate не сильно поможет.

1 Ответ

0 голосов
/ 08 июня 2018

Думаю, вы захотите вернуться в сетевой режим awsvpc.Похоже, это будет соответствовать вашим потребностям, как вы объяснили здесь.В режиме awsvpc для вашей задачи выделяется новый ENI, который отображается в сетевое пространство имен задачи.С точки зрения вашей задачи, это будет выглядеть так, будто вы работаете в режиме хоста;Ваш контейнер будет напрямую доступен для вашей сети.Вы будете использовать существующую группу безопасности, которая будет разрешать входящий трафик, предоставляемый портом для контейнеров вашей задачи.

В качестве альтернативы, если вам действительно нужно манипулировать группами безопасности на основе размещения задач, вам следует изучить использование лямбда-функции дляответить на события ECS CloudWatch с соответствующим действием.Это задокументировано на https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch_event_stream.html

...