P3_WP07_ENTERPRISE_DELIVERY_EVIDENCE.md 4.9 KB

P3-WP07 企业生产交付与恢复验证证据

验证日期:2026-08-13

本地工程验证

  • tests/test_phase3_wp07_enterprise_delivery_contract.py:17 项通过;与直接受影响的 P2-WP11/P3-WP04 离线、运行时与 Compose 合同合计 151 项通过。覆盖真实 Helm Service、 hook 顺序、digest 镜像、Secret 引用、runtime/migrator 分离、安全上下文、探针、PDB、 拓扑、最小 NetworkPolicy、实际 artifact/SBOM/扫描/许可证/Ed25519 签名重验、相邻晋级、 CAS、回滚、symlink/hardlink/读间替换拒绝、备份签名/checksum/加密和兼容矩阵重算。
  • 企业签名 provider 默认 disabled;唯一信任根为版本化受控 deployment/enterprise/trust_store.json。 provider/key-id/Ed25519 公钥与 trust-root 均只从该 registry 读取,candidate CLI/evidence 不再携带 或新增公钥/信任根。dynamic Ed25519 自签 external、未批准 key-id、过期或 provider/key-id/artifact/ SBOM 不一致的 scan/license/signature 均拒绝;fake_local_only 仅在显式 test-only 本地合同中允许。
  • 所有 candidate evidence 均经固定目录 FD、O_NOFOLLOW、打开前后 fstat 与单链接检查后一次读入内存; 解析、哈希、签名、时限、provider 和 artifact/SBOM 绑定均使用同一字节。路径替换、符号链接、硬链接 和符号链接父目录攻击的负测均通过。
  • 兼容性命令强制提供绑定实际 base/candidate/rollback artifact 与 SBOM component identity 的三份合同清单; 比较 OpenAPI 操作保留、配置 required 项、migration chain 的前缀/顺序、Chart/values digest、rollback exact target。完全不同但各自合法 SBOM 的 artifact 在无绑定批准时拒绝,不会写入 verified
  • 当 artifact/SBOM 发生变化时,compatibility approval 还必须由 registry 的预批准 external signer 对 release pair、合同 digest 与 approval ref 验签;任意自编 JSON(包括字段齐全的 caller approval) 均拒绝。当前 external provider 默认 disabled,因此本地不会伪造企业批准。
  • production external backup/restore 必须同时满足预批准 KMS key reference、registry signer 和绑定 encryption/signature payload;缺少其中任一项 fail-closed。清单不再内嵌公钥或 trust root,fake 只接受显式 --test-only 非生产测试。restore target 采用持久一次性记录,重复请求拒绝。
  • approval 有效期采用 UTC RFC3339,带最多 5 分钟未来时钟偏差和 24 小时上限;签名覆盖 issued_at/expires_at 及完整 release/contract binding。过期但签名有效的受控 external approval 仍拒绝。restore 则先精确比较 manifest 与 integrity signature 的 provider/key-id,再由对应 registry key 验签,因此同一 registry 中 key-b 对 key-a manifest 的重签也拒绝。
  • 与既有离线交付直接相关的 tests/test_p2_wp11_delivery_contract.py:7 项通过;离线包已含 Helm chart 和企业交付控制 CLI,且固定输入归档可复现。
  • 运行 package_offline.sh --skip-images 成功生成临时离线归档并立即清理;归档包含 helm/dataops-platform/enterprise/enterprise_delivery.py
  • Chart 的真实模板包含 backend/runner Service(selector 与 targetPort 闭合)、hook 专用 ServiceAccount/Role/RoleBinding(-40/-39/-38)→role-init(-20)→db-migrate(-10)的 Helm pre-install/pre-upgrade 成功门禁。hook NetworkPolicy 以 -30 在两个 Job 前创建,并使用 before-hook-creation 保留至下次 hook 创建;以及默认拒绝基础上的 hook DNS/PostgreSQL、runtime DNS/PostgreSQL/Neo4j/MinIO/内部服务和受控 backend ingress;不含任意 egress。
  • 本机没有 helm 二进制或已缓存 Helm 镜像,且未联网安装;因此未声称 Helm lint/template 通过,改由 Chart 静态模板、values JSON Schema 与合同测试检查语义。
  • Python 编译、JSON 解析、Bash 语法、Ruff、git diff --check、发布副本、Compose 配置、离线包 内容均在本地受影响范围通过;解包后未发现 PEM 私钥。Compose 中既有 ${...:-...test...} 本地测试 默认值仍会被宽松凭据正则命中,未改动且不作为 WP07 新增 secret。

本地结论

状态:ENGINEERING_COMPLETE_ENTERPRISE_INFRASTRUCTURE_UAT_BLOCKED

本轮证据是本地工程合同,不等价于 Kubernetes/OpenShift 实施、企业制品库推送或真实签名、 多节点高可用、自动区域故障转移、企业 SLA 或批准的恢复指标达成。

尚待企业 UAT 的外部条件

  • Kubernetes/OpenShift、网络策略、负载均衡和故障域拓扑;
  • 企业制品库、签名证书、SBOM/漏洞/许可证扫描结果;
  • 已批准 SLA、RTO/RPO、变更窗口和客户恢复演练签字;
  • 加密密钥服务、异地备份介质、保留/法务保全及恢复执行证据。