HashiCorp Vault 開發環境部署

Vault,

§ 引言

經研究 HashiCorp Vault(簡稱 Vault)開源版可以部署在 windows, linux, docker。 這很難得,一般開源並可部署在 winodws 平台的都只願意開放到入門或只能測試的程度而已。

Vault 開源版可以部署成商用正式環境。

§ 有意義的部署

經研究 Vault 的保密性保證最終依據的依然是那個光,就是憑證(非對稱加密)與嚴謹的SOP設計。 它的SOP不在本文探討範圍因為那在企業版才能完整實現,其中最典型的應用是自動更換 DB 主機的帳號密碼。 把原本由系統工程師定期更換密碼變成由企業版的 Vault 定期更換密碼,去除一項人為的不保密風險。

開源版 Vault 仍有保管秘密的基本能力故還是有價值的。然而有意義的部署仍需要有正式的憑證加持。


§ Vault 部署紀錄摘要

部署版本: HashiCorp Vault 1.19.0

》 windows 入門練習部署摘要

部署指令:

> vault server -dev

說明:

不需要憑證。只適用CLI操作Vault的入門練習。 全程在記憶體內執行,每次重啟全部重置。

》 windows 開發環境部署

部署指令:

> vault server -config=cofnig.hcl

說明:

經由 hcl 組態檔設定。把 secrets 存入檔案。 可掛測試用的自簽憑證。 可用於開發以 web api 或專屬 client library 通訊操作。 參考後面段落詳細紀錄

》 windows 正式環境部署

部署成 windows service。 參考文章:Run Vault Agent as a Windows service 部署指令:

PS> sc.exe create "VaultAgent" `
 binPath="D:\vault_1.19.0_windows_386\vault.exe agent -config=D:\vault_1.19.0_windows_386\config.hcl" `
 DisplayName="Vault Agent"

說明: 可以成功啟動但沒有正式憑證與正式環境可用,故先放著。因為沒有正式憑證就不給執行,出現下面錯誤畫面:

沒有正式憑證不給執行

》 docker 部署

預計目標部署在 docker 但未找到(直白)完整的說明文件又時間不足故先放著。

》 linux 部署

不在考慮內。文章最完整。


§ windows 開發環境部署紀錄

規格

  1. 支援 file 儲存模式

  2. 支援 log 紀錄檔

  3. 支援 TLS

  4. 啟動 audit log。在 CLI 下指令啟動。 (官網說明也可在 hcl 檔設定 audit,但實作無效。)

部署指令:

> vault server -config=config.hcl -log-file=vault-log.log

組態檔 config.hcl:

storage "file" {
  path = "data"  # 秘密放置目錄
}

listener "tcp" {
  address     = "127.0.0.1:8200"
  tls_disable = 0
  tls_cert_file = "cert/vault.crt"  # 憑證檔(無金鑰)
  tls_key_file  = "cert/vault.key"  # 金錀檔
  tls_require_and_verify_client_cert = false  # 不驗證用戶端憑證。
  # tls_client_ca_file = "cert/ca.crt"        # 正式環境應設定 CA 憑證。
}

ui = true
log_level = "debug"

其中憑證的生成需另用 OpenSSL 協助。不在此文章說明。

§ 使用 CLI 進行 Vault 系統管理的

建議加入三個環境參數這樣使用起來比較方便。 但不建議加入系統環境設定,而是臨用時再加入因為這些參數都不應該公開或儲存。

> set VAULT_ADDR=https://127.0.0.1:8200         # Vault 網址
> set VAULT_TOKEN=hvs.******te3oScGHIQX2mzeQCI  # 設定 rook token。
> set VAULT_SKIP_VERIFY=1                       # 不檢驗主機憑證

§ 沒圖沒真象

主機端 console 畫面

Vault 服數啟動
檔案部局

Vault 網站每次啟動都先解封(unseal) 否則無法使用。 第一次啟動要先生成全新的 root token 與 unseal key 請妥善隱密的保存。

解封 Vault 數據

客戶端 console CLI 畫面

(EOF)

Last updated