一、簡介
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