日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

使用Vault保護SpringBoot配置文件中的敏感數據,你學會了嗎?

來源: 責編: 時間:2024-03-18 09:42:40 177觀看
導讀環境:SpringBoot2.7.16 + Vault1.15.5(Vault服務版本)1. 簡介SpringBoot作為流行的Java微服務框架,其配置文件可能包含數據庫密碼、API密鑰等敏感數據。為了保障這些信息的安全,Vault作為一個開源的秘密管理工具,成為了眾

環境:SpringBoot2.7.16 + Vault1.15.5(Vault服務版本)Ai728資訊網——每日最新資訊28at.com

1. 簡介

SpringBoot作為流行的Java微服務框架,其配置文件可能包含數據庫密碼、API密鑰等敏感數據。為了保障這些信息的安全,Vault作為一個開源的秘密管理工具,成為了眾多開發者的選擇。本文將深入探討如何整合SpringBoot與Vault,實現對配置文件中敏感信息的有效保護,從而確保微服務應用的安全性。Ai728資訊網——每日最新資訊28at.com

Spring Vault 為訪問、存儲和撤銷秘密提供客戶端支持。有了 HashiCorp 的 Vault,你就有了一個集中的地方來管理所有環境中應用程序的外部秘密數據。Vault 可以管理應用程序數據、遠程應用程序/資源的用戶名/密碼等靜態和動態秘密,并為 MySQL、PostgreSQL、Apache Cassandra、Consul、AWS 等外部服務提供憑證。Ai728資訊網——每日最新資訊28at.com

2. Vault服務安裝及配置

本文將通過Docker安裝Vault服務。執行如下命令即可Ai728資訊網——每日最新資訊28at.com

docker run -d --name vault --cap-add=IPC_LOCK /  -e 'VAULT_LOCAL_CONFIG={"storage": {"file": {"path": "/vault/file"}}, "listener": [{"tcp": { "address": "0.0.0.0:8200", "tls_disable": true}}], "default_lease_ttl": "168h", "max_lease_ttl": "720h", "ui": true}' /  -p 8200:8200 hashicorp/vault server

Ai728資訊網——每日最新資訊28at.com

上面以服務的模式運行vault。Ai728資訊網——每日最新資訊28at.com

--cap-add=IPC_LOCK:這是 Vault 鎖定內存所必需的,這會阻止內存被交換到磁盤。強烈推薦這個。在非開發環境中,如果不想使用該功能,則必須添加"disable_mlock: true"配置信息。Ai728資訊網——每日最新資訊28at.com

這將運行一個禁用 TLS 的 Vault 服務器,file存儲后端位于路徑/vault/file,默認秘密租約期限為一周,最長為 30 天。file不建議在生產使用中禁用 TLS 和使用存儲后端。Ai728資訊網——每日最新資訊28at.com

3. Vault基本操作

通過http://localhost:8200/ui/ 訪問Vault管理頁面Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

Ai728資訊網——每日最新資訊28at.com

這里輸入你初次進入頁面時會給你生成一份token文件,文件中包含了token信息。如下:Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

進入管理頁面后點擊Secrets Engines菜單,在該菜單中進行信息的配置Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

Ai728資訊網——每日最新資訊28at.com

創建新的密鑰管理Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

Ai728資訊網——每日最新資訊28at.com

選擇KVAi728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

Ai728資訊網——每日最新資訊28at.com

輸入路徑Path,這個路徑就是以后你要訪問的路徑,然后點擊Enable Engine。Ai728資訊網——每日最新資訊28at.com

最后添加你需要的配置信息Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

以上就是基本的配置。Ai728資訊網——每日最新資訊28at.com

在上面的加密引擎選擇中有個,Transit這個類型可以同來對數據進行加解密也是非常的實用。Ai728資訊網——每日最新資訊28at.com

4. Vault加解密數據

接下來我們通過Transit進行數據的加解密。Ai728資訊網——每日最新資訊28at.com

private VaultEndpoint vaultEndpoint ;private VaultTemplate vaultTemplate  ;@BeforeEachpublic void init() {  vaultEndpoint = new VaultEndpoint() ;  vaultEndpoint.setHost("localhost") ;  vaultEndpoint.setPort(8200) ;  vaultEndpoint.setScheme("http") ;    vaultTemplate = new VaultTemplate(vaultEndpoint, new TokenAuthentication("hvs.xxxxxxxxxxooooooooo"));}

Ai728資訊網——每日最新資訊28at.com

加密數據Ai728資訊網——每日最新資訊28at.com

@Testpublic void testEncrypt() {  String ret = vaultTemplate.opsForTransit().encrypt("db.password", "123123") ;  System.out.println(ret) ;}// 輸出vault:v1:1WxwJjUJnN78FnqsTzxo+9wnGyHln3yCdG+lf5ZC/SDmeQ==

Ai728資訊網——每日最新資訊28at.com

解密數據Ai728資訊網——每日最新資訊28at.com

@Testpublic void testDecrypt() {  String ret = vaultTemplate.opsForTransit().decrypt("db.password", "vault:v1:wBLlqFGICCnONZgwm+9JRRiOF/0xoxuO+OIy4omZoS1FBg==") ;  System.out.println(ret) ;}// 輸出123123

Ai728資訊網——每日最新資訊28at.com

5. 編程方式存儲KV值

首先在Vault上建立一個mydata秘鑰引擎。Ai728資訊網——每日最新資訊28at.com

@Testpublic void testCreate() {  Secrets ss = new Secrets();  ss.username = "admin";  ss.password = "123123";  Map<String, Object> data = new HashMap<>() ;  data.put("data", ss) ;  vaultTemplate.write("/mydata/data/db", data) ;}

Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

查詢獲取數據Ai728資訊網——每日最新資訊28at.com

@Testpublic void testRead() {  System.out.println( vaultTemplate.read("/mydata/data/db").getData()) ;}

Ai728資訊網——每日最新資訊28at.com

6. SpringBoot整合Vault

添加配置文件vault.properties,內容如下:Ai728資訊網——每日最新資訊28at.com

vault.uri=http://localhost:8200vault.token=hvs.xxxxxxxxoooooooo

Ai728資訊網——每日最新資訊28at.com

配置類Ai728資訊網——每日最新資訊28at.com

@Configuration@VaultPropertySource(value = {"demo/db"})@PropertySource("vault.properties")@Import(EnvironmentVaultConfiguration.class)public class AppVaultConfig {}

Ai728資訊網——每日最新資訊28at.com

@VaultPropertySource注解配置你需要查詢的密鑰key信息@Import(EnvironmentVaultConfiguration.class) 該配置會自動在容器中配置VaultTemplate類型的Bean,并且讀取的配置信息就是上面vault.properties中的。Ai728資訊網——每日最新資訊28at.com

以上就是SpringBoot與Vault整合所需要的全部內容。接下來在Vault服務上配置數據庫的信息Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

以上準備工作做完后,接下來就可以在SpringBoot配置文件中去引用這些配置了。Ai728資訊網——每日最新資訊28at.com

spring:  datasource:    driverClassName: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/batch?serverTimeznotallow=GMT%2B8&nullCatalogMeansCurrent=true&useSSL=false    username: ${db.username}    password: ${db.password}    type: com.zaxxer.hikari.HikariDataSource    hikari:      minimumIdle: 10      maximumPoolSize: 13

Ai728資訊網——每日最新資訊28at.com

到此,就完成了所有的配置工作,接下來只需要啟動服務,查看是否有異常即可。Ai728資訊網——每日最新資訊28at.com

圖片圖片Ai728資訊網——每日最新資訊28at.com

Ai728資訊網——每日最新資訊28at.com

數據庫正確的連接。Ai728資訊網——每日最新資訊28at.com

以上是本篇文章的全部內容,希望對你有所幫助。Ai728資訊網——每日最新資訊28at.com

完畢!!!Ai728資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-76553-0.html使用Vault保護SpringBoot配置文件中的敏感數據,你學會了嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何擴展大模型的上下文長度

下一篇: 保守點,90%的程序員不適合做獨立開發

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 南木林县| 井冈山市| 大田县| 搜索| 清新县| 社会| 朔州市| 屏东县| 义乌市| 泰安市| 紫金县| 汉寿县| 大连市| 板桥市| 竹溪县| 富阳市| 基隆市| 重庆市| 大余县| 噶尔县| 安义县| 剑阁县| 石柱| 五河县| 揭阳市| 罗城| 鸡东县| 双柏县| 平安县| 洛浦县| 延边| 承德县| 汾阳市| 广平县| 饶河县| 申扎县| 通海县| 珠海市| 彭泽县| 隆林| 日照市|