Vault Workshop 06: Github Auth method

如果你希望追蹤最新的草稿,請見鐵人賽2023 本 workshop 也接受網友的許願清單,如果有興趣的題目可於第一篇底下留言,筆者會盡力實現,但不做任何保證 整篇 Workshop 會使用的範例與原始碼,放在 Github Repository: vault-playground Day 06:Github auth method 不需要使用 root token 的 auth method: github Vault 支援用於人員使用者的身份驗證方法。GitHub 身份驗證,使用戶可以通過提供他們的 GitHub 憑證來驗證 Vault,並收到一個 Vault token。 簡單來說,github organization chechia-net,可以設定適當的權限給成員 chechiachang,讓 chechiachang 可以透過 github 取得有權限的 token。 注意 在練習中所描述的這種身份驗證方法,需要你擁有 GitHub、屬於 GitHub org 中的一個 team ,並生成了具有 read:org scope 的 GitHub personal access token。你可以於 github 創建一個 free plan 的 org,並設定一個 team,然後透過個人 Settings / Developer Settings 來產生一把具有 read:org 權限的 personal access token 啟用 github auth method 你可以使用下列指令,在 path=github/ 下啟用 GitHub 身份驗證方法。 ...

September 14, 2023 · 5 min · 943 words · chechiachang

Vault Workshop 05: Authentication

如果你希望追蹤最新的草稿,請見鐵人賽2023 本 workshop 也接受網友的許願清單,如果有興趣的題目可於第一篇底下留言,筆者會盡力實現,但不做任何保證 整篇 Workshop 會使用的範例與原始碼,放在 Github Repository: vault-playground Day 05:Authentication 在前面的文章中,你已經創建了第一個秘密,了解了秘密引擎,並在以開發模式啟動的 Vault 服務器中探索了動態秘密。 接下來的內容中,我們將深入研究使用 Vault token 和 GitHub 憑證進行身份驗證。 Token 身份驗證 Token 身份驗證已自動啟用。當你啟動開發模式服務器時,輸出顯示了 Root token。Vault CLI 從 $VAULT_TOKEN 環境變數中讀取 Root token。這個根 token 可以在 Vault 內執行任何操作,因為它被分配了 Root policy 權限。允許的權限中包含創建新的 token。 現在,讓我們創建一個新的 token。 啟動全新的 dev Vault Server vault server -dev output,server log 回傳 dev 模式的警告 WARNING! dev mode is enabled! In this mode, Vault runs entirely in-memory and starts unsealed with a single unseal key. The root token is already authenticated to the CLI, so you can immediately begin using Vault. # 警告!已啟用開發模式!在此模式下,Vault完全運行在內存中,使用單個unseal key解封。 # root token已被CLI驗證,因此你可以立即開始使用Vault。 You may need to set the following environment variables: $ export VAULT_ADDR='http://127.0.0.1:8200' # 以下顯示了unseal key 和 root token,以防你想要封存/解封Vault,或重新進行身份驗證。 The unseal key and root token are displayed below in case you want to seal/unseal the Vault or re-authenticate. # dev 模式預設配置的 unseal key 與 root token Unseal Key: QDUA...im4= Root Token: hvs.J30e...0DJaN # 開發模式絕不應在生產安裝中使用! Development mode should NOT be used in production installations! 依據提示 export 需要的變數 ...

September 14, 2023 · 6 min · 1069 words · chechiachang

Vault Workshop 04: Secret Engine KV V2

如果你希望追蹤最新的草稿,請見鐵人賽2023 本 workshop 也接受網友的許願清單,如果有興趣的題目可於第一篇底下留言,筆者會盡力實現,但不做任何保證 整篇 Workshop 會使用的範例與原始碼,放在 Github Repository: vault-playground Day 04:Secret Engine KV V2 KV秘密引擎,用於在Vault的已配置物理Storage中,存儲任意秘密。 key 名稱必須始終是字符串。如果你直接通過CLI編寫非字串 value,它們將被轉換為字串。但是,你可以通過從JSON文件中將key-value pair寫入Vault,或使用HTTP API來保留非字串 value。 此秘密引擎遵照ACL policy中,創建(create)和更新(update)權限之間的設定。它還支持patch功能,用於表示部分更新(patch),而更新功能(update)則表示完全覆蓋。 設置 大多數秘密引擎必須在執行其功能之前事先配置。這些步驟通常由操作人員或配置管理工具完成。 啟用v2 kv秘密引擎: 啟動一個乾淨的本地的開發模式 Vault Server,全新的 Vault Server 包含底下預設啟用的引擎 vault server -dev export VAULT_ADDR='http://127.0.0.1:8200' vault secrets list Path Type Accessor Description ---- ---- -------- ----------- cubbyhole/ cubbyhole cubbyhole_57a4ca51 per-token private secret storage identity/ identity identity_c2ecbd49 identity store secret/ kv kv_c41afde8 key/value secret storage sys/ system system_c063e514 system endpoints used for control, policy and debugging 你可以在指定的路徑下,啟用一個新的 v2 kv 秘密引擎。若不指定 -path 參數,則預設 path 為 type,也就是 path=kv。 ...

September 14, 2023 · 6 min · 1269 words · chechiachang

Vault Workshop 03: Secret Engine

如果你希望追蹤最新的草稿,請見鐵人賽2023 本 workshop 也接受網友的許願清單,如果有興趣的題目可於第一篇底下留言,筆者會盡力實現,但不做任何保證 整篇 Workshop 會使用的範例與原始碼,放在 Github Repository: vault-playground Day 03:細探 Secret Engine 秘密引擎 什麼是秘密引擎? 秘密引擎是Vault的組件,用於存儲、生成或加密秘密。在前面的內容中,你使用了Key/Value v2 秘密引擎來存儲數據。一些秘密引擎,比如鍵/值秘密引擎,僅僅是用來存儲和讀取數據的。其他秘密引擎則連接到其他服務並根據需求生成動態憑證。還有一些秘密引擎提供加密作為服務。 前面的內容中,默認情況下,key/value v2 秘密引擎已啟用,並準備在 secret/ 下接收請求,因為我們在-dev 模式下啟動了Vault Server。 在底下我們使用 kv v1 做簡單的範例。 mount path 建議在使用 KV v2 秘密引擎時,使用可選的 -mount flag 語法,例如 vault kv get -mount=secret foo 請嘗試以下命令,這將導致錯誤: vault kv put foo/bar a=b Error making API request. URL: GET http://127.0.0.1:8200/v1/sys/internal/ui/mounts/foo/bar Code: 403. Errors: * preflight capability check returned 403, please ensure client's policies grant access to path "foo/bar/" Path prefix 路徑前綴告訴 Vault 應該將流量 route 到哪個秘密引擎 ...

September 13, 2023 · 3 min · 590 words · chechiachang

Vault Workshop 02: Get Started

如果你希望追蹤最新的草稿,請見鐵人賽2023 本 workshop 也接受網友的許願清單,如果有興趣的題目可於第一篇底下留言,筆者會盡力實現,但不做任何保證 Day 02 準備:執行一個本地開發用途的 Vault 整篇 Workshop 會使用的範例與原始碼,放在 Github Repository: vault-playground 準備工作 在開始進行 Vault 30 天 workshop 之前,有一些準備工作需要完成: 步驟1:下載 Vault Binary 首先,你需要下載HashiCorp Vault的最新版本。你可以在HashiCorp的官方網站上找到Vault的下載鏈接。請確保下載適用於你操作系統的版本。 https://developer.hashicorp.com/vault/downloads MacOS amd64 MacOS arm64 Linux 步驟2:安裝Vault 下載完成後,根據你的操作系統進行安裝。對於大多數Linux和Unix系統,你c可以通過解壓縮壓縮文件來安裝Vault。將Vault Binary文件移至你的PATH中,以便在終端中輕鬆訪問 筆者使用的是 Mac M1,使用以下指令進行安裝 wget https://releases.hashicorp.com/vault/1.14.3/vault_1.14.3_darwin_arm64.zip unzip vault_1.14.3_darwin_arm64.zip sudo mv vault /usr/local/bin/vault Vault v1.14.3 (56debfa71653e72433345f23cd26276bc90629ce), built 2023-09-11T21:23:55Z 你不需要使用最新版本的 Vault 也可以完成這次 workshop 啟動 Vault server 使用以下指令在本地啟動 Vault Server。請確保 Vault 伺服器已正確啟動,並且未出現錯誤消息。 vault server -dev 使用 -dev 選項可以啟動Vault的開發模式,該模式不需要身份驗證即可運行Vault。 ...

September 13, 2023 · 4 min · 696 words · chechiachang