iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0

到這裡,我們一定有很多疑問,Grant也是滿頭黑人問號?
既然Vault負責管理這些機敏資訊,那它是怎麼運作? 又是怎麼儲存的呢

要了解這些,我們就必須深入看看Vault的架構了。

Vault 是一個基於身分的金鑰和加密管理系統,它集中管理金鑰,輪換舊憑證,按需產生憑證,審計客戶端交互,並支援監管合規性。

而金鑰是甚麼呢? 它可以是任何需要嚴格控制存取權限的訊息,例如令牌(Token)、API 金鑰(API key)、密碼(Password)、加密金鑰(Key)或憑證(Certification)。 Vault 提供了一個統一的金鑰管理介面,同時提供嚴格的存取控制並記錄詳細的稽核日誌。

而Vault則會在向客戶端(使用者、機器、應用程式)提供對金鑰或儲存的敏感資料的存取權之前,對其進行驗證和授權。
https://ithelp.ithome.com.tw/upload/images/20260918/20128925wzPh02qPRD.png

Vault 的核心工作流程包括四個階段:

  1. 身份驗證: 當客戶端提供登入資訊後,Vault 使用這些資訊來確定客戶端是否是其聲稱的身份。再經過身份驗證方法驗證後,系統會產生一個令牌並將其與策略關聯。
  2. 驗證: Vault 會根據 Github、LDAP、AppRole 等第三方可信任來源驗證用戶端。
  3. 授權:系統會將用戶端與 Vault 安全性原則進行比對。此策略是一組規則,定義了用戶端可以使用其 Vault 令牌存取哪些 API 端點。策略提供了一種聲明式的方法來授予或禁止對 Vault 中特定路徑和操作的存取權限。
  4. 存取權限:Vault 透過根據與客戶端身分關聯的策略頒發令牌來授予對金鑰、機密資訊和加密功能的存取權限。客戶端隨後可以使用其 Vault 令牌進行後續操作。

https://ithelp.ithome.com.tw/upload/images/20260918/20128925p1tsPruhIH.png

再更深入來看,Vault 的加密層稱為 Encryption Barrier,主要負責 Vault 資料的加密與解密。由於 Storage Backend 位於 Barrier 之外,因此 Vault 將其視為不可信任的儲存空間(untrusted storage),所有敏感資料在寫入 Storage Backend 前都會先經過 Barrier 加密,因此即使攻擊者取得 Storage Backend 中的資料,也無法直接讀取其中的 Secrets。

換言之,在Storage Backend裡的資料都是加密過的。

Storage Backend 本身則負責提供持久化儲存(persistent storage),確保 Vault Server 重新啟動後資料仍然存在。當 Vault Server 啟動時,預設會處於 Sealed 狀態,此時 Vault 雖然能存取 Storage Backend,卻沒有能力解密其中受保護的資料;只有完成 Unseal、讓 Vault 取得解密所需的 key material 後,Encryption Barrier 才能正常進行資料的加密與解密,Vault 也才能開始提供完整服務。


上一篇
Day 5. 設定 Azure NSG 及連線至 Vault 後台
下一篇
Day 7. 初始化 Vault:Root Token、Unseal Keys 與基本操作
系列文
身分驗證你我他 ─ 使用 HashiCorp Vault 與 Terraform 打造 Secret 與 Identity 實驗室8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言