108 lines
2.2 KiB
Markdown
108 lines
2.2 KiB
Markdown
# 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;
|
||
- 外部不可变审计;
|
||
- 多签审批;
|
||
- 硬件密钥认证。
|