Учетные данные базы данных в переменных среды? - PullRequest
0 голосов
/ 15 ноября 2018

Многие разработчики здесь, в Stackoverflow и на других сайтах, рекомендуют хранить пароль базы данных в переменной окружения.Мы используем Spring Boot, и мы хотели бы знать, действительно ли это хороший (безопасный и распространенный) способ избежать паролей в виде простого текста в файле application.properties даже в рабочей среде?Если нет, то какое решение лучше?

Имейте ввиду, что нам нужны разные .properties-файлы для DEV и PROD.

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Это все в зависимости от того, как вы развертываете свои приложения.Spring Boot использует особый порядок настройки свойств.См .: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

Существуют различные способы не подвергать ваш пароль значительному воздействию, но он всегда будет виден кому-то с достаточным доступом и если он знает, где искать.

Например.Если вы запускаете приложение i docker, вы можете установить все пароли в качестве переменных среды.

Но другой пример - установить их как свойства при запуске приложения.

$ java -jar myproject.jar --property=value

выберите то, что соответствует вашим потребностям лучше всего.

0 голосов
/ 15 ноября 2018

Вы можете использовать HashiCorp Vault с Spring Boot: https://projects.spring.io/spring-vault/ или, если вы используете облако: https://cloud.spring.io/spring-cloud-vault/

0 голосов
/ 15 ноября 2018

Я рекомендую вам взглянуть на Spring Cloud Config :

Spring Cloud Config обеспечивает поддержку на стороне сервера и на стороне для внешней конфигурации в распределенной системе.С сервером Config у вас есть центральное место для управления внешними свойствами для приложений во всех средах.

Особенности:

Возможности Spring Cloud Config Server:

  • HTTP, API на основе ресурсов для внешней конфигурации (пары имя-значение или эквивалентное содержимое YAML)
  • Шифрование и дешифрование значений свойств (симметричное или асимметричное)
  • Легко встраивается в приложение Spring Boot с использованием @EnableConfigServer

Функции клиента конфигурации (для приложений Spring):

  • Привязка к конфигурацииСервер и инициализация Spring Environment с удаленными источниками свойств
  • Шифрование и дешифрование значений свойств (симметричных или асимметричных)

Вы можете найти рабочий пример сервера конфигурации здесь

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