Насколько безопасно использовать каталог / tmp в лямбда-выражении AWS? - PullRequest
1 голос
/ 07 мая 2020

Я искал реализацию aws_encryption_sdk в лямбде для работы с зашифрованными файлами, которые загружаются в корзину s3.

Мне удалось заставить его работать, загрузив файл в каталог /tmp (присваивая файлу уникальное имя), расшифровывая файл в том же каталоге и затем загружая расшифрованный файл обратно в s3. Я также удаляю файлы в системе после завершения операции, но перед выходом из лямбда

Хотя файловая система является обычным вариантом использования, у меня есть опасения по поводу использования каталога /tmp и его безопасность.

Кто-нибудь может посоветовать, стоит ли мне беспокоиться? Насколько эксклюзивна файловая система при запуске Lambdas?

Спасибо

1 Ответ

4 голосов
/ 07 мая 2020

В некоторой степени безопасно использовать /tmp в Lambda, что означает, что ваша папка /tmp не будет использоваться другими клиентами AWS. В то же время:

  1. Нет никаких доказательств того, что какое-либо дисковое пространство, выделенное для /tmp, действительно стерто. Поскольку AWS Lambda не предоставляет низкоуровневый блочный доступ к базовому диску, он достаточно безопасен, но не военного уровня. Память RAM - это очищено:

Лямбда очищает память перед назначением ее среде выполнения, что эффективно защищает от разделения памяти между функциями, принадлежащими одной учетной записи и разные учетные записи клиентов.

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

Имейте в виду, что /tmp не воссоздается / не удаляется при каждом вызове Lambda. Напротив, если ваша Lambda запускается несколько раз за короткий период времени, вызовы будут выполняться в одном контексте, и содержимое /tmp будет сохранено. Это особенность , , а не ошибка.

После выполнения лямбда-функции AWS Lambda некоторое время поддерживает контекст выполнения в ожидании другой лямбда-функции. вызов.

Каждый контекст выполнения предоставляет 512 МБ дополнительного дискового пространства в каталоге / tmp. Содержимое каталога остается, когда контекст выполнения замораживается, обеспечивая временный кеш, который можно использовать для нескольких вызовов. Вы можете добавить дополнительный код, чтобы проверить, есть ли в кеше данные, которые вы сохранили.

Если вам действительно важен аспект безопасности Lambda, я предлагаю вам прочитать Обзор безопасности AWS Lambda: подробный обзор безопасности Lambda white paper.

...