AWS: использовать создание экземпляра EC2 для запуска лямбды - PullRequest
0 голосов
/ 03 декабря 2018

Я компилирую довольно сложный шаблон CloudFormation и в какой-то момент я создаю экземпляр ec2;

Я хочу создать lambda функцию, которая:

  • принимает в качестве входного параметра открытый IP-адрес экземпляра, созданного в этом стеке CF
  • , открывает порт группы безопасности для этого конкретного IP-адреса (группа безопасности не является частью определенного шаблона CF и егопринадлежит к другому региону ).

Возможно ли это?

Ι спрашиваю, потому что (среди прочего) ec2 не указан в качестве потенциальной лямбдытриггер в консоли и хотел посмотреть, есть ли более простой способ обойти это, чем размещение подробностей о создании в sns или sqs, который затем, в свою очередь, запускает лямбду.

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

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

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

  • Создать группу безопасности для запускаемого экземпляра EC2.Давайте назовем это Instance-SG
  • Создайте группу безопасности для ресурса, к которому вы хотите иметь доступ к EC2 (например, балансировщик нагрузки, база данных или другой экземпляр EC2).Давайте назовем это Resource-SG
  • Добавить запись в Resource-SG, которая разрешает входящий доступ с Instance-SG

Вот и все!Теперь любому экземпляру EC2, связанному с Instance-SG, будет предоставлен входящий доступ в Resource-SG.Нет необходимости указывать конкретные IP-адреса в группе безопасности.

0 голосов
/ 04 декабря 2018

Самым простым может быть добавление экземпляра EC2 в группу безопасности.

Просто укажите это в пользовательских данных для экземпляра EC2 и убедитесь, что ему назначена роль IAM с достаточными разрешениями:

IP=`curl -s http://169.254.169.254/latest/meta-data/public-ipv4/`

aws ec2 authorize-security-group-ingress --group-name "Resource-SG" --protocol tcp --port 80  --cidr $IP/32 --region OTHER-REGION
0 голосов
/ 03 декабря 2018

Есть два варианта, о которых я могу подумать:

  1. Как сказал пользователь @ krishna_mee2004, вы можете использовать CloudWatch для прослушивания вашего экземпляра EC2, и это, в свою очередь, вызовет вашу лямбду.

  2. В вашем экземпляре EC2 есть поле с именем User data в разделе Сведения об экземпляре.В User data вы можете добавлять команды, которые должны запускаться при каждом развертывании вашего экземпляра EC2.Отсюда вы можете вызвать свою лямбду.

Здесь - документация по пользовательским данным EC2. Здесь - документация по вызову лямбды из CLI.

Лично я бы порекомендовал вариант 1, потому что я предпочитаю использовать инструменты AWS всякий раз, когда у меня появляется такая возможность, и CloudWatch - прекрасный пример этого.,Однако вариант 2 может дать вам больший контроль над тем, какая полезная нагрузка отправляется на лямбду.

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