二 vault vault的架構

2021-08-01 13:32:07 字數 2735 閱讀 5513

前面對vault的使用做了簡單使用,有了具體化的認識,下面對vault進行詳細的說明。

vault架構:

術語:-

-storage backend

儲存後端 負責儲存加密後的資料

barrier

屏障,vault的安全區域的保障

secret backend

密碼後端,如mysql每次生成mysql新使用者

audit backend

審計後端,如日管理

credential backend

憑證後端,用於驗證連線到vault的使用者或應用程式

client token

客戶端令牌

secret

密文,秘密資訊

server

vault服務

expiration mgr

租期管理器,過期管理

rollback mgr

回滾管理器 ,使用者不可見

token store

令牌儲存

core

負責處理api請求請求,獲取secret backend中密文返回,並加上lease id ,使用者可以呼叫api續租或銷毀密文

policy store

策略儲存

system backend

系統後端

高階概述:

vault的架構如下圖:

安全屏障barrier內的元件都是安全的,除了storage backend和http api之外,所有其他元件都在安全屏障barrier內。

vault啟動後,處於封閉狀態,操作vault必須先解封,解封vault需要使用初始化時生成的多個金鑰,vault初始化後需要使用加密鑰匙(encryption key)訪問資料,加密鑰匙(encryption key)由主金鑰(master key)提供保護;預設情況下,vault使用「 shamir』s secret sharing algorithm 」演算法把主金鑰(master key)分割成5股,稱為(key shares),任何3股(key shares)可重建的主金鑰(master key);

注: shamir』s secret sharing algorithm : shamir』s 秘密共享演算法

key shares : 分割秘鑰 任意三個可以構建master key

master key : 主金鑰

encryption key : 加密秘鑰,用於資料的讀寫

分割秘鑰的數量和所需的最小閾值都可以指定。此功能可以被禁用,主金鑰可直接訪問未密封的vault服務,一旦庫獲取encryption key,就能夠解密儲存後端(storage backend)的資料,進入起封狀態。啟封後,vault載入所有的審計後端(audit backend )、憑證後端(credential backend )和密文後端(secret backend)

vault中的各種後端的配置都儲存在儲存庫(storage backend),因為這些都是敏感資料。只有具有正確許可權的使用者才能夠修改,也就是說他們不會處於屏障之外。由於他們儲存在儲存庫中,對他們的任何更改都被acl(access control list)控制,並被審計記錄日誌。

客戶端首次連線到vault,需要進行身份驗證。vault提供了可配置的憑證後端(credential backend),擁有靈活的身份驗證機制。如對人類友好的使用者名稱/密碼認證方式,或使用第三方運營商的認證,如github認證;應用程式可以使用公鑰/私鑰或令牌驗證(token)。身份驗證請求流經核心(core)和憑證後端(credential backend),如果請求是有效,則返回其策略列表(policies )。

策略由acl方式定義。例如,「root」策略是內建的,允許訪問所有資源。您可以建立任意數量的策略以及路徑的細粒度的許可權控制。vault操作使用白名單模式,也就是說,除非通過策略顯式授予許可權,否則任何訪問操作都是不允許的。乙個使用者可能有多個策略,是否可以操作由這些策略決定。策略由內部的策略庫(policy store)儲存和管理。策略庫(policy store)是通過系統後端(system backend)操作的,其始終是安裝在sys /下。

身份驗證後由憑證後端(credential backend)提供了一組適用的政策,由token store為客戶端生成乙個新的令牌,並儲存和管理起來。此標記傳送給客戶端,並用於後續請求使用。類似登入**時用的cookie。客戶端標記可能有乙個與之相關的租賃憑證,是否有租賃憑證取決於憑證後端(credential backend )配置。意味著客戶端令牌可能需要定期更新,以免失效。

身份驗證後,則使用令牌進行請求。令牌用於驗證客戶端和載入相關策略。策略用於對請求進行授權,然後將請求路由到指定的密文後端(secret backend),請求的處理由後端的型別決定。如果後端返回密文,核心暫存器(core)會管理並附加乙個租賃id(lease id)。租賃id用做更新或銷毀密文。如果客戶允許租賃id到期,租期管理器(

expiration mgr)自動銷毀這個密文。

vault核心將請求和響應的日誌委託給audit broker,將日誌記錄到審計後端。請求流程以外,核心保持在後台執行。租賃管理是比較重要的,因為它允許客戶令牌到期或密文自動撤銷。此外,vault使用回滾管理器基於日誌記錄處理某些失敗的用例。這個操作是透明的和使用者不可見的。

商城架構二

index.php 以後所有由使用者直接訪問到的這些頁面 都得先載入init.php require include init.php conf conf getins var dump conf include config.inc.php file.config.inc.php 配置檔案 cfg...

架構筆記二

什麼是概念?首先概念的定義是 人類在 認識過程中,從 感性認識上公升到 理性認識,把所感知的事物的共同本質特點抽象出來,加以概括,是本我認知意識的一種表達,形成概念式思維慣性。在人類所認知的思維體系中最基本的構築單位。概念可以大眾公認的,也可以是個人認知特有的一部分。表達概念的語言形式是詞或片語。概...

二 Spring的整體架構

spring框架是乙個分層架構,它包含一系列的功能要素,並被分為大約20個模組,如 這些模組總結為以下部分 1.core container core和bean模組是框架的基礎部分,提供ioc 控制反轉 和依賴注入特性。這裡的基礎概念是beanfactory,它提供對factory模式的經典實現來消...