Здесь есть много опций в зависимости от ваших реальных требований безопасности.Вы упомянули Java и Spring Boot, поэтому я в основном укажу решения, связанные с этим технологическим стеком.
Поскольку вы уже используете Spring Boot, рассмотрите сервер spring-cloud-config.
Он имеет некоторые интересные функции «шифрования»:
Шаг 1
Создание ключа (открытая / закрытая пара или общий в зависимости от ваших требований) Укажите его при запускесервер конфигурации (через переменную - или env):
encrypt.key=ABC123ABC123ABC123
Шаг 2
Кодировать значение пароля, вызвав запрос на отдых этого сервера (вы делаетеэто один раз)
curl localhost:8888/encrypt -d mysecretdbpassword
>>AZXCASDAZXC341234ZXCASDFedr453
Шаг 3
В application.properties укажите, что значение «зашифровано» со специальным синтаксисом. Файл будет сохранен в конфигурации.сервер а не на микросервисе.Свойство будет выглядеть так:
db.password={cipher}AZXCASDAZXC341234ZXCASDFedr453
Свойство будет храниться в зашифрованном виде в файлах, но расшифровываться в памяти.Таким образом, микросервис получит расшифрованное значение.
Документация доступна здесь .На сегодняшний день это самый быстрый способ реализации требований.Вы можете хранить его в выделенном микросервисе или встраивать в уже существующее приложение.
Кроме того, оно позволяет интегрировать его с JKS, что позволяет хранить там пароли.
Дополнительно/ Альтернативы
Конфигурация Spring Cloud также интегрирована с Hashicorp Vault , что само по себе может быть хорошим решением для вашей ситуации (даже без конфигурации Spring boot cloud).
Еще одно возможное решение, которое приходит из Spring Universe, называется Spring Vault . Оно предназначено для работы с секретами.