[英]How to implement Hashicorp's Vault with Spring Boot
我們為 Dev、QA、Prod 實例啟用了 spring 分析,這些實例在 AWS EC2 上運行。
我們有不同的屬性文件,例如:
應用程序-dev.properties
應用程序-qa.properties
應用程序-prod.properties
我們已經在這些文件中配置了我們的數據源,比如
spring.datasource.username=test
spring.datasource.password=test
這些憑據對於每個實例都是不同的,並在各自的屬性文件中進行配置。
我已經瀏覽了鏈接:
https://www.baeldung.com/spring-cloud-vault
使用 Spring 引導實現 Vault。 但是,我並沒有像他們提到的 bootstrap.yml 文件那樣完全理解它,但我們可以在那里只放置一個實例的憑據。
任何人都可以幫我解決如何在我們有多個屬性文件的地方實現 Vault 和 Sprint Profiling。
以及如何使用 Vault 中的 Java 代碼獲取數據庫憑據?
我相信您的應用程序已與 Spring 配置服務器集成,供參考檢查。 您所指的博客正在討論動態憑據生成,這是一個有點復雜的解決方案。 因此,現在,您按照下面提到的過程並在以后進行相應的修改。
如果spring 配置服務器已啟用,則位於src/main/resources/bootstrap.yml
的bootstrap.yaml
( 檢查引導文件和 application.properties 中的差異)如下所示:
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 中配置的機密。
所以每個配置文件都應該配置有各自的秘密。 因此,您在 Vault 中的dev
配置應如下所示:
spring.datasource.username=dev
spring.datasource.password=dev
對於demo/prod
等其他環境,請進行不同的配置:
spring.datasource.username=demo
spring.datasource.password=demo
注意:確保在bootstrap.yaml
中配置的應用程序名稱應與 spring 配置服務器中的文件名匹配,例如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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.