跳轉至

Secrets Management

Secrets Management(機密管理)是指集中儲存、存取控制、版本管理與稽核密碼、API Key、Token、SSH Key 等敏感資料的實踐。傳統方式通常將機密放在 .env、明文設定檔或 CI 環境變數中,容易造成泄漏且難以追蹤。在現代 dockergitops 架構中,Secrets Management 是安全基礎設施的關鍵環節。

為什麼需要 Secrets Management

以多個 Docker stack 為例,Nextcloud、authentikn8n 等服務各自使用 .env 儲存 POSTGRES_PASSWORDADMIN_PASSWORDOPENAI_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-cloudflareCF_TUNNEL_TOKENCF_API_TOKEN
  • 02-databasePOSTGRES_PASSWORDREDIS_PASSWORD
  • 03-nextcloudDB_PASSWORDADMIN_PASSWORD
  • 06-aiOPENAI_API_KEYGEMINI_API_KEY
  • 07-ociSMTP_PASSWORD

部署順序可先建立 Infisical,再逐步把 Cloudflare Token、PostgreSQL 密碼、各 stack 的 .env 移入,最後讓 github-actions 直接讀取 Infisical,並刪除所有明文 .env

總結

對於使用 docker-compose、GitOps 與多個 AI 服務的 Homelab 或小型團隊,Secrets Management 不再是選配。Infisical 提供了兼具易用性與安全性的方案,能大幅降低機密外洩風險。若需要更高階的動態憑證與企業治理,hashicorp-vault 仍是強大選擇。相關操作可參考 log 與 index 中的實際部署記錄。

Sources

See Also