У меня есть приложение Spring Boot. Я передаю ему такие переменные:
...
datasource:
url: jdbc:postgresql://${DB_SERVER_AND_PORT}/my_db
username: ${DB_USER}
password: ${DB_USER_PASSWORD}
Эти переменные env можно легко прочитать, поскольку они представлены в виде обычного текста. Я хочу повысить безопасность с помощью симметричного шифрования.
Я ищу что-то, что можно использовать в своем файле yaml.
# example how I want to use it:
...
datasource:
url: jdbc:postgresql://#{decrypt(${DB_SERVER_AND_PORT}}/my_db
Единственное требование для шифрования — простота его выполнения из оболочки (конвейер gitlab).
Если это возможно, то как сделать этот пружинный сапог или пружину?




Ознакомьтесь с jasypt, который обеспечивает поддержку шифрования для источников свойств в приложениях Spring Boot:
https://github.com/ulisesbocchio/jasypt-spring-boot
Итак, вы используете переменную среды jasypt.encryptor.password вместо переменной среды DB_USER_PASSWORD. Если переменная среды небезопасна, почему это лучший подход?
Почему? Переменная среды не сохраняется. Однако как вы хотите его расшифровать? Для симметричной расшифровки нужен еще один секрет. Как вы хотите сохранить этот еще один секрет?