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

Vault Workshop 01: Introduction

如果你希望追蹤最新的草稿,請見鐵人賽2023 本 workshop 也接受網友的許願清單,如果有興趣的題目可於第一篇底下留言,筆者會盡力實現,但不做任何保證 Day 01 前言:從零開始的 Hashicorp Vault Workshop 從零開始 workshop 系列已經做了四年,內容包含 k8s, terraform, aws 等。 深深覺得要學習一個工具,還是要動手做。 所以有了 30 天手把手 workshop 系列文,讓有興趣接觸的朋友,能以相對低的門檻入門。 關於內容 無基礎的手把手的基礎教學 完整的範例,提供原始程式碼,也提供 production 的經驗與範例 官方最新文件繁中翻譯 (chatGPT based) 建議讀者務必跟著操作,不要只是看過 其他文章 chechia.net 過去的 Workshop 2022 鐵人賽: Terraform IaC Best Practice on AWS Cloud / 在 aws 公有雲上找 IaC 最佳實踐 (因故退賽) 2021 鐵人賽: Terraform Workshop - Infrastructure as Code for Public Cloud 2020 鐵人賽: Kubernetes X DevOps X 從零開始導入工具 X 需求分析 2019 鐵人賽: Kubernetes 預定內容與許願清單 本 workshop 預計有底下內容 ...

September 12, 2023 · 2 min · 341 words · chechiachang