OG T
|
2d43751729
|
feat(ops): ADR-090-B 零信任收尾範本 — wrapper / sudoers / migrator / CI
CD Pipeline / build-and-deploy (push) Successful in 12m17s
run-migration / migrate (push) Failing after 14s
2026-04-18 台北時區 —— ogt + Claude Opus 4.7 (1M)
本 commit 響應本 Session 兩次憑證外洩事故
(feedback_secrets_leak_incidents_2026-04-18.md),
交付統帥可直接部署的零信任基礎設施範本.
檔案清單:
1. scripts/host-ops/awoooi-hosts-add.sh
- 110 主機 /etc/hosts 白名單 wrapper
- 只允許預定義主機名,idempotent,帶 IP 格式驗證
- 安裝: /usr/local/bin/awoooi-hosts-add (root:root 0755)
2. scripts/host-ops/awoooi-wrapper.sudoers
- 配套 sudoers 規則 (NOPASSWD for wrapper + SIGHUP only)
- 安裝: /etc/sudoers.d/awoooi-wrapper (root:root 0440)
- 禁 tee / bash / sh 這類 generic shell access
3. apps/api/migrations/adr090b_awoooi_migrator_role.sql
- PG 限權角色 awoooi_migrator
- 只能 DDL (CREATE/ALTER/DROP/INDEX/COMMENT)
- 明確 REVOKE 所有 DML + default privileges 鎖死
- 本檔由統帥執行 (需 superuser),不由 Claude 執行
4. k8s/awoooi-prod/awoooi-migrator-secret.template.yaml
- K8s Secret patch 範本
- 新增 MIGRATION_DATABASE_URL key (awoooi_migrator 連線串)
- 與應用 DATABASE_URL 拆開
5. .gitea/workflows/run-migration.yml
- CI 自動套用新 migration (單 transaction + ON_ERROR_STOP)
- 用 Gitea secret MIGRATION_DATABASE_URL,不走明碼
- 每次成功寫一筆 asset_discovery_run (audit trail)
零信任三層防線 (對應 feedback_secrets_leak_incidents):
L1 對話無密碼 -> wrapper 內建白名單
L2 操作經 wrapper -> sudoers + awoooi_migrator
L3 顯示強制遮蔽 -> CI 走 secret,不走 env
本 Session 發現的 3 次憑證外洩全部在 feedback_secrets_leak
memory 登記,並有對應 P0 輪替計畫.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-18 13:23:39 +08:00 |
|