Nano Hash - криптовалюты, майнинг, программирование

Как импортировать файл .pem в функцию AWS Lambda

Я пытаюсь подключиться к STFP с помощью AWS Lambda, которому нужен файл с закрытым ключом. Я могу подключиться локально, и теперь мне нужно развернуть его в функции Lambda. Но pysftp.connection для подключения требуется filepath, а не keystring.

Могу ли я упаковать частный файл в свой пакет Lambda с помощью файла YAML?

import pysftp

ftp = pysftp.Connection(host = hostname , username=user, port=22, private_key='...pem')

Могу ли я сохранить файл pem в AWS SSM и получить доступ к нему при подключении к STFP?


Ответы:


1

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

Вот документ с примером того, как использовать секреты SSM с Lambda, я успешно использовал это раньше.

https://aws.amazon.com/blogs/compute/sharing-secrets-with-aws-lambda-using-aws-systems-manager-parameter-store/

13.04.2019
  • Не могу согласиться с общей нехорошей практикой безопасности в отношении S3. Лошади для курсов: правильно заблокированы, S3 в порядке. Тем не менее, SSM или, по крайней мере, SecureString в хранилище параметров, вероятно, лучший способ, я согласен с этим. 14.04.2019
  • Я считаю, что вы по-прежнему храните незашифрованные пароли в состоянии покоя, что нехорошо. Также вероятно, что доступ к вашей учетной записи AWS будет иметь более одного человека, и со всеми ошибками S3, которые люди допускают и непреднамеренно открывают корзины - это не лучшее место для хранения паролей. Однако «плохая практика безопасности» - это, возможно, слишком сильная фраза. 14.04.2019
  • Я понимаю - однако я исхожу из того, что у вас никогда не будет ведра S3 без подхода KMS. Всегда. 14.04.2019
  • Мне нужно указать путь к файлу в параметрах подключения, и я не могу использовать ssm, поскольку он хранит строковые значения. Есть ли способ загрузить файл в ssm и указать его путь? 15.04.2019

  • 2

    Да, вы можете упаковать файл .pem как часть развертывания кода функции AWS Lambda. Это сделает его доступным в локальной файловой системе.

    См .: AWS Lambda Пакет развертывания на Python - AWS Lambda

    В качестве альтернативы вы можете сохранить файл .pem в Amazon S3, а функция AWS Lambda загрузит его в каталог /tmp перед использованием.

    13.04.2019
  • Есть ли какой-нибудь пример, который я могу сослаться на использование дополнительного файла в zip-файле и доступ в лямбда-выражении? 15.04.2019
  • Вы можете упаковать его в zip-файл (см. Ссылку выше), но также похоже, что вы можете создать дополнительный файл в консоли Lambda, в редакторе, в котором вы пишете код Lambda. Просто создайте Новый файл и сохраните его с именем. Файл .pem - это просто текст, поэтому вы можете вставить его содержимое. 15.04.2019
  • Спасибо вам всем. Мне удалось подключиться к sftp из лямбда, сохранив ключевые данные в параметрах ssm, и создал файл tmp во время выполнения лямбда для закрытого ключа и удалил его после завершения. 17.04.2019
  • @JohnRotenstein Я упаковал и развернул файл .pem, но при попытке ssh из экземпляра lambda в ec2 (с paramiko) я получаю ошибку разрешения Errno 13 в файле. Как мне это исправить? 17.04.2019
  • @Anil Вам нужно отладить его, чтобы понять это. Вы можете начать с запуска кода на локальном компьютере, чтобы попытаться воспроизвести ошибку. Это может быть связано с именем пользователя или файлом PEM. Не стесняйтесь задавать другой вопрос, если у вас возникнут трудности. 18.04.2019
  • @JohnRotenstein Вы имеете в виду Брук? Поскольку я уже исправил свой код на основе вашей идеи. Спасибо 18.04.2019
  • Ой! Да, мой комментарий был для Брук. 18.04.2019

  • 3

    Если вам нужны инструкции по созданию пакета развертывания, вы можете посмотреть видео ниже. Вместо использования pip для установки пакета вы можете просто заменить копию файла .pem в папку lambda_function. Затем выполните остальные шаги.

    https://geektopia.tech/post.php?blogpost=Create_Lambda_Package_Python

    21.04.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..