Files
aios/docs/aios-v2/adr/ADR-007-run-provenance-control.md
T

108 lines
2.2 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.
# ADR-007:AIOS V2 Run Provenance 可信执行来源控制
- 状态:已采纳
- 日期:2026-07-20
- 影响范围:Runtime 执行、Evidence、GitOps、部署、回滚、审计
## 1. 背景
AIOS V2 在进入预生产阶段前,需要证明每一次高权限动作来源可信。仅依靠进程内 runId、sender 或任务字段无法证明:
- 谁授权了执行;
- 执行是否属于当前任务;
- Git、部署、回滚和 Evidence 写入是否经过批准;
- 是否存在重放或伪造运行记录。
## 2. 决策
引入 Run Provenance:
```text
Owner / Control Plane
|
v
Ed25519 Signed Provenance
|
v
Persistent Provenance Store
|
v
Controlled Writer
|
v
Runtime / GitOps / Deploy / Evidence / Rollback
```
## 3. 七类受保护路径
生产 Provenance 必须覆盖:
1. code_change
2. git_operation
3. deployment
4. runtime_execute
5. evidence_write
6. rollback
7. audit
任何未授权路径默认拒绝。
## 4. 安全规则
- 私钥只用于签发端。
- Runtime 只持有公钥验证能力。
- Provenance 使用 Ed25519 签名。
- 状态持久保存 issued、verified、used、expired、revoked。
- 相同 provenance/path/request_digest 不允许重复授权。
- Secret 不进入 Git、日志和 Evidence。
## 5. 实现映射
代码:
```text
active-runtime/app/aios_v2/provenance.py
active-runtime/app/aios_v2/provenance_git.py
active-runtime/app/aios_v2/provenance_operations.py
active-runtime/app/aios_v2/provenance_cli.py
```
接入:
```text
orchestrator.py
execution_tracking.py
app.py
```
## 6. 验收要求
必须验证:
- 签名正确执行;
- 篡改拒绝;
- 过期拒绝;
- revoke 拒绝;
- replay 拒绝;
- 无 Provenance Runtime Dispatch 拒绝;
- 无 Evidence 授权写入拒绝;
- 无 Git 授权操作拒绝;
- 无 Deployment/Rollback 授权拒绝。
## 7. 回滚
若 Provenance 服务异常:
- 不允许降级绕过安全检查进入生产;
- 候选环境可以在明确测试配置中关闭强制模式;
- 生产模式必须保持 AIOS_REQUIRE_RUN_PROVENANCE=true。
## 8. 后续演进
生产阶段可进一步接入:
- HSM/KMS;
- 外部不可变审计;
- 多签审批;
- 硬件密钥认证。