我们已为Dev,QA,Prod实例启用了弹簧概要分析,并且这些实例正在AWS EC2上运行。
我们有不同的属性文件,例如:
application-dev.properties
application-qa.properties
application-prod.properties
我们已经在这些文件中配置了数据源,例如
spring.datasource.username = test
spring.datasource.password = test
这些凭据对于每个实例都是不同的,并且在各自的属性文件中进行了配置。
我已经通过链接:
https://www.baeldung.com/spring-cloud-vault
来使用Spring Boot实施Vault。但是,我不能像他们提到的bootstrap.yml文件那样完全理解它,但是我们只能在其中放置一个实例的凭据。
有人可以帮助我如何与Sprint一起实现Vault吗?在我们具有多个属性文件的位置进行性能分析。
以及如何使用Vault中的Java代码获取数据库凭据?
答案 0 :(得分:0)
我相信您的应用已与Spring Config服务器集成,以供参考check this。您所指的博客是关于动态凭据生成的,这是一个有点复杂的解决方案。因此,现在,请按照以下步骤操作,并在以后进行相应的修改。
如果启用了 spring config服务器,则位于bootstrap.yaml
的{{1}}( check this for diff in bootstrap file and application.properties )看起来像这样:< / p>
src/main/resources/bootstrap.yml
应用程序根据配置文件/环境从spring-config服务器读取配置。
spring:
cloud:
config:
uri: CONFIG-SERVER-URL
username: USERNAME
password: PASSWORD
vault:
uri: VAULT_URI
authentication: token
token: VAULT_TOKEN
application:
name: demo-application
以类似的方式,应用程序将根据配置文件读取Vault中配置的机密。
因此每个配置文件都应配置有各自的机密。因此,您在Vault中的demo-application-dev.yml
demo-application-tst.yml
demo-application-prod.yml
配置应如下所示:
dev
,对于spring.datasource.username=dev
spring.datasource.password=dev
之类的其他环境,请进行不同的配置:
demo/prod
注意:确保在spring.datasource.username=demo
spring.datasource.password=demo
中配置的应用名称 应与spring config服务器中的文件名相匹配,例如bootstrap.yaml
,并在保管箱中的保管箱秘密文件名demo-application-dev.yml
保险柜配置
在pom.xml文件中添加依赖项
secrets/secret/demo-application/dev