一、vault

来源:互联网 发布:知乎 小程序 ui 框架 编辑:程序博客网 时间:2024/05/21 08:26

简介:

HashiCorp Vault是一个私密信息管理工具(A tool for managing secrets),提供键值的方式保存私密信息。

私密信息:

如数据库用户名密码、ssl证书、用户敏感信息等

特性:

1、安全的私密信息存储 2、动态的私密信息支持3、提供对于私密信息的更新,延长有效时间的功能4、灵活的权限控制5、多种客户端登录验证方式

安装使用:

1、安装

  • 安装包下载页面:·https://www.vaultproject.io/downloads.html
    linux安装包下载:
    wget https://releases.hashicorp.com/vault/0.7.0/vault_0.7.0_linux_amd64.zip

2、启动vault:

  • 1、安装包下载后解压,解压后只有一个名为vault的可执行文件;
  • 2、启动服务:
    - 开发环境
    vault server -dev
    *生产环境勿用

    - 生产环境  `vault server -config=vault.hcl`    vault.hcl为启动配置文件,具体下面再讲。vault.hcl文件内容如下:
    disable_mlock  = truebackend "mysql" {    address = "192.168.3.95:3306"    username = "root"    password = "1qazxsw2"    database = "vault"    table = "vault"}listener "tcp" {    address = "0.0.0.0:8200"    tls_cert_file = "work/ca/certs/localhost.cert.pem"    tls_key_file = "work/ca/private/localhost.decrypted.key.pem"}
  • 3、vault初始化:
    启动后需要对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 设置是否跳过核查 export VAULT_SKIP_VERIFY=false 使用TSL访问时需要设置,未使用证书忽略此项 设置访问证书 export VAULT_CAPATH=/usr/local/vault/work/ca/certs/ca.cert.pem 使用TSL访问时需要设置,未使用证书忽略此项

3、解封vault

vault初始化及重新启动后处于封闭状态,需要解封才能使用;
解封需要使用初始化vault时的多组key,解封操作如下;
命令:vault unseal <key>
说明:解封vault需要多组key,具体需要几组由初始化vault时的-key-threshold参数指定,默认为3,即进行三次解封操作
这里写图片描述

4、登录vault

首次访问vault需要登录后才能对vault进行操作,vault在初始化时提供的root token用作在首次登录vault时认证使用;
命令:vault auth <root token>
这里写图片描述

5、查看vault状态

命令:vault status
说明:sealed表示vault是否处于封闭状态,true表示封闭,false表示已解封,
这里写图片描述

6、写入与读取

命令

写入:vault write secret/<path> <key0>=<value0> <key1>=<value1>
读取:vault read secret/<path>
vault read -format=json secret/<paht> #格式化输出
删除:vault delete secret/<path>

eg.

vault write secret/hello value=world 写入
vault write secret/hello value=world excited=yes 写入多个
vault read secret/hello 读取
vault read -format=json secret/hello 格式化输出
vault delete secret/hello 删除
说明:secret是vault内置的Secrte backends(秘密信息后端),后面再讲。
这里写图片描述

原创粉丝点击