一、简介
HashiCorp Vault是一个私密信息管理工具(A tool for managing secrets),提供键值的方式保存私密信息。
秘密信息:如数据库用户名密码、ssl证书、用户敏感信息等。
特性:
1、安全的私密信息存储
2、动态的私密信息支持
3、提供对于私密信息的更新,延长有效时间的功能
4、灵活的权限控制
5、多种客户端登录验证方式
二、安装启动
1、下载安装包
最新版本:https://www.vaultproject.io/downloads.html
历史版本:https://releases.hashicorp.com/vault/
2、启动vault
- 1、安装包下载后解压,解压后只有一个名为vault的可执行文件;
- 2、启动服务
开发环境:(生产勿用)$ vault server -dev
生产环境:
$ vault server -config=vault.hcl # vault.hcl文件如下 storage "mysql" { address = "localhost:3306" username = "root" password = "flm" database = "vault" table = "vault" } listener "tcp" { address = "127.0.0.1:8200" tls_disable = 1 }
- 3、初始化
启动后需要对vault进行初始化,如下:
$ vault init # 或者 $ vault init -key-shares=5 -key-threshold=3 # -key-shares:指定秘钥的总股数, # -key-threshold:指定需要几股可解锁 # 以上参数为默认,可不设置。
初始化后会得到多个key和一个root token,key用作解封vault使用,root token用作首次访问vault使用; 两者皆需要有运维人员保存记录下,为了安全起见,key应由多个人分别保管,root token由安全人员保管。
为了方便CLI使用vault命令,建议配置环境变量;安全起见,建议设置环境变量只在当前客户端生效,
命令:说明 命令 说明 设置vault访问地址 export VAULT_ADDR=’http://127.0.0.1:8200’ vault命令作用的vault服务的地址 设置Vault PATH export PATH=$PATH:< vault install path > vault install path:vault安装路径 设置访问token export VAULT_TOKEN=< token > token:登录vault时的token,首次登录可使用root token - 4、解封vault
# vault初始化及重新启动后处于封闭状态,需要解封才能使用; # 解封需要使用初始化vault时的多组key,解封操作如下; $ vault unseal <key> # 说明:解封vault需要多组key,具体需要几组由初始化vault时的-key-threshold参数指定,默认为3,即进行三次解封操作
-
5、登录vault
# 首次访问vault需要登录后才能对vault进行操作,vault在初始化时提供的root token用作在首次登录vault时认证使用; $ vault auth <root token>
-
6、查看vault状态
$ vault status # 说明:sealed表示vault是否处于封闭状态,true表示封闭,false表示已解封,
-
7、写入读取
写入:vault write secret/<path> <key0>=<value0> <key1>=<value1> 读取:vault read secret/<path> 读取#格式化输出:vault read -format=json secret/<paht> 删除:vault delete secret/<path>
-
⚠️:vault的版本不同有可能有差异,此版本version=0.9.6