当前位置:首页 > 科技  > 软件

使用Vault保护SpringBoot配置文件中的敏感数据,你学会了吗?

来源: 责编: 时间:2024-03-18 09:42:40 111观看
导读环境:SpringBoot2.7.16 + Vault1.15.5(Vault服务版本)1. 简介SpringBoot作为流行的Java微服务框架,其配置文件可能包含数据库密码、API密钥等敏感数据。为了保障这些信息的安全,Vault作为一个开源的秘密管理工具,成为了众

环境:SpringBoot2.7.16 + Vault1.15.5(Vault服务版本)zLr28资讯网——每日最新资讯28at.com

1. 简介

SpringBoot作为流行的Java微服务框架,其配置文件可能包含数据库密码、API密钥等敏感数据。为了保障这些信息的安全,Vault作为一个开源的秘密管理工具,成为了众多开发者的选择。本文将深入探讨如何整合SpringBoot与Vault,实现对配置文件中敏感信息的有效保护,从而确保微服务应用的安全性。zLr28资讯网——每日最新资讯28at.com

Spring Vault 为访问、存储和撤销秘密提供客户端支持。有了 HashiCorp 的 Vault,你就有了一个集中的地方来管理所有环境中应用程序的外部秘密数据。Vault 可以管理应用程序数据、远程应用程序/资源的用户名/密码等静态和动态秘密,并为 MySQL、PostgreSQL、Apache Cassandra、Consul、AWS 等外部服务提供凭证。zLr28资讯网——每日最新资讯28at.com

2. Vault服务安装及配置

本文将通过Docker安装Vault服务。执行如下命令即可zLr28资讯网——每日最新资讯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

zLr28资讯网——每日最新资讯28at.com

上面以服务的模式运行vault。zLr28资讯网——每日最新资讯28at.com

--cap-add=IPC_LOCK:这是 Vault 锁定内存所必需的,这会阻止内存被交换到磁盘。强烈推荐这个。在非开发环境中,如果不想使用该功能,则必须添加"disable_mlock: true"配置信息。zLr28资讯网——每日最新资讯28at.com

这将运行一个禁用 TLS 的 Vault 服务器,file存储后端位于路径/vault/file,默认秘密租约期限为一周,最长为 30 天。file不建议在生产使用中禁用 TLS 和使用存储后端。zLr28资讯网——每日最新资讯28at.com

3. Vault基本操作

通过http://localhost:8200/ui/ 访问Vault管理页面zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

zLr28资讯网——每日最新资讯28at.com

这里输入你初次进入页面时会给你生成一份token文件,文件中包含了token信息。如下:zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

进入管理页面后点击Secrets Engines菜单,在该菜单中进行信息的配置zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

zLr28资讯网——每日最新资讯28at.com

创建新的密钥管理zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

zLr28资讯网——每日最新资讯28at.com

选择KVzLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

zLr28资讯网——每日最新资讯28at.com

输入路径Path,这个路径就是以后你要访问的路径,然后点击Enable Engine。zLr28资讯网——每日最新资讯28at.com

最后添加你需要的配置信息zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

以上就是基本的配置。zLr28资讯网——每日最新资讯28at.com

在上面的加密引擎选择中有个,Transit这个类型可以同来对数据进行加解密也是非常的实用。zLr28资讯网——每日最新资讯28at.com

4. Vault加解密数据

接下来我们通过Transit进行数据的加解密。zLr28资讯网——每日最新资讯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"));}

zLr28资讯网——每日最新资讯28at.com

加密数据zLr28资讯网——每日最新资讯28at.com

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

zLr28资讯网——每日最新资讯28at.com

解密数据zLr28资讯网——每日最新资讯28at.com

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

zLr28资讯网——每日最新资讯28at.com

5. 编程方式存储KV值

首先在Vault上建立一个mydata秘钥引擎。zLr28资讯网——每日最新资讯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) ;}

zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

查询获取数据zLr28资讯网——每日最新资讯28at.com

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

zLr28资讯网——每日最新资讯28at.com

6. SpringBoot整合Vault

添加配置文件vault.properties,内容如下:zLr28资讯网——每日最新资讯28at.com

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

zLr28资讯网——每日最新资讯28at.com

配置类zLr28资讯网——每日最新资讯28at.com

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

zLr28资讯网——每日最新资讯28at.com

@VaultPropertySource注解配置你需要查询的密钥key信息@Import(EnvironmentVaultConfiguration.class) 该配置会自动在容器中配置VaultTemplate类型的Bean,并且读取的配置信息就是上面vault.properties中的。zLr28资讯网——每日最新资讯28at.com

以上就是SpringBoot与Vault整合所需要的全部内容。接下来在Vault服务上配置数据库的信息zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

以上准备工作做完后,接下来就可以在SpringBoot配置文件中去引用这些配置了。zLr28资讯网——每日最新资讯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

zLr28资讯网——每日最新资讯28at.com

到此,就完成了所有的配置工作,接下来只需要启动服务,查看是否有异常即可。zLr28资讯网——每日最新资讯28at.com

图片图片zLr28资讯网——每日最新资讯28at.com

zLr28资讯网——每日最新资讯28at.com

数据库正确的连接。zLr28资讯网——每日最新资讯28at.com

以上是本篇文章的全部内容,希望对你有所帮助。zLr28资讯网——每日最新资讯28at.com

完毕!!!zLr28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-76553-0.html使用Vault保护SpringBoot配置文件中的敏感数据,你学会了吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 如何扩展大模型的上下文长度

下一篇: 保守点,90%的程序员不适合做独立开发

标签:
  • 热门焦点
  • 一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    终于,在经过了几波预热之后,一加Ace2 Pro的外观真机图在网上出现了。还是博主数码闲聊站曝光的,这次的外观设计还是延续了一加11的方案,只是细节上有了调整,例如新加入了钛空灰
  • 帅气纯真少年!日本最帅初中生选美冠军出炉

    帅气纯真少年!日本最帅初中生选美冠军出炉

    日本第一帅哥初一生选美大赛冠军现已正式出炉,冠军是来自千叶县的宗田悠良。日本一直热衷于各种选美大赛,从&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • 六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    8月5日消息,一年一度的华为开发者大会2023(Together)日前在松山湖拉开帷幕,与此同时,华为8月服务日也式开启,到店可享六大专属权益。华为用户可在华为商城Ap
  • 多线程开发带来的问题与解决方法

    多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 三分钟白话RocketMQ系列—— 如何发送消息

    三分钟白话RocketMQ系列—— 如何发送消息

    我们知道RocketMQ主要分为消息 生产、存储(消息堆积)、消费 三大块领域。那接下来,我们白话一下,RocketMQ是如何发送消息的,揭秘消息生产全过程。注意,如果白话中不小心提到相关代
  • 大厂卷向扁平化

    大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 阿里大调整

    阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 四年持续更迭坚持探索行业无人之境,HarmonyOS 4带来五大升级多项创新

    四年持续更迭坚持探索行业无人之境,HarmonyOS 4带来五大升级多项创新

    除了华为每年新发布的旗舰手机系列,上亿花粉更加期待鸿蒙系统每次的跨版本大更新。8月4日,HarmonyOS 4于HDC 2023正式发布,这也是该系统历经四年的再
Top