2016-02-22 2 views
2

Файл конфигурации (.yml) используется для отдыха api, разработанного с помощью Dropwizard (0.9.2 - последняя версия). Большинство учетных данных, необходимых для api, таких как секретный ключ пароля базы данных и т. Д., Хранятся в файле конфигурации.Безопасность файла конфигурации Dropwizard

Мы внедрили большую часть вещей, основанных на пунктах, упомянутых в ссылке, приведенной в dropwizard configuration reference.

Вопрос ясен. Насколько это безопасно (сохранение этих данных в файле конфигурации в виде обычного текста.)? Если нет, каков правильный способ сделать это?

+2

Первый подход заключается в использовании зашифрованных файлов конфигурации: посмотреть на [dropwizard модулей сторонних производителей] (http://modules.dropwizard.io/thirdparty/). Там вы должны найти [palantir/encrypted-config-value] (https://github.com/palantir/encrypted-config-value). Другой вариант - использовать замену переменных оболочки (например, при развертывании в Openshift): проверьте [этот отличный ответ] (http://stackoverflow.com/a/23898581/25429). – zloster

ответ

0

Да, это не безопасно. Хуже того, если файл конфигурации привязан к публичному репозиторию или, в этом отношении, к любому репозиторию (контроль версий). Одним из способов, которым я следую, является сохранение локальной копии (не привязанной к каким-либо репозиториям) файла config (.yml), который содержит все важные ключи & и т. Д. И поддерживает другой пример конфигурационного файла, который имеет секретные данные в масках (некоторые фиктивные строки вместо фактических значений). Этот пример конфигурации может быть привязан к вашему репозиторию, поскольку он имеет секретные данные в масках.

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

+1

Спасибо. Я поеду с вашим предложением. Полностью информативная локальная копия и поддельная копия для перехода в репозиторий. Я также переведу файл конфигурации из корня проекта в специальный каталог. – ingenihero

+0

@Sashidhar Есть более эффективные способы достижения желаемого уровня безопасности. Проверьте мой комментарий к вопросу. – zloster

+0

@zloster Большое спасибо за указатели. Я проверю их. –

0

Я просто искал решение по аналогичной проблеме. Я хочу найти решение, не включающее пароль хранилища ключей в файле конфигурации. Наконец, я получил решение.

Только что сохраненные учетные данные ключей в файле конфигурации. А затем воспользуйтесь замещающим, чтобы заменить ключи соответствующими значениями. Но для получения значений ключей нужны службы безопасного ключа.

Overriding server connector config with env variables with dropwizard

Смежные вопросы