9.4 KiB
9.4 KiB
IwoooS SSH / network / firewall post-incident readback plan
| 項目 | 內容 |
|---|---|
| 日期 | 2026-06-15 |
| 狀態 | post_incident_readback_plan_ready_no_runtime_action |
| 工具 | scripts/security/ssh-network-post-incident-readback-plan.py |
| Snapshot | docs/security/ssh-network-post-incident-readback-plan.snapshot.json |
| Source acceptance | docs/security/port-firewall-change-evidence-acceptance.snapshot.json |
| runtime gate | 0 |
1. 目的
本文件承接端口 / 防火牆變更證據驗收帳本,補上事故後回讀計畫。未來若再次發生端口被關、firewall / NetworkPolicy / NodePort / WireGuard policy 被改動、deploy SSH 斷線、AI provider route 異常、public route 或 monitoring 路徑受影響,IwoooS 必須先收齊「誰改、何時改、改前改後狀態、影響哪些服務、是否同步相關產品、怎麼恢復、怎麼防再發」的脫敏證據。
這不是 SSH 授權、不是 live firewall read、不是 firewall / port change、不是 route smoke、不是 host restart,也不是 runtime gate。它只建立 post-incident readback 的欄位、reviewer checks、分流與拒收條件,避免把「服務後來恢復」誤判成「事故原因、責任、影響與防再發都已驗收」。
2. 摘要
| 指標 | 目前值 | 說明 |
|---|---|---|
| readback candidate | 14 |
承接端口 / 防火牆 / NodePort / NetworkPolicy / WireGuard / deploy SSH / sudo / alert action surface |
| write-capable readback candidate | 6 |
可能影響 deploy SSH、monitoring deploy、sudoers 或 alert action catalog 的 surface |
| policy / exposure readback candidate | 5 |
NetworkPolicy、NodePort、WireGuard 與 exposure 相關 surface |
| health impact review required | 14 |
全部都必須交代 service / AI provider / monitoring / product impact |
| cross-project sync required | 14 |
全部都必須交代跨產品 / owner / Session 同步 ref |
| recurrence guard required | 14 |
全部都必須提出防再發 guard 或 change freeze rule |
| readback field | 30 |
readback 欄位總數 |
| required readback field | 24 |
owner / reviewer 必填欄位 |
| reviewer check | 24 |
actor、before / after、health impact、通知、同步、恢復、防再發與 no-false-green 檢查 |
| outcome lane | 10 |
waiting、補 actor、補 before-after、補 health impact、隔離、拒收、review、ledger-only、防再發回補、runtime gate |
| blocked action | 34 |
SSH、firewall、port、route smoke、reload、restart、secret、active scan、provider switch、prompt send、production write 等 |
| post-incident readback received / accepted | 0 / 0 |
尚未收到或驗收 |
| no-false-green accepted | 0 |
不把 route 200、service up 或 UI 可見當事故驗收 |
| runtime gate / action button | 0 / 0 |
不提供操作入口 |
3. Readback Candidate 範圍
| Candidate | 驗收焦點 |
|---|---|
ssh_network_post_incident_readback:ansible_inventory_ssh_targets |
主機存取異動、端口影響、維護窗口、rollback 與 post-check |
ssh_network_post_incident_readback:gitea_cd_deploy_ssh |
deploy SSH 可達性、回復證據、rollback owner 與跨專案通知 |
ssh_network_post_incident_readback:gitea_cd_dev_ssh |
dev / prod 邊界、端口 policy、owner decision 與防再發 |
ssh_network_post_incident_readback:deploy_alerts_ssh_path |
alert deploy path、通知鏈路、受影響產品與恢復 readback |
ssh_network_post_incident_readback:monitoring_discover_docker_ssh |
monitoring discovery 可達性、read-only window 與 false-green 風險 |
ssh_network_post_incident_readback:monitoring_exporter_deploy_ssh |
exporter deploy access、firewall owner、post-check 與 rollback |
ssh_network_post_incident_readback:backup_config_ssh_capture |
backup access、restore validation、service dependency 與 notification |
ssh_network_post_incident_readback:host_ops_sudoers_wrapper |
sudo 授權邊界、break-glass、回復責任與 forbidden command proof |
ssh_network_post_incident_readback:k8s_prod_network_policy |
ingress / egress policy、route impact、metrics / alert 與回滾 |
ssh_network_post_incident_readback:argocd_metrics_network_policy |
metrics scrape、NodePort exposure、source whitelist 與 monitoring impact |
ssh_network_post_incident_readback:argocd_metrics_nodeport |
NodePort exposure、firewall owner、rollback 與 public/admin route 影響 |
ssh_network_post_incident_readback:velero_metrics_nodeport |
backup metrics exposure、access policy 與 restore readiness 影響 |
ssh_network_post_incident_readback:wireguard_mesh_runbook |
mesh cutover、firewall rule owner、canary / rollback 與 maintenance window |
ssh_network_post_incident_readback:alert_rules_ssh_actions |
alert action catalog、read/write/admin 分級、cooldown 與 post-check |
4. 必填 Readback 欄位
change_or_incident_refactor_attribution_refincident_detected_at_refchange_window_refaffected_port_or_policy_refbefore_state_refafter_state_refservice_dependency_refpublic_route_impact_refai_provider_impact_refmonitoring_alert_impact_refcustomer_or_product_impact_refoperator_notification_refcross_project_sync_refrestoration_evidence_refpostcheck_readback_refrecurrence_guard_refmaintenance_windowrollback_ownerfollowup_ownerredacted_evidence_refsno_secret_value_attestationno_raw_firewall_dump_attestationno_false_green_attestation
5. Reviewer Checks
source_change_evidence_currentincident_ref_presentactor_not_anonymousbefore_after_state_presentport_policy_redactedservice_dependency_presentpublic_route_impact_presentai_provider_impact_presentmonitoring_alert_impact_presentcustomer_product_impact_presentoperator_notification_presentcross_project_sync_presentrestoration_evidence_presentpostcheck_independentrecurrence_guard_presentemergency_classification_presentmaintenance_window_presentrollback_owner_presentno_false_green_route_200raw_firewall_dump_absentsecret_or_key_value_absenthidden_impact_absentcounts_transition_saferuntime_stays_zero
6. Outcome Lanes
| Lane | 說明 |
|---|---|
waiting_post_incident_readback |
尚未收到事故回讀包;所有 accepted / runtime count 維持 0 |
request_actor_supplement |
缺 actor / owner / decision 時要求補件 |
request_before_after_supplement |
缺 before / after 或 restoration evidence 時要求補件 |
request_health_impact_supplement |
缺 service / AI provider / monitoring / product impact 時要求補件 |
quarantine_raw_payload |
收到 raw firewall dump、secret 或 key material 時只能隔離 |
reject_unattributed_incident |
無 actor、無 affected scope、無 rollback 或無 notification 的事故回讀不得驗收 |
ready_for_post_incident_review |
metadata 合格後,只能進 reviewer review |
incident_readback_only_update |
只允許更新只讀 ledger,不得反向視為已批准操作 |
recurrence_guard_backfill_required |
需補防再發 guard、owner review 與 change freeze |
waiting_runtime_gate |
即使 readback accepted,runtime gate 仍需獨立人工批准 |
7. 禁止動作
ssh_readssh_writelive_firewall_readfirewall_changeport_changeport_closeport_opennetwork_policy_applynodeport_changewireguard_changesudo_actiondeploy_ssh_actionroute_smokepublic_gateway_reloadnginx_reloadhost_restartdocker_restartsystemd_restartsecret_value_collectionssh_key_collectionraw_firewall_dump_storageraw_key_material_storagemark_readback_accepted_without_reviewer_recordmark_incident_resolved_without_postcheckhide_cross_project_impacttreat_route_200_as_all_greentreat_break_glass_as_approvalclose_management_port_without_owneropen_runtime_gateadd_action_buttonproduction_writeactive_scanprovider_switchprompt_send
8. 指令
產生 committed snapshot:
python3 scripts/security/ssh-network-post-incident-readback-plan.py \
--root . \
--source-change-evidence-report docs/security/port-firewall-change-evidence-acceptance.snapshot.json \
--output docs/security/ssh-network-post-incident-readback-plan.snapshot.json \
--generated-at 2026-06-15T19:16:00+08:00
驗證 guard:
python3 scripts/security/security-mirror-progress-guard.py --root .
9. 完成度
| 工作 | 完成度 | 說明 |
|---|---|---|
| post-incident readback plan artifact | 100% |
14 份候選、snapshot、文件與 guard 已固定 |
| post-incident readback received / accepted | 0% |
尚未收到,尚未驗收 |
| actor / before-after / impact evidence | 0% |
尚未收到 owner-provided evidence |
| service / AI provider / monitoring impact | 0% |
尚未收到脫敏 impact refs |
| cross-project sync / notification evidence | 0% |
尚未收到同步與通知證據 |
| recurrence guard / no-false-green accepted | 0% |
尚未驗收防再發或 no-false-green |
| SSH / firewall / port / route / restart action | 0% |
未授權且未執行 |
| runtime gate / production write | 0% |
未授權且未執行 |