Files
awoooi/docs/security/BACKUP-RESTORE-OWNER-RESPONSE-ACCEPTANCE.md
Your Name 0359020212
All checks were successful
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / tests (push) Successful in 1m37s
CD Pipeline / build-and-deploy (push) Successful in 4m47s
CD Pipeline / post-deploy-checks (push) Successful in 1m30s
feat(iwooos): 強化備份復原金庫回補 gate
2026-06-15 15:22:30 +08:00

9.8 KiB
Raw Permalink Blame History

IwoooS Backup / Restore / Escrow Owner Response Acceptance 只讀帳本

項目 內容
日期 2026-06-15
狀態 owner_response_acceptance_ledger_ready_no_runtime_action
工具 scripts/security/backup-restore-owner-response-acceptance.py
Snapshot docs/security/backup-restore-owner-response-acceptance.snapshot.json
來源 backup-restore-escrow-inventory.snapshot.jsonbackup-restore-owner-request-draft.snapshot.json
runtime gate 0

1. 目的

本文件把 Backup / Restore / Escrow repo-only 清冊與 owner request draft 串成 owner response acceptance 只讀帳本。目的不是執行備份、還原、offsite sync 或 retention change而是固定未來 owner 回覆要如何被 reviewer 收件、補件、隔離、拒收或進入 restore / retention review。

本階段不執行 backup、不 restore、不跑 restore drill、不 rclone sync、不 remote delete、不寫 credential escrow marker、不改 retention、不 restic prune、不改 rclone config、不跑 Velero restore / backup、不 kubectl、不 SSH、不收 secret value、不寫 host、不 active scan、不開 action button。

2. 摘要

指標 目前值 說明
source surface 38 來自 backup / restore / escrow 清冊
source request draft 38 承接 owner request draft
acceptance candidate 38 每個 surface 一份候選
write-capable acceptance candidate 27 涉及 backup、restore、offsite、escrow、retention、Velero、health exporter 等
live evidence required candidate 38 全部都需 owner-provided redacted evidence
acceptance field 33 每份 acceptance candidate 固定欄位數
required owner field 23 承接 owner request draft並追加 restore recovery / freshness / remote delete / retention / no-false-green 欄位
reviewer check 22 reviewer 收件前必檢項
outcome lane 9 等待、隔離、拒收、補件、review、只讀更新、restore 回補、remote delete / retention review、等待 runtime gate
blocked action 31 驗收前全部禁止
owner response received / accepted 0 / 0 不得假性拉高
backup / restore / offsite / retention 0 未授權且未執行
runtime gate / action button 0 / 0 不開任何執行入口

3. Owner 必填欄位

欄位 說明
owner_role_or_team Backup / restore / offsite / escrow / retention owner role 或 team
decision 對本 surface 的回覆判定
decision_reason 決策理由,不得包含機敏值
affected_scope 受影響服務、資料範圍、backup set、restore target 或 offsite scope
redacted_evidence_refs 文件、hash、ticket、commit 或脫敏 artifact pointer
latest_backup_status_ref 最新備份狀態 ref不得讀 live backup store
restore_drill_plan restore drill 計畫或 approval package不代表已授權
offsite_sync_evidence_ref offsite sync evidence ref不得包含 raw listing 或 secret path
credential_escrow_evidence_ref credential escrow metadata / marker ref不得包含 value
freshness_slo_ref 備份 freshness SLO / RPO ref不得只用 latest 字樣取代
restore_target_isolation_ref restore drill 隔離目標或 no-production-write 邊界
backup_dependency_map_ref 資料庫、物件儲存、repo、配置、憑證與告警復原依賴圖
data_classification_ref 備份集資料分級;不得要求 raw customer data、payload 或 unredacted listing
remote_delete_guard_ref offsite sync / latest-only policy 的 remote delete guard 與 owner ref
retention_runway_ref retention / prune 的可恢復窗口、runway 與撤回條件
restore_observer_stop_condition_ref restore drill observer、stop condition 與 rollback owner
credential_recovery_drill_ref credential recovery non-secret proof / evidence id不得包含 value、hash、seed 或 recovery code
backup_health_no_false_green_ref backup health / textfile / alert no-false-green review ref
maintenance_window 維護窗口或禁止窗口
rollback_owner rollback / stop owner 與撤回條件
validation_plan restore、freshness、checksum、alert、post-check plan
retention_owner retention / prune owner
followup_owner 補件、隔離、拒收或下一步 review owner

4. Reviewer Checks

Check 規則
owner_identity_present owner role / team 必須可追溯
decision_reason_present decision 與 decision reason 必須同時存在
affected_scope_matches_surface affected scope 必須能對回 committed surface_id
redacted_refs_only evidence 只能是脫敏 ref、hash、ticket、commit 或 artifact pointer
secret_value_absent 不得出現 token、private key、seed、rclone config、kubeconfig 或 credential derivative
backup_status_ref_shape latest backup status 只能是 owner-provided redacted ref
restore_drill_plan_present restore drill 必須是 plan / approval package不得是執行請求
offsite_sync_ref_not_payload offsite sync evidence 只能是 ref
credential_escrow_metadata_only credential escrow 只能是 metadata / marker ref
retention_owner_present retention owner 與 retention decision 必須可追溯
maintenance_window_present 未來 backup / restore / prune / sync 都必須另有維護窗口
rollback_owner_present rollback owner 與 rollback ref 必須存在
counts_transition_safe 只有 reviewer record 可更新 received / accepted / rejected不得同時開 runtime gate
freshness_slo_present 必須有備份 freshness SLO / RPO ref
restore_target_isolation_present restore drill 必須有隔離目標或 no-production-write 邊界
backup_dependency_map_present 必須列出 DB、物件儲存、repo、配置、憑證與告警復原依賴圖
data_classification_present 必須標示備份集資料分級;不得要求 raw payload
remote_delete_guard_present offsite sync / latest-only policy 必須有 remote delete guard
retention_runway_present retention / prune 必須有可恢復窗口、runway 與撤回條件
restore_observer_stop_condition_present restore drill 必須有 observer、stop condition 與 rollback owner
credential_recovery_drill_metadata_only credential recovery 只能收 non-secret proof / evidence id
backup_health_no_false_green_reviewed backup health / textfile / alert evidence 必須防止 false-green

5. Outcome Lanes

Lane 意義
waiting_owner_response 尚未收到 owner response所有 accepted / runtime count 維持 0
quarantine_raw_payload 收到 raw backup listing、secret、rclone config 或不可保存內容時只能隔離
reject_secret_or_credential_value 出現 secret value、credential derivative 或未脫敏 payload 時直接拒收
request_supplement 欄位不足、scope 不清、restore / retention owner 缺失時要求補件
ready_for_restore_review metadata 合格後,只能進 restore / retention reviewer review
owner_review_only_update 只允許更新只讀 owner review ledger
restore_recovery_backfill_required restore / cold-start / incident recovery 資料不足時只要求補件
remote_delete_retention_review_required offsite remote delete、latest-only 與 restic prune 必須進 retention reviewer review
waiting_runtime_gate 即使 owner response acceptedruntime gate 仍等待獨立人工批准

6. Blocked Actions

backup_run
restore_run
restore_drill
offsite_sync
offsite_remote_delete
credential_escrow_marker_write
retention_change
restic_prune
rclone_config
velero_restore
velero_backup
kubectl_action
ssh_read
ssh_write
secret_value_collection
host_write
active_scan
runtime_gate_open
raw_backup_payload_storage
accept_secret_value_evidence
mark_owner_response_accepted_without_reviewer_record
accept_backup_without_freshness_slo
accept_restore_without_isolated_target
accept_offsite_without_remote_delete_guard
accept_retention_without_runway
accept_credential_recovery_without_non_secret_proof
accept_backup_health_false_green
skip_dependency_map_review
skip_data_classification_review
store_raw_restore_payload
add_action_button

7. 指令

固定 committed snapshot

python3 scripts/security/backup-restore-owner-response-acceptance.py \
  --root . \
  --output docs/security/backup-restore-owner-response-acceptance.snapshot.json \
  --generated-at 2026-06-15T15:35:00+08:00

只讀 guard

python3 scripts/security/security-mirror-progress-guard.py --root .
python3 scripts/security/source-control-owner-response-guard.py --root .

8. 完成度

工作 完成度 說明
owner response acceptance ledger artifact 100% 38 個 surface 已有只讀收件判定帳本
owner response received / accepted 0% 尚未收到或接受任何 owner response
live backup / offsite / escrow evidence 0% 未讀 live backup、offsite 或 credential escrow
backup / restore / offsite / retention 0% 未授權且未執行
secret / host / production write 0% 未收 secret、未寫 host
runtime gate / production write 0% 無 action button無 production write

9. 邊界

這份帳本不是 live backup truth、不是 restore drill approval、不是 offsite sync approval、不是 credential escrow marker approval、不是 retention approval也不是 backup / restore / Velero / rclone / SSH / kubectl / host write 授權。不得把 owner response acceptance ledger、snapshot、LOGBOOK、IwoooS UI 或 AwoooP approval 解讀成可以執行 backup、restore、offsite sync、remote delete、retention change、secret collection、active scan、production write 或 runtime gate。