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

當(dāng)前位置:首頁(yè) > 科技  > 軟件

使用Vault保護(hù)SpringBoot配置文件中的敏感數(shù)據(jù),你學(xué)會(huì)了嗎?

來(lái)源: 責(zé)編: 時(shí)間:2024-03-18 09:42:40 178觀看
導(dǎo)讀環(huán)境:SpringBoot2.7.16 + Vault1.15.5(Vault服務(wù)版本)1. 簡(jiǎn)介SpringBoot作為流行的Java微服務(wù)框架,其配置文件可能包含數(shù)據(jù)庫(kù)密碼、API密鑰等敏感數(shù)據(jù)。為了保障這些信息的安全,Vault作為一個(gè)開(kāi)源的秘密管理工具,成為了眾

環(huán)境:SpringBoot2.7.16 + Vault1.15.5(Vault服務(wù)版本)KZF28資訊網(wǎng)——每日最新資訊28at.com

1. 簡(jiǎn)介

SpringBoot作為流行的Java微服務(wù)框架,其配置文件可能包含數(shù)據(jù)庫(kù)密碼、API密鑰等敏感數(shù)據(jù)。為了保障這些信息的安全,Vault作為一個(gè)開(kāi)源的秘密管理工具,成為了眾多開(kāi)發(fā)者的選擇。本文將深入探討如何整合SpringBoot與Vault,實(shí)現(xiàn)對(duì)配置文件中敏感信息的有效保護(hù),從而確保微服務(wù)應(yīng)用的安全性。KZF28資訊網(wǎng)——每日最新資訊28at.com

Spring Vault 為訪(fǎng)問(wèn)、存儲(chǔ)和撤銷(xiāo)秘密提供客戶(hù)端支持。有了 HashiCorp 的 Vault,你就有了一個(gè)集中的地方來(lái)管理所有環(huán)境中應(yīng)用程序的外部秘密數(shù)據(jù)。Vault 可以管理應(yīng)用程序數(shù)據(jù)、遠(yuǎn)程應(yīng)用程序/資源的用戶(hù)名/密碼等靜態(tài)和動(dòng)態(tài)秘密,并為 MySQL、PostgreSQL、Apache Cassandra、Consul、AWS 等外部服務(wù)提供憑證。KZF28資訊網(wǎng)——每日最新資訊28at.com

2. Vault服務(wù)安裝及配置

本文將通過(guò)Docker安裝Vault服務(wù)。執(zhí)行如下命令即可KZF28資訊網(wǎng)——每日最新資訊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

KZF28資訊網(wǎng)——每日最新資訊28at.com

上面以服務(wù)的模式運(yùn)行vault。KZF28資訊網(wǎng)——每日最新資訊28at.com

--cap-add=IPC_LOCK:這是 Vault 鎖定內(nèi)存所必需的,這會(huì)阻止內(nèi)存被交換到磁盤(pán)。強(qiáng)烈推薦這個(gè)。在非開(kāi)發(fā)環(huán)境中,如果不想使用該功能,則必須添加"disable_mlock: true"配置信息。KZF28資訊網(wǎng)——每日最新資訊28at.com

這將運(yùn)行一個(gè)禁用 TLS 的 Vault 服務(wù)器,file存儲(chǔ)后端位于路徑/vault/file,默認(rèn)秘密租約期限為一周,最長(zhǎng)為 30 天。file不建議在生產(chǎn)使用中禁用 TLS 和使用存儲(chǔ)后端。KZF28資訊網(wǎng)——每日最新資訊28at.com

3. Vault基本操作

通過(guò)http://localhost:8200/ui/ 訪(fǎng)問(wèn)Vault管理頁(yè)面KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

KZF28資訊網(wǎng)——每日最新資訊28at.com

這里輸入你初次進(jìn)入頁(yè)面時(shí)會(huì)給你生成一份token文件,文件中包含了token信息。如下:KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

進(jìn)入管理頁(yè)面后點(diǎn)擊Secrets Engines菜單,在該菜單中進(jìn)行信息的配置KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

KZF28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建新的密鑰管理KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

KZF28資訊網(wǎng)——每日最新資訊28at.com

選擇KVKZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

KZF28資訊網(wǎng)——每日最新資訊28at.com

輸入路徑Path,這個(gè)路徑就是以后你要訪(fǎng)問(wèn)的路徑,然后點(diǎn)擊Enable Engine。KZF28資訊網(wǎng)——每日最新資訊28at.com

最后添加你需要的配置信息KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

以上就是基本的配置。KZF28資訊網(wǎng)——每日最新資訊28at.com

在上面的加密引擎選擇中有個(gè),Transit這個(gè)類(lèi)型可以同來(lái)對(duì)數(shù)據(jù)進(jìn)行加解密也是非常的實(shí)用。KZF28資訊網(wǎng)——每日最新資訊28at.com

4. Vault加解密數(shù)據(jù)

接下來(lái)我們通過(guò)Transit進(jìn)行數(shù)據(jù)的加解密。KZF28資訊網(wǎng)——每日最新資訊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"));}

KZF28資訊網(wǎng)——每日最新資訊28at.com

加密數(shù)據(jù)KZF28資訊網(wǎng)——每日最新資訊28at.com

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

KZF28資訊網(wǎng)——每日最新資訊28at.com

解密數(shù)據(jù)KZF28資訊網(wǎng)——每日最新資訊28at.com

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

KZF28資訊網(wǎng)——每日最新資訊28at.com

5. 編程方式存儲(chǔ)KV值

首先在Vault上建立一個(gè)mydata秘鑰引擎。KZF28資訊網(wǎng)——每日最新資訊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) ;}

KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

查詢(xún)獲取數(shù)據(jù)KZF28資訊網(wǎng)——每日最新資訊28at.com

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

KZF28資訊網(wǎng)——每日最新資訊28at.com

6. SpringBoot整合Vault

添加配置文件vault.properties,內(nèi)容如下:KZF28資訊網(wǎng)——每日最新資訊28at.com

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

KZF28資訊網(wǎng)——每日最新資訊28at.com

配置類(lèi)KZF28資訊網(wǎng)——每日最新資訊28at.com

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

KZF28資訊網(wǎng)——每日最新資訊28at.com

@VaultPropertySource注解配置你需要查詢(xún)的密鑰key信息@Import(EnvironmentVaultConfiguration.class) 該配置會(huì)自動(dòng)在容器中配置VaultTemplate類(lèi)型的Bean,并且讀取的配置信息就是上面vault.properties中的。KZF28資訊網(wǎng)——每日最新資訊28at.com

以上就是SpringBoot與Vault整合所需要的全部?jī)?nèi)容。接下來(lái)在Vault服務(wù)上配置數(shù)據(jù)庫(kù)的信息KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

以上準(zhǔn)備工作做完后,接下來(lái)就可以在SpringBoot配置文件中去引用這些配置了。KZF28資訊網(wǎng)——每日最新資訊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

KZF28資訊網(wǎng)——每日最新資訊28at.com

到此,就完成了所有的配置工作,接下來(lái)只需要啟動(dòng)服務(wù),查看是否有異常即可。KZF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片KZF28資訊網(wǎng)——每日最新資訊28at.com

KZF28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)庫(kù)正確的連接。KZF28資訊網(wǎng)——每日最新資訊28at.com

以上是本篇文章的全部?jī)?nèi)容,希望對(duì)你有所幫助。KZF28資訊網(wǎng)——每日最新資訊28at.com

完畢!!!KZF28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-76553-0.html使用Vault保護(hù)SpringBoot配置文件中的敏感數(shù)據(jù),你學(xué)會(huì)了嗎?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 如何擴(kuò)展大模型的上下文長(zhǎng)度

下一篇: 保守點(diǎn),90%的程序員不適合做獨(dú)立開(kāi)發(fā)

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
Top 主站蜘蛛池模板: 连州市| 白朗县| 天峨县| 呼和浩特市| 河源市| 迁安市| 垦利县| 茌平县| 江达县| 白玉县| 思南县| 青海省| 蒙山县| 工布江达县| 延长县| 太康县| 资中县| 卫辉市| 霍城县| 当阳市| 奎屯市| 伊春市| 东兴市| 哈巴河县| 赤峰市| 铅山县| 临湘市| 申扎县| 乐东| 林西县| 阿图什市| 尼勒克县| 青河县| 蒙阴县| 靖宇县| 如东县| 邓州市| 泰来县| 泽普县| 红河县| 镇平县|