# IwoooS 高價值配置變更 Gate | 項目 | 內容 | |------|------| | 日期 | 2026-06-11 | | 狀態 | `classification_gate_ready` | | 工具 | `scripts/security/high-value-config-change-gate.py` | | Snapshot | `docs/security/high-value-config-change-gate.snapshot.json` | | runtime gate | `0` | ## 1. 目的 此 Gate 將「所有重要配置都要被控管」落成可重跑的只讀分類流程。它會讀取 git diff 或手動指定檔案,判斷是否碰到 C0 / C1 / C2 / C3 高價值配置,並列出後續 owner response、rollback、redacted evidence 與驗證需求。 本階段是低摩擦分類 Gate,不接 CI blocking,不修改 workflow、不讀 secret value、不 SSH、不 reload、不部署、不開 runtime gate。 ## 2. 納管配置 | 優先 | 等級 | 配置類別 | |------|------|----------| | P0 | C0 | Nginx / reverse proxy / public route | | P0 | C0 | DNS / TLS / certbot / certificate path | | P0 | C0 | K8s / ArgoCD / production manifests | | P0 | C0 | Secret metadata / injection / redaction | | P0 | C0 | Gitea workflow / runner / deploy key / webhook / branch protection | | P0 | C0 | Public / admin / API / frontend runtime config | | P0 | C0 | Backup / restore / escrow / retention | | P0 | C0 | `agent-bounty-protocol` runtime / MCP / A2A / treasury boundary | | P1 | C1 | Prometheus / Alertmanager / Grafana / SigNoz / Sentry / Langfuse | | P1 | C1 | Docker Compose / systemd / host service config | | P1 | C1 | SSH / sudoers / known_hosts / firewall / WireGuard / NodePort | | P1 | C1 | AI provider / model routing / Ollama proxy / cost and privacy | | P2 | C2 | AWOOOI / AwoooP / IwoooS / VibeWork / other product runtime routes | | P3 | C3 | Security evidence / snapshot / guard tooling | ## 3. 指令 檢查目前 commit 相對前一個 commit: ```bash python3 scripts/security/high-value-config-change-gate.py \ --root . \ --base HEAD~1 \ --head HEAD ``` 手動分類單一檔案: ```bash python3 scripts/security/high-value-config-change-gate.py \ --root . \ --changed-file infra/ansible/roles/nginx/templates/188-all-sites.conf.j2 ``` 更新 committed snapshot: ```bash python3 scripts/security/high-value-config-change-gate.py \ --root . \ --base HEAD~1 \ --head HEAD \ --generated-at 2026-06-11T12:30:00+08:00 \ --output docs/security/high-value-config-change-gate.snapshot.json ``` 未來若要升級成更嚴格的人工審核,可提供 owner response evidence JSON: ```bash python3 scripts/security/high-value-config-change-gate.py \ --root . \ --base gitea/main \ --head HEAD \ --evidence /path/to/redacted-owner-response.json \ --fail-on-missing-evidence ``` ## 4. owner response 欄位 所有 C0 / C1 高價值配置變更至少要補: 1. `owner_role_or_team` 2. `decision` 3. `decision_reason` 4. `affected_scope` 5. `redacted_evidence_refs` 6. `followup_owner` 7. `rollback_owner` 8. `maintenance_window` 9. `validation_plan` 這些欄位只是讓 reviewer 可以判斷,不等同 runtime 授權。 ## 5. 必須維持 false | flag | 要求 | |------|------| | `runtime_execution_authorized` | `false` | | `host_write_authorized` | `false` | | `secret_value_collection_allowed` | `false` | | `workflow_modification_authorized` | `false` | | `runner_change_authorized` | `false` | | `refs_sync_authorized` | `false` | | `force_push_authorized` | `false` | | `active_scan_authorized` | `false` | | `action_buttons_allowed` | `false` | ## 6. 判讀規則 | 狀態 | 意義 | 可做事項 | |------|------|----------| | `impacted_c0_category_count > 0` | 變更碰到公開入口、secret、部署、備份、agent runtime 等最高風險配置 | 先建立 owner response packet;不可直接 reload、deploy、sync 或修改主機 | | `impacted_c1_category_count > 0` | 變更碰到監控、主機服務、網路、AI provider 等近程高風險配置 | 建立 maintenance window、rollback owner 與驗證計畫 | | 只有 C2 | 產品 runtime route 或前端呈現變更 | 需要產品 owner、i18n、desktop / mobile smoke | | 只有 C3 | 文件、snapshot、guard 或 evidence tooling | 跑 guard、JSON parse、doc secret sanity;不可提高 runtime gate | ## 7. 邊界 1. 本工具不接 CI blocking。 2. 本工具不修改 `.gitea/workflows`。 3. 本工具不讀 secret value、hash、partial token、private key、runner token 或 webhook secret。 4. 本工具不 SSH、不執行 `nginx -t`、不 reload / restart。 5. 本工具不做 DNS 修改、TLS renew、ArgoCD sync、kubectl、active scan 或 agent-bounty runtime execution。 6. IwoooS UI 可顯示分類結果,但不得把分類結果當 runtime 授權。 ## 8. 完成度 | 工作 | 完成度 | 說明 | |------|--------|------| | 高價值配置 path pattern 分類 | `100%` | 已覆蓋 Nginx、DNS / TLS、K8s、secret、workflow、runner、backup、monitoring、host service、network、AI provider、agent-bounty-protocol 與產品 route | | owner response 欄位檢查 | `70%` | 支援 evidence JSON 欄位與 false flag 檢查;尚未接正式收件 API | | CI blocking | `0%` | 本階段刻意不接,避免初期摩擦過大 | | live runtime 驗證 | `0%` | 本工具只分類,不執行 live probe |