Files
ai-contract-platform/project-docs/P1-07.6-isolated-real-cloud-UAT-readiness-2026-08-25.md
T
yuqei 1d85329a6a
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 9m12s
Build and Test Quality Gate / Isolated Alibaba and Tencent KMS gateway (pull_request) Failing after 4m53s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 24m55s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 8m42s
feat: deliver governed contract platform and async AI tasks
2026-08-26 12:53:47 +08:00

61 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P1-07.6 隔离真实云 UAT 就绪审查与执行方案
> 日期:2026-08-25
> 当前结论:工程能力已补齐;真实云演练尚未执行,不得标记为 UAT 通过
## 1. 本轮目标
在与开发/生产隔离的数据库、端口、卷和 Compose 项目中,同时接入:
1. 阿里云杭州地域 KMS;
2. 腾讯云广州地域 KMS;
3. 开启并锁定保留策略的阿里云 OSS WORM bucket;
4. 开启默认 COMPLIANCE 保留策略的腾讯云 COS Object Lock bucket;
5. 两名不同且真实存在的平台管理员;
6. 一份真实导出的可靠合同决策证据包。
验收覆盖双地域探针、双外部见证、审计凭证签发/轮换/撤销、自审拒绝、单地域中断、SLO 告警、人工接管和恢复。
## 2. 已交付工程能力
- 新增独立 `evidence-witness-gateway`,分别支持 OSS WORM 与 COS Object Lock;
- `/ready` 会实时读取 bucket 锁定模式、默认保留期和地域 KMS 见证公钥;锁未启用、模式错误、保留期不足或 KMS 不可用时失败关闭;
- 检查点使用确定性对象键和禁止覆盖条件写入,回执由独立地域 KMS 见证密钥签名;
- 修复“对象已成功写入、KMS 随后中断”场景:重试只在既有对象元数据摘要与检查点摘要完全一致时恢复,不会覆盖或接受不同对象;
- Contract API 多地域探针支持每个目标独立的 key ID、key version 和 algorithm,并核对网关返回的密钥身份;
- UAT Compose 可同时运行两套 KMS 网关和两套见证网关,Contract API 的最少见证数为 2;
- 一键执行器具备严格预检、真实 API 断言、精确故障注入、`finally` 恢复及脱敏 JSON 证据输出。
## 3. 当前环境核验结果
当前工作站未发现 Docker 可执行程序,也未发现可用于本轮演练的阿里云/腾讯云 KMS、OSS/COS、TLS 或见证公钥配置文件。配置仓库中只有带 `CHANGE_ME` 的安全模板。因此本轮没有启动伪造的“真实云”服务,也没有生成通过结论。
这不是代码阻塞;真实执行的外部前置条件如下:
- 一台安装 Docker Compose 的隔离 UAT 主机;
- 两家云的最小权限临时凭据;
- 两个不可变镜像摘要;
- 两组 KMS 网关 TLS 证书及 CA;
- 两组见证网关 TLS 证书、CA、Bearer 文件及已导出的见证公钥;
- 两个已锁定且默认保留期不少于 365 天的独立 bucket;
- 两名平台管理员 ID;
- 一份不含于源码仓库的真实证据包 JSON。
## 4. 强制验收断言
| 阶段 | 必须满足 |
|---|---|
| 预检 | 项目/卷/端口均为 UAT;镜像为 digest;无占位符;文件非空;管理员不同;三类 KMS key 职责分离 |
| 正常态 | 两个地域探针成功、地域和公钥指纹不同;两个见证均为 verified;法定数 2/2 |
| 凭证 | A 提议、A 自审返回 409、B 批准;v1 可鉴权;轮换后 v1 返回 401、v2 可鉴权;撤销后 v2 返回 401 |
| 故障态 | 只停止腾讯 KMS;腾讯探针失败、阿里探针成功;见证法定数降为 1/2;SLO 产生 handoff case |
| 恢复态 | 腾讯 KMS 与见证恢复;两个探针成功;同一检查点的 WORM 重试成功;法定数恢复 2/2 |
| 接管 | A 确认告警;B 接管并解决;事件账本包含 acknowledge、assign、resolve |
| 证据 | 报告无 Bearer、云凭据、证据包正文和合同正文,只保存 ID、状态、指纹、外部引用、错误码和时间 |
## 5. 放行标准
只有执行器以 `--execute` 运行且 JSON 报告顶层 `status=passed`,同时人工核对两家云控制台的 KMS 请求审计、bucket 锁定状态和对象版本后,才可把 P1-07.6 隔离 UAT 标为通过。预检报告、单元测试或本地 mock 均不能替代这一结论。
若腾讯 COS Object Lock 尚未开通,必须先完成云侧开通和 bucket 级锁定;不得临时将最少见证数改为 1,也不得以普通 COS bucket 代替。