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 開發環境部署紀錄
規格
支援 file 儲存模式
支援 log 紀錄檔
支援 TLS
啟動 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 網站每次啟動都先解封(unseal) 否則無法使用。 第一次啟動要先生成全新的 root token 與 unseal key 請妥善隱密的保存。


客戶端 console CLI 畫面

(EOF)
Last updated