Apply the approved Implementation Baseline 1.1 architecture revisions onto the current mainline, verified faithful to the delivered change bundle: - Add aios_baseline: signed owner-delegation-grant.v1 / operational-epoch.v1 / task-principal.v1 auth chain, runtime contract + deployment-truth evaluator, declarative operation registry (effect-class + fail-closed dispatch), lineage ledger, release/recipe/saga ledger, bounded optimization controller, authenticated HTTP transport, resident worker loop and systemd host probe. - Extend existing Job authority (aios_gitops_job_controller/executor) with durable intent/receipt/reconcile and fail-closed admission; harden task_plane/store heartbeat CAS and terminal-state fencing; make reconciliation_controller fail-closed on incomplete/drift evidence. - Add isolated-validation profile templates (deploy/baseline-v1.1, systemd .example), source change/rollback tooling (tools/baseline_v1_1), the AT-01..AT-23 acceptance matrix, M0-M5 runbook, installation/rollback docs and the baseline_v1_1 test suite. - Keep legacy write authorities untouched; isolated-validation profile only. Staged blobs verified byte-identical to the delivered source-changes bundle. Cross-platform baseline tests pass; systemd/fcntl-dependent paths require the declared Linux x86_64 + CPython 3.12 + systemd runtime (site-bound).
2.6 KiB
Validation 实例的凭证边界
本目录的 .service.example 是候选验证实例模板。它们不自动安装,不替换现有 Task 权威,也不支持 production profile。先按 docs/implementation-baseline-1.1/INSTALLATION.md 完成离线验证,并由安装者将 @RELEASE_ROOT@ 替换为确定的、只读的发行目录,并将 @PYTHON_EXECUTABLE@ 绑定到已验收的独立虚拟环境 Python 绝对路径。
服务端账户为 aios-baseline;Worker 账户为 aios-baseline-worker。Worker 不获得机器签名私钥、Owner 私钥、服务端 token 清单或服务端数据库读取权。Worker 的 transport token 仅映射到已注册 Worker 身份;它不能自行声明租户、用户或权限。
| 消费者 | 凭证名 | 用途 |
|---|---|---|
| validation API | aios-baseline-machine-key |
已安装的短期执行证明和 operation receipt 签名身份 |
| validation API | aios-baseline-user-token |
验证配置中一位用户的 transport token;实际多用户要逐个绑定可信身份 |
| validation API | aios-baseline-worker-token |
验证 Worker 的 transport token |
| validation Worker | aios-baseline-worker-token |
仅用于连接本机 API |
每个 unit 使用自己的 LoadCredentialEncrypted= 从稳定的 /etc/credstore.encrypted/ 来源投影。两个服务可以获得同一个受治理 token 的独立投影,但任何服务都不读取另一服务的 /run/credentials/<unit>/。加密凭证名称与 LoadCredentialEncrypted 左侧名称必须一致,避免更名导致解密身份校验失败。
JSON 中仅允许以 ${CREDENTIALS_DIRECTORY}/<name> 引用自己的投影目录;不要写入 token、签名私钥或跨服务路径。Owner 公钥和 Runtime Contract 是受治理配置;Owner 私钥留在既有签发边界,不交给 API 或 Worker。凭证缺失时服务启动或操作准入必须失败,不能临时新建信任根或借用其他服务的运行目录。
本包不提供生成生产信任根的脚本。测试在临时目录生成测试专用密钥;它们不能用于真实部署。实际安装前还要确认当前主机 systemd 支持这些加固项和 encrypted credential,并对已渲染 unit 运行 systemd-analyze verify。本地模板静态检查不能代替实际服务重启、token 轮换及读取权限验收。
service-status 使用固定 /usr/bin/systemctl show 参数和可信 unit 映射,只读取注册组件状态。若目标主机限制状态读取,应对该命名 operation 配置最小读取权限;不要改成以 root 运行 API,也不要开放任意命令或 SSH。