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

Каковы ваши рекомендации по хранению паролей для управления конфигурацией?

Я видел много рекомендаций по версии системы управления конфигурациями. Как вы посоветуете работать с паролями, необходимыми для безопасности приложений? Версионировать их тоже?

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

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

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

Лучшее решение - использовать программное обеспечение, которое шифрует пароли, по возможности сохраняя их в автономной системе. Для этого существует множество программного обеспечения (и некоторые из них могут активно менять пароли за вас по мере необходимости и вести учет исторических паролей). Hitachi ID Systems делает для этого продукт корпоративного уровня (раскрытие: я работал на них); На ум также приходят keepass и lastpass.

Если вам просто нужно безопасное место для хранения паролей и их извлечения изредка, попробуйте такой продукт, как Секретный сервер.

Если вы хотите связать пароли с артефактами развертывания как часть автоматизации, то найдите инструмент (например, Secret Server) с API, который позволит вам запрашивать пароли по мере необходимости и держать их подальше (потенциально) менее безопасно. репозитории контроля версий.

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

http://docs.opscode.com/essentials_data_bags_encrypt.html

OTOH: для вещей, которые различаются в зависимости от среды, лучше передать их автоматизированным скриптам через системную среду.

http://www.12factor.net/config

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

http://www.gotitworks-studios.com/docs/go/current/help/deploy_a_specific_build_to_an_environment.html#secure_variables_section