Как подключить EC2 с помощью pysftp через AWS Lambda без файла .pem или альтернативы файлу .pem - PullRequest
5 голосов
/ 28 апреля 2020

Я хочу подключить EC2 с помощью библиотеки pysftp через AWS Lambda. Я использую приведенный ниже код для подключения.

mysftp = pysftp.Connection(
    host=Constants.MY_HOST_NAME,
    username=Constants.MY_EC2_INSTANCE_USERNAME,
    private_key="./clientiot.pem",
    cnopts=cnopts,
)

Я положил .pem файл вместе с пакетом развертывания в AWS Lambda. Пожалуйста, смотрите изображение ниже: -

pem file with deployment package

Иногда это иногда работает не так, как иногда говорит, что .pem файл не найден.

"[Errno 2] No such file or directory: './clientiot.pem'"

Как с этим бороться. Есть ли способ безопасного доступа к файлу .pem или данным файла .pem.

Я не хочу .pem в AWS лямбда.

Ответы [ 2 ]

2 голосов
/ 28 апреля 2020

Если вы используете Paramiko напрямую (pysftp - это просто оболочка для Paramiko), вы можете жестко закодировать ключ в своем коде, и у вас не будет проблем с внешними ресурсами:
SSH / SCP через Парамико с ключом в строке

2 голосов
/ 28 апреля 2020

PEM-ключи являются конфиденциальным ресурсом, поэтому в этом случае я бы предложил поместить их в AWS Secrets Manager, а затем предоставить Lambda разрешения для получения этого секрета.

Вот официальный учебник о том, как создать секрет.

...