Secrets Management
Secrets Management(機密管理)是指集中儲存、存取控制、版本管理與稽核密碼、API Key、Token、SSH Key 等敏感資料的實踐。傳統方式通常將機密放在 .env、明文設定檔或 CI 環境變數中,容易造成泄漏且難以追蹤。在現代 docker 與 gitops 架構中,Secrets Management 是安全基礎設施的關鍵環節。
為什麼需要 Secrets Management¶
以多個 Docker stack 為例,Nextcloud、authentik、n8n 等服務各自使用 .env 儲存 POSTGRES_PASSWORD、ADMIN_PASSWORD、OPENAI_API_KEY 等。這些檔案散落在 git repository、VPS 與備份中,帶來以下風險:
- GitHub 洩漏:只要 repo 不小心提交
.env,密碼立即曝光。 - 備份洩漏:備份檔案若未加密,機密跟著外流。
- 主機入侵:VPS 被取得後,所有明文機密一次被讀走。
- 缺乏稽核:無法知道誰讀取了哪些 Secret。
- 無法輪換:密碼變更需要手動修改多個檔案。
Secrets Management 透過集中式 vault 解決這些問題,並提供加密儲存、版本回溯、RBAC 權限控制與 Audit Log。
主流工具¶
hashicorp-vault¶
Vault 是企業級機密管理工具,功能非常強大,支援 Dynamic Secret、PKI、雲端憑證動態產生。但設定複雜,對個人 Homelab 或小型 Docker 環境門檻較高。
infisical¶
infisical-詳細介紹 中提到,Infisical 是開源機密管理平台,定位類似 Vault,但更偏向 DevOps、自架環境、GitOps 與 Docker/Kubernetes 使用者。它提供 Web UI、CLI、API、SDK 與自架能力,對 Oracle VPS + Docker + cloudflare-tunnel 的架構非常搭配。
下表比較兩者:
| 項目 | Infisical | Hashicorp Vault |
|---|---|---|
| 設定難度 | 容易 | 較高 |
| Web UI | 完善 | 普通 |
| Docker 整合 | 很好 | 需設定 |
| Dynamic Secret | 有 | 非常強 |
| 企業級功能 | 中高 | 最高 |
| 個人 Homelab | 適合 | 偏重 |
Infisical 核心功能¶
Infisical 提供以下主要能力:
- Secret Storage:儲存 Password、API Key、SSH Key、Token、Certificate 等。
- Web Dashboard:可新增、修改、搜尋、查看版本與管理權限。
- Secret Versioning:每個 Secret 保存歷史版本,可 rollback。
- Secret Injection:透過
infisical run -- docker compose up在容器啟動時注入機密,Git 內不再需要明文password=。 - GitHub Actions 整合:CI 流程可直接從 Infisical 讀取機密,取代
secrets.OPENAI_KEY。 - Secret Scanning:掃描 Git repo、Docker config、CI pipeline,偵測疑似洩漏的 API Key。
- RBAC 權限控制:不同服務只能讀取自己需要的 Secret,例如 n8n 只讀
OPENAI_API_KEY。 - Audit Log:記錄誰在何時存取哪些機密。
部署建議¶
以 cloudflare Tunnel 對外提供 Infisical Web UI,後端使用 PostgreSQL 與 Redis 儲存。建議將 Secret 依專案分類,例如:
01-cloudflare:CF_TUNNEL_TOKEN、CF_API_TOKEN02-database:POSTGRES_PASSWORD、REDIS_PASSWORD03-nextcloud:DB_PASSWORD、ADMIN_PASSWORD06-ai:OPENAI_API_KEY、GEMINI_API_KEY07-oci:SMTP_PASSWORD
部署順序可先建立 Infisical,再逐步把 Cloudflare Token、PostgreSQL 密碼、各 stack 的 .env 移入,最後讓 github-actions 直接讀取 Infisical,並刪除所有明文 .env。
總結¶
對於使用 docker-compose、GitOps 與多個 AI 服務的 Homelab 或小型團隊,Secrets Management 不再是選配。Infisical 提供了兼具易用性與安全性的方案,能大幅降低機密外洩風險。若需要更高階的動態憑證與企業治理,hashicorp-vault 仍是強大選擇。相關操作可參考 log 與 index 中的實際部署記錄。