Управление безопасной конфигурацией вне контроля версий с помощью Google App Engine JDK - PullRequest
3 голосов
/ 18 января 2012

Мое приложение Google App Engine содержит привилегированные учетные данные (например, ключи OAuth и cookie для подписи), которые я не хочу регистрировать в системе контроля версий (например, Git).

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

Ответы [ 3 ]

1 голос
/ 18 января 2012

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

0 голосов
/ 15 января 2016

Для Java я рекомендую стратегию внешней конфигурации spring-boot . Идея состоит в том, что стек источников конфигурации с верхними переопределяет нижеследующие.

  1. Аргументы командной строки
  2. Свойства системы
  3. Переменные среды
  4. Локальные файлы конфигурации (application.yml или application.properties)
  5. Файлы конфигурации на пути к классам

Нет. 4 обычно находится в скрытой папке в домашнем каталоге пользователя, например, ~/.myapp/application.yml. Только пользователь может прочитать этот файл.

По вашему вопросу несекретные свойства с управлением версиями помещаются непосредственно в исходный код (№ 5 выше) Секреты также могут быть введены в 5, но с фиктивными значениями. Реальные секреты перезаписывают фиктивные значения во время выполнения от 1, 2, 3 или 4.

Вы можете использовать spring-boot или написать свой собственный код, следуя той же стратегии.

0 голосов
/ 18 января 2012

Поместите эти вещи в другой файл / каталог и исключите их с помощью .gitignore.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...