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