Как защитить имя пользователя и пароль DataSource в Spring Boot? - PullRequest
0 голосов
/ 20 февраля 2020

Я разработал некоторый проект Spring Boot и инициировал соединение с базой данных, используя spring.datasource.username и spring.datasource.password в application.properties

Я пытался использовать jasypt для шифрования этих свойств но я думаю, что это не очень хороший способ, потому что мне все еще нужно хранить jasypt.encryptor.password, который не зашифрован в application.properties.

У меня проблемы с поиском решений, потому что результаты Inte rnet просто упомяните jasypt.

Есть ли лучший способ защитить имя пользователя и пропустить Spring Boot?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Дополнительным решением было бы использовать что-то вроде Ansible Vault для хранения конфиденциальных данных в вашем хранилище, а затем устанавливать эти секреты в качестве переменных среды во время развертывания. Ваши файлы свойств ищут переменные среды для установки в качестве значений. Вам потребуется сохранить пароль в файле хранилища, но Ansible В хранилище есть способы использовать локальный файл (не отслеженный в источнике!) Для хранения пароля хранилища.

Многое из этого взято из 12 Factor App идеи, в которых вы используете переменные среды в качестве средства для изменения конфигурации.

Надеюсь, это поможет!

0 голосов
/ 20 февраля 2020

Определенно, вы не должны хранить эти конфиденциальные данные в файле свойств .

Эти данные должны храниться в хранилище.

Некоторые поставщики хранилищ:

  • Hashicorp Хранилище: https://www.vaultproject.io/
  • AWS Менеджер секретов // для облака
  • Keywhiz
  • Confidant et c

Затем следует использовать систему безопасности на основе токенов сервера Spring Configuration для получения конфиденциальных данных из чувствительных хранилищ, таких как хранилище.

См. Это для примера интеграции такой вариант использования с сервером конфигурации весны. здесь.

...