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
61 lines
3.9 KiB
Markdown
61 lines
3.9 KiB
Markdown
# 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 代替。
|