簡體   English   中英

如何使用 Spring 引導實現 Hashicorp 的 Vault

[英]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.ymlbootstrap.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM