Да, использование рабочих учетных данных в системе контроля версий представляет собой угрозу безопасности. Это позволяет вашим разработчикам делать практически все, что они хотят. Такие правила, как HIPAA в медицине, PCI для электронной коммерции или SoX для публичных компаний США, не осудят это. Ваш системный администратор тоже разумен.
Основная стратегия состоит в том, чтобы внедрить эту конфигурацию и запустить процесс развертывания в данных, специфичных для среды.
Наличие этой информации на самом рабочем сервере — нормальное, но не лучшее решение. Это хорошо, когда у вас есть только один целевой сервер. Как только у вас есть куча, есть головная боль обслуживания. Всякий раз, когда окр. конкретные изменения данных, они должны обновляться на каждом сервере. Вы также должны быть уверены, что у вас есть только env. конкретная информация там, или же изменения, которые разработчики вносят в ранние среды, могут не передаваться системному администратору для изменения во время развертывания, что приводит к ошибкам производственного развертывания.
Вот где, я думаю, Хадсон подводит вас с точки зрения непрерывной доставки. Некоторые коммерческие инструменты, включая uBuild/AnthillPro моей компании, официально отслеживают различных средах и позволит системному администратору безопасно настраивать учетные данные для производства, а разработчикам — для настройки учетных данных для разработчиков с помощью инструмента. Точно так же инструменты автоматизации выпуска приложений, такие как наш uDeploy, Hudson и их развертывание должны иметь такую конфигурацию для каждой среды.
В этих сценариях большинство файлов свойств/xml имеют общую конфигурацию, а механизм развертывания заменяет env. конкретные данные по мере развертывания.
Добавление нового инструмента только для решения этой проблемы, вероятно, является излишним, но базовая стратегия вынесения конкретной информации о среде в центральное место, где ее можно найти во время развертывания, может сработать. Поскольку вы являетесь магазином Maven, вы можете подумать о том, чтобы спрятать часть этого в своем репозитории Maven в области, заблокированной для доступа только для операций. Затем извлеките последнюю конфигурацию для соответствующей среды во время развертывания.
У вас есть ряд вариантов здесь. Подумайте, как вещи меняются в зависимости от окружающей среды; что зависит от сервера; что нужно защитить, что меняется со временем на стороне разработчиков и т. д. И, пожалуйста, пожалуйста, сядьте со своим системным администратором и вместе выработайте решение. У каждого из вас есть понимание, которого нет у другого, и конечное решение будет лучше для сотрудничества.
person
EricMinick
schedule
15.12.2011