Как с sh в EC2 экземпляр из лямбда-функции - PullRequest
1 голос
/ 14 марта 2020

Я пытаюсь написать свой первый Python код в функции Lambda, которая проверит, могу ли я S SH (порт 22) подключиться к экземпляру EC2.

Я создал затем экземпляр EC2 с группой безопасности 22 CidrIP my publi c IP затем создал функцию Lambda с python 3.8 в качестве среды выполнения в той же учетной записи

Теперь через код i я пытаюсь S SH в EC2, передав EC2 Public IP, Username, Key pair

и выполнить одну команду, например: sudo su

Вопрос:

  1. Где следует я помещаю свою пару ключей?
  2. Какой код для S SH в EC2 из функции лямбда?

1 Ответ

4 голосов
/ 14 марта 2020

Первое, что я бы сказал, это то, что вы почти никогда не должны проходить S SH из лямбды в EC2. Существуют гораздо лучшие способы удаленного запуска сценариев в EC2, в том числе:

  1. SSM Run Manager
  2. Предоставление API для экземпляра EC2 и вызов этого API

Если вы действительно хотите это сделать, возможно, по какой-то академической причине c, то:

  1. сохраните пару ключей в Secrets Manager и дайте Lambda разрешение на ее чтение
  2. используйте пакет Python, такой как Fabri c или Paramiko

[Обновление: похоже, вы пытаетесь проверить, что доступ S SH заблокирован]

Лучший способ проверить группы безопасности - это использовать API-интерфейс EC2, описать экземпляр (ы), перечислить группы безопасности и их входящие правила. Если вы не доверяете этому подходу, то можете попробовать S SH к экземпляру, используя метод, который я предложил выше (хотя вам, вероятно, нужно только попытаться подключиться, чтобы тест был полезен).

Проблема, с которой вы столкнетесь, заключается в том, что группы безопасности потенциально могли быть настроены на блокировку всего доступа S SH (кстати, по умолчанию), за исключением одного IP-адреса «атакующего», который позволено. Ваша попытка подключения к Lambda S SH не удастся, поскольку она не поступает с одного IP-адреса «злоумышленника», но ваш лямбда-тест выдаст сообщение «Я не могу получить доступ к веб-серверу через S SH, тест прошел успешно». Это неверный тест.

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