Защита учетных данных базы данных в автоматическом развертывании узлов
В ситуации, когда вы развертываете узлы (например, amazon ec2), каковы рекомендуемые рекомендации для защиты таких вещей, как учетные данные, от других ресурсов? Не решая проблему масштабирования, мы могли бы вручную вводить пароли в файлы конфигурации, устанавливать ключи ssh и т. Д.
Когда мы пытаемся решить проблему масштабирования, внедряя автоматизацию с помощью сценариев сборки и / или инструментов для ускорения новых узлов ec2 и т. Д., Мы сталкиваемся со всеми видами головных болей (правда, некоторые из них, возможно, не нужны).
Вот наши приоритеты
- автоматическое развертывание новых узлов (которым нужны ssh-ключи)
- автоматическое развертывание кода приложения (который использует такие вещи, как учетные данные базы данных)
- не хранить учетные данные в контроле версий (я не доверяю безопасности контроля версий)
- как можно меньше людей имеют доступ к рабочим учетным данным, даже разработчикам (у них есть свои учетные данные для доступа к ресурсам)
Я специально упоминаю учетные данные базы данных, но учетные данные для всего, от контроля версий до ключей ssh, актуальны.
Мы придумали несколько решений, каждое из которых имеет свои плюсы и минусы, но полагаю, что эту проблему уже должны были решить несколько человек. Мы переосмысливаем проблему?
Если это актуально, вот некоторая информация о нашей среде и инструментах
- линукс
- Capistrano
- марионетка
- Ява, Рубин, PHP
- бамбук атлассиана
- SSH ключи
- mysql, postgres, activemq
2 ответа
Если вы ищете безопасный способ хранения этих данных (в зашифрованном виде?) Без вмешательства пользователя: их нет!
Вы можете использовать стандартизированный образ EC2 для развертывания каждого узла. Затем вы можете войти в bash и изменить все пароли, а затем сохранить их где-нибудь.