Назад | Перейти на главную страницу

Создание безопасных, отказоустойчивых серверов Rails и mysql на EC2

Мне интересно, какие методы следует использовать для создания безопасных и отказоустойчивых серверов Rails и mysql на EC2. Точнее говоря, когда я говорю «безопасный и устойчивый», я пытаюсь сбалансировать тот факт, что мне нужно защитить данные (как данные MySQL, так и журналы Rails) в защищенном хранилище EBS на уровне блоков с помощью dm-crypt. В целях обеспечения безопасности я не хочу хранить парольные фразы в открытом виде. Проблема, конечно же, в том, что при перезапуске сервера зашифрованная файловая система не может автоматически монтироваться, а это означает, что я также не могу автоматически запускать mysqld / nginx / пассажира / и т. Д.

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

Единственный ли вариант - создать запускаемый вручную сценарий оболочки для монтирования зашифрованного тома EBS и затем запустить соответствующие серверные процессы? Или есть какой-нибудь более сложный инструмент управления ключами, который может автоматизировать этот процесс безопасным способом?

Что люди сделали в своей производственной серверной среде для подобной ситуации?

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

Если бы у вас была настоящая аппаратная платформа, вы могли бы использовать аппаратный модуль безопасного хранилища ключей для хранения ключей шифрования, но в этом случае вы наверное ограничивается ручными методами. Я могу представить себе какую-то конструкцию Руба Голдберга, включающую загрузочные экземпляры, устанавливающие соединение с удаленной системой, которая действительно держала ключи, фактически говоря: «Я готов начать, пожалуйста, смонтируйте мои тома», но хрупкость и общее уродство раствор вызывает мурашки по коже.