0

我们为 Dev、QA、Prod 实例启用了 spring 分析,这些实例在 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 文件那样完全理解它,但我们可以在那里只放置一个实例的凭据。

任何人都可以帮我解决如何在我们有多个属性文件的地方实现 Vault 和 Sprint Profiling。
以及如何使用 Vault 中的 Java 代码获取数据库凭据?

4

1 回答 1

0

我相信您的应用程序已与 Spring Config 服务器集成,供参考检查您所指的博客正在讨论动态凭据生成,这是一个有点复杂的解决方案。因此,现在,您按照下面提到的过程并在以后进行相应的修改。

如果启用了 spring 配置服务器bootstrap.yaml检查引导文件和 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

应用程序根据 profile/environment 从 spring-config 服务器读取配置时

demo-application-dev.yml
demo-application-tst.yml
demo-application-prod.yml

以类似的方式,应用程序将根据配置文件读取 Vault 中配置的机密

在此处输入图像描述

所以每个配置文件都应该配置有各自的秘密。因此,您dev在 Vault 中的配置应如下所示:

spring.datasource.username=dev
spring.datasource.password=dev

对于其他环境,例如demo/prod,配置不同:

spring.datasource.username=demo
spring.datasource.password=demo

在此处输入图像描述

注意:确保配置的应用程序名称bootstrap.yaml 应与 spring config server 中的文件名匹配,例如demo-application-dev.yml,以及 Vault 中的 Vault 机密文件名,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>
于 2019-10-31T14:55:00.090 回答