Управление паролями при непрерывном развертывании - PullRequest
12 голосов
/ 27 февраля 2012

Мы активно внедряем среду непрерывной интеграции с использованием TeamCity. По мере прохождения процесса CI и перехода к непрерывному развертыванию мы столкнулись с проблемой управления производственными паролями. Для других изменений в конфигурации мы используем преобразование Web.Config. Однако я не хочу запоминать рабочий пароль в профиле сборки.

До CI / CD мы использовали Web.config, использовали aspnet_regiis для дешифрования строк подключения, изменения пароля и повторного шифрования. Очевидно, что это подвержено ошибкам и совсем не в духе CI / CD.

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

Спасибо!

Ответы [ 3 ]

14 голосов
/ 28 февраля 2012

Одним из возможных решений, доступных с TeamCity 7.0, является использование напечатанных параметров .Вы можете определить в TeamCity параметр типа password и передать его как-нибудь в свой скрипт сборки (либо как переменную среды, либо как свойство скрипта сборки).

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

2 голосов
/ 27 февраля 2012

Использовать преобразования конфигурации.Вы даже можете создать свое собственное преобразование, которое может обрабатывать шифрование / дешифрование.Самый простой способ - зашифровать производственные строки в файле release.web.config и использовать преобразование для обработки замены строк подключения.

http://msdn.microsoft.com/en-us/library/dd465318.aspx

http://sedodream.com/2010/09/09/ExtendingXMLWebconfigConfigTransformation.aspx

Если это не работает для вас, используйте событие postbuild для вызова aspnet_regiis.Если вы решили расширить преобразование конфигурации, вы можете сделать НИЧЕГО с ним.Ключи шифрования могут быть на Луне до тех пор, пока к ним можно добраться.

0 голосов
/ 27 февраля 2012

Не можете ли вы определить строки подключения в iis. Они много меняются? Я думаю, что я просто установил бы их в IIS для сайта, а не развернул их как часть приложения или, по крайней мере, предпочел бы мои настройки IIS.

...