Vault安装、配置、使用

时间:2021-09-19 22:42:25

一、环境搭建

官网指导步骤:https://learn.hashicorp.com/vault/#getting-started

1. 下载vault安装文件

2. dev环境启动 ./vault server -dev, 然后localhost:8200,这种方式token每次启动都会变化

3.token不变的方式,首先:在vault目录下创建vault-dev.hcl文件

/*
* Sample configuration file for tests
*/

// Enable UI
ui = true

// Filesystem storage
storage "file" {
path = "./vault-data"
}

// TCP Listener using a self-signed certificate
listener "tcp" {
address = "127.0.0.1:8200"
"tls_disable" = "true"
}

4. cd到vault目录下,执行下面命令启动vault server

./vault server -config vault-dev.hcl

5. 另起一个命令窗口,执行:

export VAULT_ADDR=http://localhost:8200vault operator init

6. 保存好上面init命令后产生的5个key和一个token,另起一个命令窗口 执行(需要3个key凑齐才能用)

./vault operator unseal 第一个key
./vault operator unseal 第二个key
./vault operator unseal 第三个key

7. 然后执行localhost:8200, 打开管理平台,添加一个密码引擎,类型为KV,路径为secret/, 然后创建与springboot项目中spring.application.name配置一致的名称

Vault安装、配置、使用

8. 配置需要加密的key value,springboot项目中可以用占位符变量

Vault安装、配置、使用

vault中配置key为变量名

Vault安装、配置、使用

除了用变量占位符,也可以springboot项目中去掉配置项,vault中配置key为springboot配置路径(spring.datasource.username)方式进行配置

二、集成 spring-cloud-vault 组件

1. 引入依赖 compile "org.springframework.cloud:spring-cloud-vault-config:1.1.2.RELEASE"

2. 编辑bootstrap.yml文件

spring:
  application:
    # 应用名
    name: defsat-demo
  cloud:
    vault:
      # 默认不开启,根据profile配置
      enabled: false
---
spring:
  # 环境
  profiles: staging
  cloud:
    vault:
      # vault服务地址
      uri: https://localhost:8200
      # vault token
      token: s.GdMEcVYamK3HMaesWAlvYPlG
      enabled: true
---
spring:
  # 环境
  profiles: prod
  cloud:
    vault:
      # vault服务地址
      uri: https://localhost:8200
      # vault token
      token: s.GdMEcVYamK3HMaesWAlvYPlG
      enabled: true

三、注意事项

1. 新增一个secret引擎时,名称一定要叫 secret,不然应用找不到,具体原因没深究

2. 每次关闭vault后,必须要重新解封

3. 新增secret引擎时,使用Version1,不要使用Version2