From 6246dbcfbce74bbc09937ac01e22025c796a5fa9 Mon Sep 17 00:00:00 2001 From: tradecatlabs <288998340+tradecatlabs@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:18:25 +0800 Subject: [PATCH] docs: architecture - add baseline enforcement policy --- docs/README.md | 2 +- docs/references/README.md | 4 +- ...modern-enterprise-architecture-template.md | 562 +++++++++++++----- 3 files changed, 400 insertions(+), 168 deletions(-) diff --git a/docs/README.md b/docs/README.md index f71b23b..7f7ec3d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -62,7 +62,7 @@ - [项目架构模板](./references/project-architecture-template.md) - 常见项目结构、架构设计原则、最低门禁和检查清单。 - [通用 Python 项目骨架](./references/python-project-skeleton.md) - Python 应用、服务、脚本工具和库项目的通用骨架。 - [企业级架构模板](./references/enterprise-architecture-template.md) - 中大型工程组织、平台工程和多产品线参考模型。 -- [现代企业数字化平台架构](./references/modern-enterprise-architecture-template.md) - 面向领域产品网络、微服务容器 GitOps 边界、AI 原生能力、微调治理、AI 事件响应、内部平台、数据产品、供应链安全、FinOps 成本治理、版本治理、版本控制面、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线发布证据、基线兼容性总账、基线采纳总账、基线支持矩阵、基线发布列车、基线符合性声明、外部标准版本锁定、可执行标准、执行控制面、门禁决策、RACI 决策权、可靠性分级、仓库拓扑、迁移弃用、审计证据、联邦治理和行业对标矩阵的完整说明文档。 +- [现代企业数字化平台架构](./references/modern-enterprise-architecture-template.md) - 面向领域产品网络、微服务容器 GitOps 边界、AI 原生能力、微调治理、AI 事件响应、内部平台、数据产品、供应链安全、FinOps 成本治理、版本治理、版本控制面、基线准入执行策略、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线发布证据、基线兼容性总账、基线采纳总账、基线支持矩阵、基线发布列车、基线符合性声明、外部标准版本锁定、可执行标准、执行控制面、门禁决策、RACI 决策权、可靠性分级、仓库拓扑、迁移弃用、审计证据、联邦治理和行业对标矩阵的完整说明文档。 - [Dataset First 数据服务](./references/dataset-first-data-service.md) - 数据服务模板。 - [代码组织](./references/code-organization.md) - 模块化、命名、注释、格式化、文档和工具。 - [开发经验](./references/development-experience.md) - 编码规范、架构原则和常见基础设施经验。 diff --git a/docs/references/README.md b/docs/references/README.md index 683feeb..60b0b0f 100644 --- a/docs/references/README.md +++ b/docs/references/README.md @@ -14,7 +14,7 @@ | [项目架构模板](project-architecture-template.md) | 常见项目结构、架构设计原则、最低门禁和检查清单。 | | [通用 Python 项目骨架](python-project-skeleton.md) | Python 应用、服务、脚本工具和库项目的通用骨架。 | | [企业级 Monorepo / Multi-repo 架构模板](enterprise-architecture-template.md) | 中大型工程组织、平台工程和多产品线参考模型。 | -| [现代企业数字化平台架构](modern-enterprise-architecture-template.md) | 面向领域产品网络、微服务容器 GitOps 边界、AI 原生能力、微调治理、AI 事件响应、内部平台、数据产品、供应链安全、FinOps 成本治理、版本治理、版本控制面、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线发布证据、基线兼容性总账、基线采纳总账、基线支持矩阵、基线发布列车、基线符合性声明、外部标准版本锁定、可执行标准、执行控制面、门禁决策、RACI 决策权、可靠性分级、仓库拓扑、迁移弃用、审计证据、联邦治理和行业对标矩阵的完整说明文档。 | +| [现代企业数字化平台架构](modern-enterprise-architecture-template.md) | 面向领域产品网络、微服务容器 GitOps 边界、AI 原生能力、微调治理、AI 事件响应、内部平台、数据产品、供应链安全、FinOps 成本治理、版本治理、版本控制面、基线准入执行策略、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线发布证据、基线兼容性总账、基线采纳总账、基线支持矩阵、基线发布列车、基线符合性声明、外部标准版本锁定、可执行标准、执行控制面、门禁决策、RACI 决策权、可靠性分级、仓库拓扑、迁移弃用、审计证据、联邦治理和行业对标矩阵的完整说明文档。 | | [Dataset First 数据服务结构](dataset-first-data-service.md) | 以 dataset、contract、registry、runtime 为核心的数据服务模板。 | | [代码组织](code-organization.md) | 模块化、命名、注释、格式化、文档和工具。 | | [开发经验](development-experience.md) | 变量名、文件结构、编码规范、架构原则和常见基础设施经验。 | @@ -33,7 +33,7 @@ - [项目架构模板](project-architecture-template.md) - 常见项目结构、架构设计原则、最低门禁和检查清单。 - [通用 Python 项目骨架](python-project-skeleton.md) - Python 应用、服务、脚本工具和库项目的通用骨架。 - [企业级 Monorepo / Multi-repo 架构模板](enterprise-architecture-template.md) - 中大型工程组织、平台工程和多产品线参考模型。 -- [现代企业数字化平台架构](modern-enterprise-architecture-template.md) - 面向领域产品网络、微服务容器 GitOps 边界、AI 原生能力、微调治理、AI 事件响应、内部平台、数据产品、供应链安全、FinOps 成本治理、版本治理、版本控制面、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线发布证据、基线兼容性总账、基线采纳总账、基线支持矩阵、基线发布列车、基线符合性声明、外部标准版本锁定、可执行标准、执行控制面、门禁决策、RACI 决策权、可靠性分级、仓库拓扑、迁移弃用、审计证据、联邦治理和行业对标矩阵的完整说明文档。 +- [现代企业数字化平台架构](modern-enterprise-architecture-template.md) - 面向领域产品网络、微服务容器 GitOps 边界、AI 原生能力、微调治理、AI 事件响应、内部平台、数据产品、供应链安全、FinOps 成本治理、版本治理、版本控制面、基线准入执行策略、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线发布证据、基线兼容性总账、基线采纳总账、基线支持矩阵、基线发布列车、基线符合性声明、外部标准版本锁定、可执行标准、执行控制面、门禁决策、RACI 决策权、可靠性分级、仓库拓扑、迁移弃用、审计证据、联邦治理和行业对标矩阵的完整说明文档。 - [Dataset First 数据服务结构](dataset-first-data-service.md) - 以 dataset、contract、registry、runtime 为核心的数据服务模板。 - [代码组织](code-organization.md) - 模块化、命名、注释、格式化、文档和工具。 - [开发经验](development-experience.md) - 变量名、文件结构、编码规范、架构原则和常见基础设施经验。 diff --git a/docs/references/modern-enterprise-architecture-template.md b/docs/references/modern-enterprise-architecture-template.md index 1718a16..29fc506 100644 --- a/docs/references/modern-enterprise-architecture-template.md +++ b/docs/references/modern-enterprise-architecture-template.md @@ -1,10 +1,10 @@ # 现代企业数字化平台架构说明文档 -**文档版本**:V2.50 +**文档版本**:V2.51 **适用对象**:企业管理层、产品负责人、架构师、研发负责人、数据负责人、平台团队、安全合规团队 **适用范围**:中大型企业数字化平台建设、业务系统重构、平台工程建设、数据产品化、组织协同机制设计 **文档定位**:本文件用于说明现代企业数字化平台的总体架构、核心组成、团队职责、治理机制、技术原则和落地路径。 -**专项修订**:V2.50 在 V2.49 基础上新增基线撤销与隔离记录,把错误发布、签名泄露、证据污染、远端保护失效、禁推资产误入和关键门禁误放行后的隔离、通知、恢复、风险接受和审计归档绑定成可执行闭环。 +**专项修订**:V2.51 在 V2.50 基础上新增基线准入执行策略,把最低可接受基线、撤销/EOL 状态、资产符合性声明、例外状态和 GitOps / catalog / Golden Path 准入阻断统一成可执行策略。 --- @@ -53,7 +53,7 @@ | 版本 | 状态 | 说明 | | ---- | ---- | ---- | -| `V2.50` | `Baseline Candidate` | 用作可执行企业标准起点;包含机器可读版本清单、控制项覆盖清单、83 组 starter kit schema/example、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线符合性声明、基线发布列车、基线支持矩阵、基线采纳总账、基线兼容性总账、基线发布证据包、版本控制面、外部标准版本锁定、企业执行控制面、合规等级、门禁决策、证据新鲜度、例外放行、break-glass、季度复核、仓库变更控制、远端保护漂移整改、控制证据映射、审计导出清单、审计导出自动化、控制评估报告、架构基线变更记录、架构决策记录、AI 证据账本、微调运行证据、AI 事件响应 playbook、OSCAL 交换映射、POA&M 整改计划、企业架构风险登记、审计导出门禁、审计导出完整性清单、审计导出 provenance statement、审计导出签名策略、审计导出签名验签回执、严格 schema 模式、访问复核、密钥轮换、漏洞修复、事故复盘、可靠性、数据治理、AI 运行、GitOps 安全、供应链证据链一致性和自动化校验入口 | +| `V2.51` | `Baseline Candidate` | 用作可执行企业标准起点;包含机器可读版本清单、控制项覆盖清单、84 组 starter kit schema/example、基线准入执行策略、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线符合性声明、基线发布列车、基线支持矩阵、基线采纳总账、基线兼容性总账、基线发布证据包、版本控制面、外部标准版本锁定、企业执行控制面、合规等级、门禁决策、证据新鲜度、例外放行、break-glass、季度复核、仓库变更控制、远端保护漂移整改、控制证据映射、审计导出清单、审计导出自动化、控制评估报告、架构基线变更记录、架构决策记录、AI 证据账本、微调运行证据、AI 事件响应 playbook、OSCAL 交换映射、POA&M 整改计划、企业架构风险登记、审计导出门禁、审计导出完整性清单、审计导出 provenance statement、审计导出签名策略、审计导出签名验签回执、严格 schema 模式、访问复核、密钥轮换、漏洞修复、事故复盘、可靠性、数据治理、AI 运行、GitOps 安全、供应链证据链一致性和自动化校验入口 | ### 0.3 变更分级 @@ -118,6 +118,8 @@ V2.49 起,企业级基线还必须形成 `baseline-publish-transaction.yaml` V2.50 起,企业级基线还必须形成 `baseline-revocation-record.yaml`。它不是替代回滚验证或事故复盘,而是证明已发布基线在发现严重发布错误、签名泄露、证据污染、远端保护失效或禁推资产误入时,能够被隔离、撤销、通知、恢复和归档。 +V2.51 起,企业级基线还必须形成 `baseline-enforcement-policy.yaml`。它不是替代支持矩阵、采纳总账或符合性声明,而是把这些账本转成 release gate、GitOps、catalog 和 Golden Path 能直接执行的准入策略,证明低于最低基线、撤销/EOL 基线、无资产声明或过期例外不会被继续采用。 + 推荐发布检查: ```bash @@ -161,6 +163,7 @@ git diff --check | 门禁执行报告 | `baseline-gate-execution-report.yaml` 必须证明门禁命令、runner 镜像、策略包、schema 包、输入摘要、逐条规则结果、退出码、重放结果和最终决策一致 | release gate 有放行结论但没有执行明细、策略包漂移、输入摘要不一致、规则未运行、重放失败或执行结果与最终决策不一致 | | 发布事务回执 | `baseline-publish-transaction.yaml` 必须证明提交前检查、干净工作树、source commit、签名 tag、远端 ref、push 结果、tag 保护、禁推资产排除和发布后验证一致 | 文档声称已发布但远端没有 ref、tag 未签名、push 失败、工作树脏、禁推资产进入远端或发布后验证未执行 | | 撤销隔离记录 | `baseline-revocation-record.yaml` 必须证明撤销触发条件、隔离范围、受影响引用、通知对象、恢复目标、风险接受、审计归档和状态回写一致 | 坏基线已发布但无法撤销、签名泄露后仍被引用、禁推资产误入远端后没有隔离证据或下游继续采用 | +| 准入执行策略 | `baseline-enforcement-policy.yaml` 必须把支持矩阵、采纳总账、符合性声明、撤销记录和例外总账转成统一阻断规则 | 低于最低基线仍可部署、撤销/EOL 基线仍可新采用、资产没有符合性声明但通过发布、例外过期仍放行 | | 发布列车 | `baseline-release-train.yaml` 必须绑定候选窗口、冻结窗口、晋级日期、通知节奏、黑窗、紧急补丁和依赖证据 | 临时发版、绕过冻结窗口、无通知升级、黑窗期间发布非紧急变更 | | 通知确认 | `baseline-notification-ledger.yaml` 必须绑定通知对象、渠道、送达、确认、异议、例外和冻结前完成状态 | 冻结前关键消费者未确认、通知失败无补发、异议未关闭或无风险接受 | | 回滚验证 | `baseline-rollback-verification.yaml` 必须绑定上一基线、回滚目标、Git/tag/GitOps revision、审计导出恢复、烟测结果和验证时效 | 只写回滚计划、上一基线不可检出、GitOps revision 不存在、审计导出无法恢复或验证过期 | @@ -266,12 +269,13 @@ git diff --check | `V2.48` | 2026-06-02 | Minor | 补齐基线门禁执行报告、门禁命令、策略包、输入摘要、逐条规则结果、退出码和可重放执行证明 | | `V2.49` | 2026-06-02 | Minor | 补齐基线发布事务回执、提交前检查、签名 tag、远端 ref、push 回执、保护规则和发布后验证 | | `V2.50` | 2026-06-02 | Minor | 补齐基线撤销与隔离记录、撤销触发、隔离范围、恢复目标、通知确认、风险接受和审计归档 | +| `V2.51` | 2026-06-02 | Minor | 补齐基线准入执行策略、最低基线阻断、撤销/EOL 阻断、资产声明校验和例外到期阻断 | -### 0.8 V2.50 可执行企业标准路线图 +### 0.8 V2.51 可执行企业标准路线图 -V2.0 已将 V1.9 的文档化基线转化为第一批可执行资产。V2.1 继续把字段约束、示例一致性和远程 CI 门禁补强为可执行口径。V2.2 把主文档最小验证包中的 API、事件、AI 工具、RAG、微调、GitOps、catalog 和 scorecard 纳入 schema/example 校验。V2.3 继续把发布证据、供应链证明、治理例外、兼容性报告和 GitOps 漂移报告纳入机器可校验基线。V2.4 把当前版本、发布状态、starter kit pair 清单、pair 数量和索引同步要求固化到机器可读版本清单中。V2.5 把可靠性等级、RTO/RPO、数据保留与访问审计、AI 预算与降级、GitOps 运行安全和供应链 source/vulnerability/scorecard 证据提升为 starter kit 强制字段。V2.6 增加控制项覆盖清单,把关键企业控制要求映射到 schema 字段、example 和 checker 规则,避免“文档说有控制、机器无法证明控制存在”。V2.7 启用严格 schema 模式,要求 starter kit 所有对象节点声明 `additionalProperties=false`,并由 checker 阻断未知字段。V2.8 补齐扩展字段策略、Feature Flag / Kill Switch、AI 威胁模型、运行血缘和平台产品指标。V2.9 继续把隐私工程、租户边界、恢复演练、Policy as Code 测试、GenAI 可观测性和 FinOps 成本分摊补成可执行证据。V2.10 把访问复核、密钥轮换、漏洞修复、事故复盘和证据新鲜度纳入控制目录,避免生产安全运营只停留在“有制度、有人看、事后补”的弱证据状态。V2.11 把每个控制项到证据路径、状态、新鲜度和审计导出包的关系纳入总账,避免审计时只能逐段翻文档、不能一键证明控制覆盖。V2.12 增加审计导出自动化命令,把版本、控制目录、证据映射、导出清单、脚本和关键制品哈希生成可交付审计包。V2.13 增加控制评估报告,把证据包进一步闭环到控制结果、发现项、整改、剩余风险和签署状态。V2.14 增加架构基线变更记录,把基线升级的影响分析、审批、验证命令和回滚路径纳入可执行证据。V2.15 增加 OSCAL 交换映射和导出摘要,把内部控制证据映射到 catalog、component-definition、system-security-plan、assessment-results 和 POA&M 视图。V2.16 增加审计导出门禁,把导出包生成、JSON/Markdown/OSCAL 输出和关键不变量校验纳入 `make test`。V2.17 增加审计导出完整性清单,把生成物 SHA-256、源制品哈希和防篡改校验纳入审计包。V2.18 增加审计导出 provenance statement,把生成物 subject、构建定义、源码提交和源证据依赖纳入可追溯证明。V2.19 增加审计导出签名策略,把 provenance payload 摘要、签名方式、验签命令和外部签名交接纳入门禁。V2.20 增加审计导出签名验签回执,把外部签名完成后的 bundle 摘要、证书身份、OIDC issuer、透明日志和验签结果纳入证据链。V2.21 增加 POA&M 整改计划,把控制发现项、责任人、整改行动、里程碑、证据、签署和 OSCAL POA&M 输出纳入闭环。V2.22 增加企业架构风险登记,把风险、控制项、POA&M、缓解行动、残余风险、复审和审计导出风险视图纳入闭环。V2.23 增加架构决策记录,把 ADR 上下文、备选方案、取舍、决策、关联控制项、风险、POA&M、复审和基线变更绑定纳入闭环。V2.24 增加 AI 事件响应 playbook,把幻觉爆发、工具循环、RAG 索引污染、供应商中断、成本异常、检测、遏制、降级、回滚和复盘纳入闭环。V2.25 增加 AI 证据账本,把模型、Prompt、RAG、工具、评估、威胁模型、观测、事件响应、数据使用、审批、留存和复审纳入 AI 产品级证据闭环。V2.26 增加微调运行证据,把训练数据授权、数据准备、实验追踪、评估、模型登记、审批、灰度发布、监控和退役纳入 AI 微调审计闭环。V2.27 增加仓库变更控制,把 CODEOWNERS、受保护分支、PR 审查、必需检查、签名提交、禁止直推、发布 tag 保护、远端保护状态验证、漂移整改、POA&M 和风险登记纳入版本基线保护。V2.28 增加企业执行控制面,把合规等级、门禁决策、证据新鲜度、例外放行、break-glass、季度复核和退出标准变成统一执行协议。V2.29 增加外部标准版本锁定与升级策略,避免把未稳定标准、实验性语义约定或外部规范变更直接带入生产基线。V2.30 增加版本控制面,把基线 ID、发布通道、tag、源 commit、兼容窗口、冻结策略和回滚入口固化为发布不变量。V2.31 增加基线发布证据包,把晋级决策、冻结复核、漂移检查、不可变引用、审计摘要和回滚验证固化为发布证据。V2.32 增加基线兼容性总账,把消费者影响、迁移窗口、弃用截止、例外状态和未迁移风险固化为版本门禁证据。V2.33 增加基线采纳总账,把领域、平台、数据、AI 和生产资产对基线的采用状态、逾期治理和例外整改固化为组织级版本证据。V2.34 增加基线支持矩阵,把旧基线支持状态、维护窗口、安全补丁窗口、EOL 和最低可接受基线固化为版本生命周期门禁。V2.35 增加基线发布列车,把候选窗口、冻结窗口、晋级日期、通知节奏、黑窗和紧急补丁入口固化为版本发布节奏门禁。V2.36 增加资产级基线符合性声明,把资产自声明、证据绑定、例外、复核和采纳总账回写固化为资产级版本证据。V2.37 增加基线制品清单,把源文档、schema、示例、控制项、证据模板、脚本、生成物和外部引用固化为可摘要、可签名、可复现的版本物料清单。V2.38 增加基线验证环境锁定,把校验命令、工具版本、runner 镜像、策略包、schema validator 和验签工具固化为可复现门禁。V2.39 增加基线通知确认总账,把发布列车中的通知计划升级为可审计的送达、确认、异议和例外证据。V2.40 增加基线回滚验证记录,把上一基线检出、GitOps revision 恢复、审计导出恢复和烟测结果升级为独立证据。V2.41 增加基线例外总账,把分散例外、到期、风险接受、POA&M 和冻结阻断收敛为统一审计证据。V2.42 增加基线就绪评分卡,把硬门禁、评分维度、证据摘要和 baseline/frozen 判定统一到最终准入证据。V2.43 增加基线生命周期状态机,把允许迁移、禁止迁移、状态回写、迁移审批和回滚入口统一到状态转换证据。V2.44 增加基线状态对账报告,把状态机、版本控制面、发布证据、支持矩阵、采纳总账和审计导出的状态字段统一对账。V2.45 增加基线 EOL 退役证书,把旧基线生产引用清零、迁移关闭、例外清零、审计归档和新采用阻断固化为退役证据。V2.46 增加基线会审裁决记录,把会审范围、证据核验、投票签署、反对意见、条件动作和最终裁决固化为独立会审证据。V2.47 增加基线证据追踪图,把跨证据依赖、摘要一致性、下游消费和断链阻断固化为可校验证据图。V2.48 增加基线门禁执行报告,把执行命令、策略包、输入摘要、规则结果、退出码和重放证明固化为 release gate 的可审计运行证据。V2.49 增加基线发布事务回执,把提交、签名 tag、远端 ref、push 回执、保护规则和发布后验证固化为版本发布事实。V2.50 增加基线撤销与隔离记录,把坏基线的隔离、撤销、通知、恢复目标、风险接受和审计归档固化为版本事故控制证据。后续 `V2.x` 迭代应继续补充示例仓库,并把平台、catalog、GitOps 和审计系统连接起来。 +V2.0 已将 V1.9 的文档化基线转化为第一批可执行资产。V2.1 继续把字段约束、示例一致性和远程 CI 门禁补强为可执行口径。V2.2 把主文档最小验证包中的 API、事件、AI 工具、RAG、微调、GitOps、catalog 和 scorecard 纳入 schema/example 校验。V2.3 继续把发布证据、供应链证明、治理例外、兼容性报告和 GitOps 漂移报告纳入机器可校验基线。V2.4 把当前版本、发布状态、starter kit pair 清单、pair 数量和索引同步要求固化到机器可读版本清单中。V2.5 把可靠性等级、RTO/RPO、数据保留与访问审计、AI 预算与降级、GitOps 运行安全和供应链 source/vulnerability/scorecard 证据提升为 starter kit 强制字段。V2.6 增加控制项覆盖清单,把关键企业控制要求映射到 schema 字段、example 和 checker 规则,避免“文档说有控制、机器无法证明控制存在”。V2.7 启用严格 schema 模式,要求 starter kit 所有对象节点声明 `additionalProperties=false`,并由 checker 阻断未知字段。V2.8 补齐扩展字段策略、Feature Flag / Kill Switch、AI 威胁模型、运行血缘和平台产品指标。V2.9 继续把隐私工程、租户边界、恢复演练、Policy as Code 测试、GenAI 可观测性和 FinOps 成本分摊补成可执行证据。V2.10 把访问复核、密钥轮换、漏洞修复、事故复盘和证据新鲜度纳入控制目录,避免生产安全运营只停留在“有制度、有人看、事后补”的弱证据状态。V2.11 把每个控制项到证据路径、状态、新鲜度和审计导出包的关系纳入总账,避免审计时只能逐段翻文档、不能一键证明控制覆盖。V2.12 增加审计导出自动化命令,把版本、控制目录、证据映射、导出清单、脚本和关键制品哈希生成可交付审计包。V2.13 增加控制评估报告,把证据包进一步闭环到控制结果、发现项、整改、剩余风险和签署状态。V2.14 增加架构基线变更记录,把基线升级的影响分析、审批、验证命令和回滚路径纳入可执行证据。V2.15 增加 OSCAL 交换映射和导出摘要,把内部控制证据映射到 catalog、component-definition、system-security-plan、assessment-results 和 POA&M 视图。V2.16 增加审计导出门禁,把导出包生成、JSON/Markdown/OSCAL 输出和关键不变量校验纳入 `make test`。V2.17 增加审计导出完整性清单,把生成物 SHA-256、源制品哈希和防篡改校验纳入审计包。V2.18 增加审计导出 provenance statement,把生成物 subject、构建定义、源码提交和源证据依赖纳入可追溯证明。V2.19 增加审计导出签名策略,把 provenance payload 摘要、签名方式、验签命令和外部签名交接纳入门禁。V2.20 增加审计导出签名验签回执,把外部签名完成后的 bundle 摘要、证书身份、OIDC issuer、透明日志和验签结果纳入证据链。V2.21 增加 POA&M 整改计划,把控制发现项、责任人、整改行动、里程碑、证据、签署和 OSCAL POA&M 输出纳入闭环。V2.22 增加企业架构风险登记,把风险、控制项、POA&M、缓解行动、残余风险、复审和审计导出风险视图纳入闭环。V2.23 增加架构决策记录,把 ADR 上下文、备选方案、取舍、决策、关联控制项、风险、POA&M、复审和基线变更绑定纳入闭环。V2.24 增加 AI 事件响应 playbook,把幻觉爆发、工具循环、RAG 索引污染、供应商中断、成本异常、检测、遏制、降级、回滚和复盘纳入闭环。V2.25 增加 AI 证据账本,把模型、Prompt、RAG、工具、评估、威胁模型、观测、事件响应、数据使用、审批、留存和复审纳入 AI 产品级证据闭环。V2.26 增加微调运行证据,把训练数据授权、数据准备、实验追踪、评估、模型登记、审批、灰度发布、监控和退役纳入 AI 微调审计闭环。V2.27 增加仓库变更控制,把 CODEOWNERS、受保护分支、PR 审查、必需检查、签名提交、禁止直推、发布 tag 保护、远端保护状态验证、漂移整改、POA&M 和风险登记纳入版本基线保护。V2.28 增加企业执行控制面,把合规等级、门禁决策、证据新鲜度、例外放行、break-glass、季度复核和退出标准变成统一执行协议。V2.29 增加外部标准版本锁定与升级策略,避免把未稳定标准、实验性语义约定或外部规范变更直接带入生产基线。V2.30 增加版本控制面,把基线 ID、发布通道、tag、源 commit、兼容窗口、冻结策略和回滚入口固化为发布不变量。V2.31 增加基线发布证据包,把晋级决策、冻结复核、漂移检查、不可变引用、审计摘要和回滚验证固化为发布证据。V2.32 增加基线兼容性总账,把消费者影响、迁移窗口、弃用截止、例外状态和未迁移风险固化为版本门禁证据。V2.33 增加基线采纳总账,把领域、平台、数据、AI 和生产资产对基线的采用状态、逾期治理和例外整改固化为组织级版本证据。V2.34 增加基线支持矩阵,把旧基线支持状态、维护窗口、安全补丁窗口、EOL 和最低可接受基线固化为版本生命周期门禁。V2.35 增加基线发布列车,把候选窗口、冻结窗口、晋级日期、通知节奏、黑窗和紧急补丁入口固化为版本发布节奏门禁。V2.36 增加资产级基线符合性声明,把资产自声明、证据绑定、例外、复核和采纳总账回写固化为资产级版本证据。V2.37 增加基线制品清单,把源文档、schema、示例、控制项、证据模板、脚本、生成物和外部引用固化为可摘要、可签名、可复现的版本物料清单。V2.38 增加基线验证环境锁定,把校验命令、工具版本、runner 镜像、策略包、schema validator 和验签工具固化为可复现门禁。V2.39 增加基线通知确认总账,把发布列车中的通知计划升级为可审计的送达、确认、异议和例外证据。V2.40 增加基线回滚验证记录,把上一基线检出、GitOps revision 恢复、审计导出恢复和烟测结果升级为独立证据。V2.41 增加基线例外总账,把分散例外、到期、风险接受、POA&M 和冻结阻断收敛为统一审计证据。V2.42 增加基线就绪评分卡,把硬门禁、评分维度、证据摘要和 baseline/frozen 判定统一到最终准入证据。V2.43 增加基线生命周期状态机,把允许迁移、禁止迁移、状态回写、迁移审批和回滚入口统一到状态转换证据。V2.44 增加基线状态对账报告,把状态机、版本控制面、发布证据、支持矩阵、采纳总账和审计导出的状态字段统一对账。V2.45 增加基线 EOL 退役证书,把旧基线生产引用清零、迁移关闭、例外清零、审计归档和新采用阻断固化为退役证据。V2.46 增加基线会审裁决记录,把会审范围、证据核验、投票签署、反对意见、条件动作和最终裁决固化为独立会审证据。V2.47 增加基线证据追踪图,把跨证据依赖、摘要一致性、下游消费和断链阻断固化为可校验证据图。V2.48 增加基线门禁执行报告,把执行命令、策略包、输入摘要、规则结果、退出码和重放证明固化为 release gate 的可审计运行证据。V2.49 增加基线发布事务回执,把提交、签名 tag、远端 ref、push 回执、保护规则和发布后验证固化为版本发布事实。V2.50 增加基线撤销与隔离记录,把坏基线的隔离、撤销、通知、恢复目标、风险接受和审计归档固化为版本事故控制证据。V2.51 增加基线准入执行策略,把最低基线、撤销/EOL、资产声明、例外到期和运行入口阻断固化为统一策略。后续 `V2.x` 迭代应继续补充示例仓库,并把平台、catalog、GitOps 和审计系统连接起来。 -V2.50 起点包括: +V2.51 起点包括: 1. 真相源字段矩阵:明确 `domain.yaml`、`service.yaml`、`ai-product.yaml`、`data-product.yaml`、catalog、GitOps 和 runtime 的字段权威。 2. 契约模板:提供服务、领域、数据产品、AI 产品、Agent 工具、RAG、微调、GitOps 和生产就绪模板。 @@ -281,7 +285,7 @@ V2.50 起点包括: 6. 可靠性分级:补齐 Tier-1 / Tier-2 / Tier-3、RTO、RPO、灾备演练、错误预算和 on-call 升级路径。 7. 迁移与弃用:定义旧系统绞杀迁移、API 版本弃用、数据产品兼容、AI 模型退役和平台能力下线流程。 8. 验证包:提供 `make test`、schema 校验、示例仓库和审计证据清单,证明标准可以落地执行。 -9. Starter Kit:提供 `内部 starter kit` 下的 83 组 schema/example、嵌套字段校验、格式校验、可靠性、数据治理、AI 运行、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线符合性声明、基线发布列车、基线支持矩阵、基线采纳总账、基线兼容性总账、基线发布证据包、版本控制面、外部标准版本锁定、企业执行控制面、合规等级、门禁决策、仓库变更控制、远端保护漂移整改、AI 证据账本、微调运行证据、AI 事件响应 playbook、GitOps 安全、架构决策记录、风险登记、证据链验真字段和示例跨文件一致性检查。 +9. Starter Kit:提供 `内部 starter kit` 下的 84 组 schema/example、嵌套字段校验、格式校验、可靠性、数据治理、AI 运行、基线准入执行策略、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线符合性声明、基线发布列车、基线支持矩阵、基线采纳总账、基线兼容性总账、基线发布证据包、版本控制面、外部标准版本锁定、企业执行控制面、合规等级、门禁决策、仓库变更控制、远端保护漂移整改、AI 证据账本、微调运行证据、AI 事件响应 playbook、GitOps 安全、架构决策记录、风险登记、证据链验真字段和示例跨文件一致性检查。 10. 版本清单:提供 `内部版本清单`,让当前版本、发布状态、pair 清单和索引同步进入 CI 校验。 11. 控制项覆盖清单:提供 `内部控制项覆盖清单`,让关键控制项到 schema、example 和 checker 的证据链进入 CI 校验。 12. 严格 schema 模式:starter kit 的对象 schema 必须声明 `additionalProperties=false`,新增字段必须先进入契约、示例和 checker 证据链。 @@ -344,6 +348,7 @@ V2.50 起点包括: 69. 基线门禁执行报告:新增 `baseline-gate-execution-report.yaml`,把门禁执行命令、runner、策略包、schema 包、输入摘要、逐条规则结果、退出码、重放结果和最终决策纳入基线晋级门禁。 70. 基线发布事务回执:新增 `baseline-publish-transaction.yaml`,把提交前检查、干净工作树、source commit、签名 tag、远端 ref、push 回执、保护规则、禁推资产排除和发布后验证纳入基线发布门禁。 71. 基线撤销与隔离记录:新增 `baseline-revocation-record.yaml`,把撤销触发、隔离范围、受影响引用、通知确认、恢复目标、风险接受、状态回写和审计归档纳入版本事故控制门禁。 +72. 基线准入执行策略:新增 `baseline-enforcement-policy.yaml`,把最低可接受基线、撤销/EOL 阻断、资产符合性声明、例外到期和 GitOps / catalog / Golden Path 准入阻断纳入统一策略。 --- @@ -3456,7 +3461,7 @@ runbook: rollback: docs/rollback.md ``` -V2.50 starter kit 还提供以下可执行契约模板: +V2.51 starter kit 还提供以下可执行契约模板: 1. `api-contract.yaml`:API producer、consumer、auth、版本和兼容策略。 2. `event-contract.yaml`:事件 topic、schema、幂等键、投递语义和消费者。 @@ -3530,6 +3535,7 @@ V2.50 starter kit 还提供以下可执行契约模板: 70. `baseline-gate-execution-report.yaml`:基线门禁命令、runner 镜像、策略包、schema 包、输入摘要、逐条规则结果、退出码、重放结果和最终决策证明。 71. `baseline-publish-transaction.yaml`:基线提交前检查、干净工作树、source commit、签名 tag、远端 ref、push 回执、保护规则、禁推资产排除和发布后验证证明。 72. `baseline-revocation-record.yaml`:基线撤销触发、隔离范围、受影响引用、通知确认、恢复目标、风险接受、状态回写和审计归档证明。 +73. `baseline-enforcement-policy.yaml`:基线最低版本、支持状态、撤销/EOL 状态、资产声明、例外有效期、GitOps / catalog / Golden Path 准入阻断证明。 ### 10.10.3 自动化门禁映射 @@ -3548,6 +3554,7 @@ V2.50 starter kit 还提供以下可执行契约模板: | 基线发布 | 晋级决策、冻结复核、漂移检查、不可变引用、签名验签和回滚验证 | `baseline-release-evidence.yaml`、`version-governance.yaml`、审计导出、Git tag | 无晋级证据、tag 与 commit 不一致、漂移复核缺失、回滚未验证 | | 基线发布事务 | 提交前检查、干净工作树、source commit、签名 tag、远端 ref、push 回执、保护规则、禁推资产排除和发布后验证 | `baseline-publish-transaction.yaml`、Git remote refs、repository protection、release evidence、version governance | 未完成 push、远端 ref 不存在、tag 未签名、工作树脏、保护规则失效、禁推资产进入远端或发布后验证失败 | | 基线撤销隔离 | 撤销触发、隔离范围、受影响引用、通知确认、恢复目标、风险接受、状态回写和审计归档 | `baseline-revocation-record.yaml`、support matrix、adoption ledger、publish transaction、release evidence、risk register | 坏基线无法隔离、签名泄露后仍允许采用、禁推资产误入后无通知、恢复目标未验证或审计归档缺失 | +| 基线准入执行 | 最低可接受基线、支持状态、撤销/EOL 状态、资产符合性声明、例外有效期和运行入口阻断 | `baseline-enforcement-policy.yaml`、support matrix、adoption ledger、conformance claim、revocation record、exception ledger、GitOps、catalog | 低于最低基线仍可部署、撤销/EOL 基线仍可新采用、资产无声明仍通过、过期例外仍放行、策略引擎未记录决策 | | 基线证据追踪 | 证据节点、依赖边、摘要一致性、下游消费和断链阻断 | `baseline-evidence-trace-graph.yaml`、发布证据、状态对账、审计导出、会审裁决 | 必需节点缺失、摘要不一致、依赖断链、下游引用旧证据或存在未消费关键证据 | | 基线门禁执行 | 门禁命令、runner 镜像、策略包、schema 包、输入摘要、逐条规则结果、退出码、重放结果和最终决策 | `baseline-gate-execution-report.yaml`、`release-gate-decision.yaml`、`control-plane.yaml`、`baseline-verification-lock.yaml` | 规则未执行、输入摘要不一致、策略包漂移、重放失败、退出码异常或最终决策与执行结果不一致 | | 基线兼容 | 消费者影响、迁移窗口、弃用截止、未迁移对象和例外闭环 | `baseline-compatibility-ledger.yaml`、API/Event/Data/AI 兼容性报告、catalog | breaking change 无消费者清单、迁移到期仍未完成、例外无到期或 POA&M | @@ -3626,7 +3633,7 @@ V2.50 starter kit 还提供以下可执行契约模板: 可执行企业标准不能只证明“字段存在”,还要证明关键控制项确实被 schema、example 和 checker 覆盖。 -V2.6 起,控制项覆盖清单由以下文件维护;V2.7 起,严格 schema 控制项进入同一清单;V2.8 起,扩展策略、发布开关、AI 威胁模型、运行血缘和平台产品指标也进入同一清单;V2.9 起,隐私影响评估、租户隔离、恢复演练、策略测试、GenAI 观测和成本分摊证据也进入同一清单;V2.10 起,访问复核、密钥轮换、漏洞修复、事故复盘和证据新鲜度也进入同一清单;V2.11 起,控制证据映射和审计导出清单也进入同一清单;V2.12 起,审计导出自动化命令也进入同一清单;V2.13 起,控制评估报告也进入同一清单;V2.14 起,架构基线变更记录也进入同一清单;V2.15 起,OSCAL 交换映射也进入同一清单;V2.16 起,审计导出门禁也进入同一清单;V2.17 起,审计导出完整性清单也进入同一清单;V2.18 起,审计导出 provenance statement 也进入同一清单;V2.19 起,审计导出签名策略也进入同一清单;V2.20 起,审计导出签名验签回执也进入同一清单;V2.21 起,POA&M 整改计划也进入同一清单;V2.22 起,企业架构风险登记也进入同一清单;V2.23 起,架构决策记录也进入同一清单;V2.24 起,AI 事件响应 playbook 也进入同一清单;V2.25 起,AI 证据账本也进入同一清单;V2.26 起,微调运行证据也进入同一清单;V2.27 起,仓库变更控制和远端保护漂移整改也进入同一清单;V2.28 起,合规等级、执行控制面和门禁决策也进入同一清单;V2.29 起,外部标准版本锁定和升级门禁也进入同一清单;V2.30 起,版本控制面和基线发布不变量也进入同一清单;V2.31 起,基线发布证据包、晋级决策、冻结复核和版本漂移复核也进入同一清单;V2.32 起,基线兼容性总账、消费者迁移和未迁移风险闭环也进入同一清单;V2.33 起,基线采纳总账、组织采纳状态、逾期整改和例外闭环也进入同一清单;V2.34 起,基线支持矩阵、维护窗口、安全补丁、EOL 和最低可接受基线也进入同一清单;V2.35 起,基线发布列车、候选窗口、冻结窗口、晋级日期、通知节奏、黑窗和紧急补丁也进入同一清单;V2.36 起,资产级基线符合性声明、资产自声明、证据绑定、例外和采纳总账回写也进入同一清单;V2.37 起,基线制品清单、源制品摘要、必需性、签名状态、导出关系和未登记制品阻断也进入同一清单;V2.38 起,基线验证环境锁定、校验命令、runner 镜像、工具版本、策略包、validator 和验签工具也进入同一清单;V2.39 起,基线通知确认总账、通知对象、送达回执、影响确认、异议、例外和冻结前完成状态也进入同一清单;V2.40 起,基线回滚验证记录、上一基线检出、GitOps revision 恢复、审计导出恢复、烟测结果和验证时效也进入同一清单;V2.41 起,基线例外总账、例外来源聚合、风险接受、POA&M、过期阻断和冻结准入也进入同一清单;V2.42 起,基线就绪评分卡、硬门禁、评分维度、证据绑定和最终准入判定也进入同一清单;V2.43 起,基线生命周期状态机、允许迁移、禁止迁移、迁移审批、状态回写和迁移审计证据也进入同一清单;V2.44 起,基线状态对账报告、跨账本状态一致性、状态漂移阻断和审计导出状态回写也进入同一清单;V2.45 起,基线 EOL 退役证书、生产引用清零、迁移关闭、例外清零和新采用阻断也进入同一清单;V2.46 起,基线会审裁决记录、证据核验、投票签署、反对意见、条件动作和最终裁决也进入同一清单;V2.47 起,基线证据追踪图、证据节点依赖、摘要一致性、下游消费和断链阻断也进入同一清单;V2.48 起,基线门禁执行报告、门禁命令、runner、策略包、schema 包、输入摘要、规则结果、退出码和重放结果也进入同一清单;V2.49 起,基线发布事务回执、提交前检查、干净工作树、签名 tag、远端 ref、push 回执、保护规则和发布后验证也进入同一清单;V2.50 起,基线撤销与隔离记录、撤销触发、隔离范围、受影响引用、通知确认、恢复目标、风险接受和审计归档也进入同一清单: +V2.6 起,控制项覆盖清单由以下文件维护;V2.7 起,严格 schema 控制项进入同一清单;V2.8 起,扩展策略、发布开关、AI 威胁模型、运行血缘和平台产品指标也进入同一清单;V2.9 起,隐私影响评估、租户隔离、恢复演练、策略测试、GenAI 观测和成本分摊证据也进入同一清单;V2.10 起,访问复核、密钥轮换、漏洞修复、事故复盘和证据新鲜度也进入同一清单;V2.11 起,控制证据映射和审计导出清单也进入同一清单;V2.12 起,审计导出自动化命令也进入同一清单;V2.13 起,控制评估报告也进入同一清单;V2.14 起,架构基线变更记录也进入同一清单;V2.15 起,OSCAL 交换映射也进入同一清单;V2.16 起,审计导出门禁也进入同一清单;V2.17 起,审计导出完整性清单也进入同一清单;V2.18 起,审计导出 provenance statement 也进入同一清单;V2.19 起,审计导出签名策略也进入同一清单;V2.20 起,审计导出签名验签回执也进入同一清单;V2.21 起,POA&M 整改计划也进入同一清单;V2.22 起,企业架构风险登记也进入同一清单;V2.23 起,架构决策记录也进入同一清单;V2.24 起,AI 事件响应 playbook 也进入同一清单;V2.25 起,AI 证据账本也进入同一清单;V2.26 起,微调运行证据也进入同一清单;V2.27 起,仓库变更控制和远端保护漂移整改也进入同一清单;V2.28 起,合规等级、执行控制面和门禁决策也进入同一清单;V2.29 起,外部标准版本锁定和升级门禁也进入同一清单;V2.30 起,版本控制面和基线发布不变量也进入同一清单;V2.31 起,基线发布证据包、晋级决策、冻结复核和版本漂移复核也进入同一清单;V2.32 起,基线兼容性总账、消费者迁移和未迁移风险闭环也进入同一清单;V2.33 起,基线采纳总账、组织采纳状态、逾期整改和例外闭环也进入同一清单;V2.34 起,基线支持矩阵、维护窗口、安全补丁、EOL 和最低可接受基线也进入同一清单;V2.35 起,基线发布列车、候选窗口、冻结窗口、晋级日期、通知节奏、黑窗和紧急补丁也进入同一清单;V2.36 起,资产级基线符合性声明、资产自声明、证据绑定、例外和采纳总账回写也进入同一清单;V2.37 起,基线制品清单、源制品摘要、必需性、签名状态、导出关系和未登记制品阻断也进入同一清单;V2.38 起,基线验证环境锁定、校验命令、runner 镜像、工具版本、策略包、validator 和验签工具也进入同一清单;V2.39 起,基线通知确认总账、通知对象、送达回执、影响确认、异议、例外和冻结前完成状态也进入同一清单;V2.40 起,基线回滚验证记录、上一基线检出、GitOps revision 恢复、审计导出恢复、烟测结果和验证时效也进入同一清单;V2.41 起,基线例外总账、例外来源聚合、风险接受、POA&M、过期阻断和冻结准入也进入同一清单;V2.42 起,基线就绪评分卡、硬门禁、评分维度、证据绑定和最终准入判定也进入同一清单;V2.43 起,基线生命周期状态机、允许迁移、禁止迁移、迁移审批、状态回写和迁移审计证据也进入同一清单;V2.44 起,基线状态对账报告、跨账本状态一致性、状态漂移阻断和审计导出状态回写也进入同一清单;V2.45 起,基线 EOL 退役证书、生产引用清零、迁移关闭、例外清零和新采用阻断也进入同一清单;V2.46 起,基线会审裁决记录、证据核验、投票签署、反对意见、条件动作和最终裁决也进入同一清单;V2.47 起,基线证据追踪图、证据节点依赖、摘要一致性、下游消费和断链阻断也进入同一清单;V2.48 起,基线门禁执行报告、门禁命令、runner、策略包、schema 包、输入摘要、规则结果、退出码和重放结果也进入同一清单;V2.49 起,基线发布事务回执、提交前检查、干净工作树、签名 tag、远端 ref、push 回执、保护规则和发布后验证也进入同一清单;V2.50 起,基线撤销与隔离记录、撤销触发、隔离范围、受影响引用、通知确认、恢复目标、风险接受和审计归档也进入同一清单;V2.51 起,基线准入执行策略、最低基线阻断、撤销/EOL 阻断、资产声明校验和例外到期阻断也进入同一清单: ```text 内部控制项覆盖清单 @@ -3669,6 +3676,7 @@ V2.6 起,控制项覆盖清单由以下文件维护;V2.7 起,严格 schema | 文档说基线是否可以晋级必须有最终判定,机器是否能证明 | 控制项要求 `baseline-readiness-scorecard.schema.json` 和示例包含硬门禁、评分维度、权重、证据路径、阻断项、baseline/frozen 阈值和最终判定 | | 文档说基线状态不能被人工随意改写,机器是否能证明 | 控制项要求 `baseline-lifecycle-state-machine.schema.json` 和示例包含状态集合、允许迁移、禁止迁移、迁移证据、审批责任、回写目标和审计记录 | | 文档说多个账本里的基线状态必须一致,机器是否能证明 | 控制项要求 `baseline-state-reconciliation-report.schema.json` 和示例包含对账输入、期望状态、观测状态、漂移项、阻断决策和回写状态 | +| 文档说最低基线、撤销/EOL 和资产声明必须被运行入口阻断,机器是否能证明 | 控制项要求 `baseline-enforcement-policy.schema.json` 和示例包含适用入口、最低基线、阻断条件、例外有效期、策略引擎、决策回写和审计日志 | | 文档说 AI 事件响应必须有专门 playbook,机器是否能证明 | 控制项要求 `ai-incident-playbook.schema.json` 和示例包含触发器、检测、遏制、降级、回滚、RAG 恢复、工具 Kill Switch 和复盘 | | 文档说 GitOps 必须有运行安全,机器是否能证明 | 控制项要求 `gitops-deployment.schema.json` 和示例包含 `serviceAccount`、`security`、`scaling` | | 文档说供应链必须有漏洞和 Scorecard 证据,机器是否能证明 | 控制项要求 `supply-chain-attestation.schema.json` 和示例包含 `vulnerability`、`scorecard` | @@ -3975,16 +3983,16 @@ standards: ```yaml versionGovernance: - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 releaseChannel: candidate status: Baseline Candidate owner: architecture-governance-board sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate tagSigned: true effectiveFrom: 2026-06-02 - supersedes: V2.49 + supersedes: V2.50 compatibility: changeLevel: minor backwardCompatible: true @@ -3994,6 +4002,7 @@ versionGovernance: versionManifest: governance/control-plane/version-manifest.yaml controlCoverage: governance/control-plane/control-coverage.yaml standardsBaseline: governance/control-plane/standards-baseline.yaml + enforcementPolicy: governance/control-plane/baseline-enforcement-policy.yaml auditExportManifest: governance/evidence/audit-export/audit-export-manifest.yaml lifecycleStateMachine: governance/evidence/baselines/baseline-lifecycle-state-machine.yaml stateReconciliation: governance/evidence/baselines/baseline-state-reconciliation-report.yaml @@ -4027,9 +4036,9 @@ versionGovernance: - open-critical-findings-zero emergencyPatchAllowed: true rollback: - previousBaseline: V2.49 + previousBaseline: V2.50 rollbackCommit: - rollbackTag: architecture/v2.49-candidate + rollbackTag: architecture/v2.50-candidate rollbackGuide: governance/evidence/baseline-changes/baseline-change-record.yaml rollbackVerification: governance/evidence/rollback/baseline-rollback-verification.yaml ``` @@ -4039,14 +4048,14 @@ versionGovernance: 1. `documentVersion` 必须等于主文档版本、版本清单版本和审计导出版本。 2. `baselineId` 一经发布不得复用;同一 `baselineId` 不得指向不同 commit。 3. `releaseTag` 必须指向 `sourceCommit`,生产级基线必须使用签名 tag。 -4. `releaseChannel=baseline` 或 `frozen` 时,必须有 `release-gate-decision.yaml`、基线生命周期状态机、基线状态对账报告、基线证据追踪图、基线门禁执行报告、基线发布事务回执、基线撤销与隔离记录、基线验证环境锁、基线制品清单、基线就绪评分卡、基线会审裁决记录、基线例外总账、通知确认总账、回滚验证记录和审计导出清单。 +4. `releaseChannel=baseline` 或 `frozen` 时,必须有 `release-gate-decision.yaml`、基线准入执行策略、基线生命周期状态机、基线状态对账报告、基线证据追踪图、基线门禁执行报告、基线发布事务回执、基线撤销与隔离记录、基线验证环境锁、基线制品清单、基线就绪评分卡、基线会审裁决记录、基线例外总账、通知确认总账、回滚验证记录和审计导出清单。 5. `changeLevel=major` 或 `breaking` 时,必须引用 ADR、迁移计划、弃用策略和消费者影响分析。 6. `compatibilityWindow` 到期后,未迁移消费者必须转入例外、POA&M 或风险接受记录。 7. 回滚不能只写“回退上一版”,必须指向可 checkout 的 commit、tag、GitOps revision 或制品 digest。 可执行验收标准: -1. 任意基线都能从 `version-governance.yaml` 追溯到源 commit、release tag、版本清单、基线生命周期状态机、基线状态对账报告、基线证据追踪图、基线门禁执行报告、基线发布事务回执、基线撤销与隔离记录、基线就绪评分卡、基线会审裁决记录、基线例外总账、通知确认总账、回滚验证记录、验证环境锁、基线制品清单、EOL 退役证书和审计导出。 +1. 任意基线都能从 `version-governance.yaml` 追溯到源 commit、release tag、版本清单、基线准入执行策略、基线生命周期状态机、基线状态对账报告、基线证据追踪图、基线门禁执行报告、基线发布事务回执、基线撤销与隔离记录、基线就绪评分卡、基线会审裁决记录、基线例外总账、通知确认总账、回滚验证记录、验证环境锁、基线制品清单、EOL 退役证书和审计导出。 2. 任意冻结基线都能证明没有被直接修改;后续变更只能通过补丁或新基线替代。 3. 任意 breaking change 都能找到兼容窗口、消费者清单、迁移说明和回滚入口。 4. 任意 emergency patch 都能找到事故或安全编号、补丁范围、事后复盘和补齐证据。 @@ -4057,9 +4066,9 @@ versionGovernance: ```yaml baselineReleaseEvidence: - evidenceId: bre-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + evidenceId: bre-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board promotion: fromChannel: candidate @@ -4073,9 +4082,10 @@ baselineReleaseEvidence: decidedAt: 2026-06-02T10:30:00+08:00 immutableRefs: sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate tagSignatureVerified: true publishTransactionDigest: sha256: + enforcementPolicyDigest: sha256: auditExportDigest: sha256: controlCoverageDigest: sha256: lifecycleStateMachineDigest: sha256: @@ -4102,6 +4112,10 @@ baselineReleaseEvidence: gateExecutionReplayPasses: true publishTransactionRemoteRefsMatch: true publishTransactionPostVerificationPasses: true + enforcementPolicyBlocksUnsupportedBaseline: true + enforcementPolicyBlocksRevokedOrEolBaseline: true + enforcementPolicyRequiresConformanceClaim: true + enforcementPolicyBlocksExpiredException: true revocationRecordRequiredWhenRevoked: true revokedBaselineIsBlockedForNewAdoption: true eolRetirementCertificateRequiredWhenEol: true @@ -4124,6 +4138,7 @@ baselineReleaseEvidence: - governance/control-plane/version-governance.yaml - governance/control-plane/standards-baseline.yaml - governance/control-plane/control-plane.yaml + - governance/control-plane/baseline-enforcement-policy.yaml - governance/evidence/baselines/baseline-lifecycle-state-machine.yaml - governance/evidence/baselines/baseline-state-reconciliation-report.yaml - governance/evidence/baselines/baseline-evidence-trace-graph.yaml @@ -4161,8 +4176,8 @@ baselineReleaseEvidence: expiringWithinDays: 14 rollback: verified: true - previousBaseline: V2.49 - rollbackTag: architecture/v2.49-candidate + previousBaseline: V2.50 + rollbackTag: architecture/v2.50-candidate rollbackGuide: governance/evidence/baseline-changes/baseline-change-record.yaml rollbackVerification: governance/evidence/rollback/baseline-rollback-verification.yaml verification: @@ -4179,7 +4194,7 @@ baselineReleaseEvidence: | 晋级路径 | 必须证明 | 阻断条件 | | -------- | -------- | -------- | | `draft -> candidate` | 版本号、变更摘要、影响面、索引同步和基础门禁通过 | 文档版本和索引不一致 | -| `candidate -> baseline` | `baseline-lifecycle-state-machine.yaml`、`baseline-state-reconciliation-report.yaml`、`baseline-evidence-trace-graph.yaml`、`baseline-gate-execution-report.yaml`、`baseline-publish-transaction.yaml`、`baseline-release-evidence.yaml`、基线就绪评分卡、基线会审裁决记录、版本控制面、验证环境锁、审计导出、控制覆盖、远端 ref、push 回执和 tag 验签通过 | 状态机未允许迁移、状态对账失败、证据追踪图断链、门禁执行报告失败或不可重放、发布事务缺失、远端 ref 不匹配、push 失败、缺少证据包、就绪评分卡未通过、会审裁决缺失或未签署、验证环境未锁定、tag 漂移、控制覆盖不一致 | +| `candidate -> baseline` | `baseline-lifecycle-state-machine.yaml`、`baseline-state-reconciliation-report.yaml`、`baseline-evidence-trace-graph.yaml`、`baseline-gate-execution-report.yaml`、`baseline-publish-transaction.yaml`、`baseline-release-evidence.yaml`、`baseline-enforcement-policy.yaml`、基线就绪评分卡、基线会审裁决记录、版本控制面、验证环境锁、审计导出、控制覆盖、远端 ref、push 回执和 tag 验签通过 | 状态机未允许迁移、状态对账失败、证据追踪图断链、门禁执行报告失败或不可重放、发布事务缺失、准入策略未执行、远端 ref 不匹配、push 失败、缺少证据包、就绪评分卡未通过、会审裁决缺失或未签署、验证环境未锁定、tag 漂移、控制覆盖不一致 | | `baseline -> frozen` | 状态机允许迁移、冻结复核、开放关键发现为 0、就绪评分达到 frozen 阈值、会审裁决同意冻结、例外总账无过期阻断、独立回滚验证和审计导出摘要一致 | 状态机禁止迁移、仍有 critical/high 风险、就绪评分不足、会审反对意见未关闭、证据过期、例外过期、阻断例外未关闭、回滚未验证 | | `baseline -> emergency-patch` | 事故或安全编号、补丁范围、最小影响分析、补齐证据期限和复盘 owner | 无事故编号、补丁长期化、事后未补 ADR 或复盘 | | `baseline/frozen -> quarantined` | `baseline-revocation-record.yaml`、撤销触发、隔离范围、受影响引用、通知确认、恢复目标和风险接受 | 无撤销记录、签名或证据污染未隔离、通知对象未知、恢复目标未验证 | @@ -4189,7 +4204,7 @@ baselineReleaseEvidence: 执行规则: 1. `baseline-release-evidence.yaml` 必须追加写入,不得覆盖历史基线证据。 -2. `immutableRefs.sourceCommit`、`releaseTag`、发布事务摘要、撤销隔离摘要、生命周期状态机摘要、状态对账报告摘要、证据追踪图摘要、门禁执行报告摘要、EOL 退役证书摘要、会审裁决摘要、验证环境锁摘要、基线制品清单摘要、基线就绪评分卡摘要、基线例外总账摘要、审计导出摘要和控制覆盖摘要必须来自同一基线。 +2. `immutableRefs.sourceCommit`、`releaseTag`、发布事务摘要、准入策略摘要、撤销隔离摘要、生命周期状态机摘要、状态对账报告摘要、证据追踪图摘要、门禁执行报告摘要、EOL 退役证书摘要、会审裁决摘要、验证环境锁摘要、基线制品清单摘要、基线就绪评分卡摘要、基线例外总账摘要、审计导出摘要和控制覆盖摘要必须来自同一基线。 3. 任意禁推本地资产出现在远端树中,`forbiddenLocalAssetsAbsentFromRemote` 必须为 `false`,并阻断基线晋级。 4. `frozen` 晋级必须先完成状态对账、漂移复核、基线就绪评分卡、基线会审裁决和基线例外总账复核;如果存在状态冲突、关键漂移、评分不足、未关闭反对意见、过期例外或阻断例外,只能创建 POA&M 或风险接受,不能冻结。 5. 回滚验证必须指向 `baseline-rollback-verification.yaml`,并证明上一基线 tag、commit、GitOps revision、审计导出和烟测结果有效,不能只写自然语言说明。 @@ -4197,7 +4212,7 @@ baselineReleaseEvidence: 可执行验收标准: 1. 任意基线晋级都能找到一份对应的 `baseline-release-evidence.yaml`。 -2. 任意证据包都能证明版本清单、生命周期状态机、状态对账报告、证据追踪图、门禁执行报告、基线发布事务回执、基线撤销与隔离记录、EOL 退役证书、会审裁决记录、验证环境锁、基线制品清单、基线就绪评分卡、基线例外总账、控制覆盖、标准基线和审计导出摘要一致。 +2. 任意证据包都能证明版本清单、基线准入执行策略、生命周期状态机、状态对账报告、证据追踪图、门禁执行报告、基线发布事务回执、基线撤销与隔离记录、EOL 退役证书、会审裁决记录、验证环境锁、基线制品清单、基线就绪评分卡、基线例外总账、控制覆盖、标准基线和审计导出摘要一致。 3. 任意冻结基线都能证明开放关键发现为 0、就绪评分达到 frozen 阈值、过期阻断例外为 0,会审反对意见已经关闭,且回滚路径已经验证。 4. 任意审计人员都能从证据包直接定位 source commit、release tag、验签结果和验证命令。 @@ -4207,9 +4222,9 @@ baselineReleaseEvidence: ```yaml baselineCompatibilityLedger: - ledgerId: bcl-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + ledgerId: bcl-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board change: changeLevel: minor @@ -4297,9 +4312,9 @@ baselineCompatibilityLedger: ```yaml baselineAdoptionLedger: - ledgerId: bal-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + ledgerId: bal-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board scope: requiredBy: 2026-10-01 @@ -4329,7 +4344,7 @@ baselineAdoptionLedger: - target: domain:order owner: team-order currentBaseline: V2.35 - targetBaseline: V2.50 + targetBaseline: V2.51 conformanceProfile: standard-prod gateLevel: L3 adoptionStatus: in-progress @@ -4338,11 +4353,11 @@ baselineAdoptionLedger: - domains/order/domain.yaml - governance/evidence/conformance/order-domain-baseline-claim.yaml - governance/control-plane/version-governance.yaml - - governance/evidence/control-assessments/order-domain-v250.yaml + - governance/evidence/control-assessments/order-domain-v251.yaml - target: ai-product:customer-service-agent owner: team-support-ai - currentBaseline: V2.50 - targetBaseline: V2.50 + currentBaseline: V2.51 + targetBaseline: V2.51 conformanceProfile: regulated-ai-prod gateLevel: L4 adoptionStatus: adopted @@ -4354,8 +4369,8 @@ baselineAdoptionLedger: - governance/control-plane/release-gate-decision.yaml - target: platform-golden-path:microservice owner: platform-team - currentBaseline: V2.50 - targetBaseline: V2.50 + currentBaseline: V2.51 + targetBaseline: V2.51 conformanceProfile: standard-prod gateLevel: L2 adoptionStatus: adopted @@ -4363,7 +4378,7 @@ baselineAdoptionLedger: evidence: - platform/golden-paths/microservice/template.yaml - governance/evidence/conformance/microservice-golden-path-baseline-claim.yaml - - governance/evidence/platform/microservice-golden-path-v250.yaml + - governance/evidence/platform/microservice-golden-path-v251.yaml exceptions: active: - id: ex-adoption-2026-001 @@ -4414,16 +4429,16 @@ baselineAdoptionLedger: ```yaml baselineSupportMatrix: - matrixId: bsm-20260602-mea-v250 + matrixId: bsm-20260602-mea-v251 owner: architecture-governance-board - currentBaseline: V2.50 + currentBaseline: V2.51 minimumAcceptedBaselines: L2: V2.31 L3: V2.35 - L4: V2.50 + L4: V2.51 baselines: - - version: V2.50 - baselineId: mea-v2.50-20260602 + - version: V2.51 + baselineId: mea-v2.51-20260602 channel: candidate supportState: active supportFrom: 2026-06-02 @@ -4452,7 +4467,7 @@ baselineSupportMatrix: allowedForNewProjects: false allowedGateLevels: - L2 - migrationTarget: V2.50 + migrationTarget: V2.51 - version: V2.31 baselineId: mea-v2.31-20260602 channel: superseded @@ -4463,7 +4478,7 @@ baselineSupportMatrix: allowedForNewProjects: false allowedGateLevels: - L2 - migrationTarget: V2.50 + migrationTarget: V2.51 exceptions: active: - id: ex-support-2026-001 @@ -4517,7 +4532,7 @@ baselineReleaseTrain: owner: architecture-governance-board cadence: quarterly timezone: Asia/Shanghai - currentBaseline: V2.50 + currentBaseline: V2.51 trainWindow: proposalCutoff: 2026-06-10 candidateStart: 2026-06-17 @@ -4575,12 +4590,12 @@ baselineReleaseTrain: - signature-receipt - adoption-ledger plannedBaselines: - - version: V2.50 - baselineId: mea-v2.50-20260602 + - version: V2.51 + baselineId: mea-v2.51-20260602 releaseChannel: candidate targetChannel: baseline sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate requiredLedgers: - governance/evidence/baselines/baseline-lifecycle-state-machine.yaml - governance/evidence/baselines/baseline-state-reconciliation-report.yaml @@ -4664,7 +4679,7 @@ baselineReleaseTrain: ```yaml baselineConformanceClaim: - claimId: bcc-20260602-order-command-service-v250 + claimId: bcc-20260602-order-command-service-v251 asset: id: service:order-command-service type: service @@ -4673,8 +4688,8 @@ baselineConformanceClaim: sourceRoot: domains/order/services/order-command-service catalogRef: catalog/components/order-command-service.yaml claimedBaseline: - version: V2.50 - baselineId: mea-v2.50-20260602 + version: V2.51 + baselineId: mea-v2.51-20260602 releaseTrain: governance/evidence/release-trains/baseline-release-train.yaml supportMatrix: governance/evidence/support/baseline-support-matrix.yaml lifecycleStateMachine: governance/evidence/baselines/baseline-lifecycle-state-machine.yaml @@ -4702,7 +4717,7 @@ baselineConformanceClaim: - infra/gitops/environments/prod/order/order-command-service/kustomization.yaml - governance/evidence/drift/order-command-service-drift.yaml controls: - - governance/evidence/control-assessments/order-command-service-v250.yaml + - governance/evidence/control-assessments/order-command-service-v251.yaml - governance/control-plane/release-gate-decision.yaml supplyChain: - governance/evidence/supply-chain/order-command-service-attestation.yaml @@ -4746,12 +4761,12 @@ baselineConformanceClaim: ```yaml baselineArtifactInventory: - inventoryId: bai-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + inventoryId: bai-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate generatedAt: 2026-06-02T12:00:00+08:00 digestAlgorithm: sha256 scope: @@ -4899,12 +4914,12 @@ baselineArtifactInventory: ```yaml baselineVerificationLock: - lockId: bvl-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + lockId: bvl-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate generatedAt: 2026-06-02T12:15:00+08:00 runner: type: container @@ -5010,9 +5025,9 @@ baselineVerificationLock: ```yaml baselineNotificationLedger: - ledgerId: bnl-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + ledgerId: bnl-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board releaseTrain: governance/evidence/release-trains/baseline-release-train.yaml compatibilityLedger: governance/evidence/compatibility/baseline-compatibility-ledger.yaml @@ -5146,19 +5161,19 @@ baselineNotificationLedger: ```yaml baselineRollbackVerification: - verificationId: brv-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + verificationId: brv-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board currentBaseline: - version: V2.50 - releaseTag: architecture/v2.50-candidate + version: V2.51 + releaseTag: architecture/v2.51-candidate sourceCommit: releaseEvidence: governance/evidence/baselines/baseline-release-evidence.yaml rollbackTarget: - version: V2.49 - baselineId: mea-v2.49-20260602 - releaseTag: architecture/v2.49-candidate + version: V2.50 + baselineId: mea-v2.50-20260602 + releaseTag: architecture/v2.50-candidate sourceCommit: supportState: active supportMatrix: governance/evidence/support/baseline-support-matrix.yaml @@ -5170,7 +5185,7 @@ baselineRollbackVerification: - platform-sre-reviewer checks: - checkId: git-tag-checkout - command: git checkout architecture/v2.49-candidate + command: git checkout architecture/v2.50-candidate expectedResult: pass result: pass evidenceDigest: sha256: @@ -5251,9 +5266,9 @@ POA&M 中的例外统一收敛到同一份基线证据,回答“哪些例外 ```yaml baselineExceptionLedger: - ledgerId: bel-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + ledgerId: bel-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board generatedAt: 2026-06-02T13:30:00+08:00 linkedEvidence: @@ -5370,9 +5385,9 @@ baselineExceptionLedger: ```yaml baselineReadinessScorecard: - scorecardId: brs-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + scorecardId: brs-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board generatedAt: 2026-06-02T14:00:00+08:00 scoringPolicy: @@ -5516,16 +5531,16 @@ baselineReadinessScorecard: ```yaml baselineLifecycleStateMachine: - machineId: blsm-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + machineId: blsm-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board generatedAt: 2026-06-02T14:30:00+08:00 currentState: state: candidate enteredAt: 2026-06-02T14:30:00+08:00 source: governance/control-plane/version-governance.yaml - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate sourceCommit: states: - state: draft @@ -5854,20 +5869,21 @@ baselineLifecycleStateMachine: ```yaml baselineStateReconciliationReport: - reportId: bsr-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + reportId: bsr-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board generatedAt: 2026-06-02T14:45:00+08:00 expectedState: lifecycleState: candidate - documentVersion: V2.50 - baselineId: mea-v2.50-20260602 - releaseTag: architecture/v2.50-candidate + documentVersion: V2.51 + baselineId: mea-v2.51-20260602 + releaseTag: architecture/v2.51-candidate sourceCommit: inputs: lifecycleStateMachine: governance/evidence/baselines/baseline-lifecycle-state-machine.yaml versionGovernance: governance/control-plane/version-governance.yaml + enforcementPolicy: governance/control-plane/baseline-enforcement-policy.yaml releaseEvidence: governance/evidence/baselines/baseline-release-evidence.yaml evidenceTraceGraph: governance/evidence/baselines/baseline-evidence-trace-graph.yaml gateExecutionReport: governance/evidence/baselines/baseline-gate-execution-report.yaml @@ -5885,39 +5901,39 @@ baselineStateReconciliationReport: observedState: lifecycleStateMachine: lifecycleState: candidate - documentVersion: V2.50 - baselineId: mea-v2.50-20260602 - releaseTag: architecture/v2.50-candidate + documentVersion: V2.51 + baselineId: mea-v2.51-20260602 + releaseTag: architecture/v2.51-candidate sourceCommit: status: match versionGovernance: releaseChannel: candidate status: Baseline Candidate - documentVersion: V2.50 - baselineId: mea-v2.50-20260602 - releaseTag: architecture/v2.50-candidate + documentVersion: V2.51 + baselineId: mea-v2.51-20260602 + releaseTag: architecture/v2.51-candidate sourceCommit: status: match releaseEvidence: promotionFrom: candidate promotionTo: baseline - documentVersion: V2.50 - baselineId: mea-v2.50-20260602 - releaseTag: architecture/v2.50-candidate + documentVersion: V2.51 + baselineId: mea-v2.51-20260602 + releaseTag: architecture/v2.51-candidate status: match evidenceTraceGraph: - graphId: betg-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + graphId: betg-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 requiredNodesMissing: 0 digestMismatches: 0 danglingEdges: 0 staleConsumers: 0 status: match gateExecutionReport: - reportId: bger-20260602-mea-v250-candidate-to-baseline - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + reportId: bger-20260602-mea-v251-candidate-to-baseline + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 result: pass rulesExecuted: 12 blockingFailures: 0 @@ -5925,20 +5941,30 @@ baselineStateReconciliationReport: decisionMatchesExecution: true status: match publishTransaction: - transactionId: bpt-20260602-mea-v250-candidate - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + transactionId: bpt-20260602-mea-v251-candidate + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate remoteRefVerified: true protectedRefsVerified: true forbiddenLocalAssetsAbsentFromRemote: true postPublishVerification: pass status: match + enforcementPolicy: + policyId: bep-20260602-mea-v251 + minimumAcceptableBaseline: V2.50 + targetBaseline: V2.51 + unsupportedBaselineBlocked: true + revokedOrEolBaselineBlocked: true + conformanceClaimRequired: true + expiredExceptionBlocked: true + decisionLogDigest: sha256: + status: match revocationRecord: revocationId: not-applicable - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 currentDisposition: not-revoked quarantineRequired: false revoked: false @@ -5947,14 +5973,14 @@ baselineStateReconciliationReport: status: not-applicable reviewBoardDecision: meetingScope: candidate-to-baseline - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 decision: approve-baseline quorumMet: true openDissentingOpinions: 0 status: match supportMatrix: - currentBaseline: V2.50 + currentBaseline: V2.51 supportState: active channel: candidate status: match @@ -5963,24 +5989,24 @@ baselineStateReconciliationReport: requiredForCurrentTransition: false status: not-applicable releaseTrain: - currentBaseline: V2.50 - plannedBaseline: V2.50 + currentBaseline: V2.51 + plannedBaseline: V2.51 releaseChannel: candidate targetChannel: baseline status: match adoptionLedger: - targetBaseline: V2.50 + targetBaseline: V2.51 unknownTargets: 0 overdueTargets: 0 status: match conformanceClaims: - claimedBaseline: V2.50 + claimedBaseline: V2.51 expiredClaims: 0 lowerThanMinimumAcceptedBaseline: 0 status: match auditExportManifest: - documentVersion: V2.50 - baselineId: mea-v2.50-20260602 + documentVersion: V2.51 + baselineId: mea-v2.51-20260602 exportDigest: sha256: status: match driftFindings: @@ -5990,6 +6016,7 @@ baselineStateReconciliationReport: low: [] writeBack: versionGovernanceUpdated: true + enforcementPolicyDecisionLogged: true releaseEvidenceDigestUpdated: true supportMatrixUpdated: true adoptionLedgerReconciled: true @@ -6023,12 +6050,12 @@ baselineStateReconciliationReport: 执行规则: 1. `baseline-state-reconciliation-report.yaml` 必须在 `candidate -> baseline`、`baseline -> frozen`、`baseline -> emergency-patch`、`baseline -> superseded` 和 `superseded -> eol` 前生成。 -2. 对账输入至少覆盖生命周期状态机、版本控制面、发布证据包、证据追踪图、门禁执行报告、发布事务回执、撤销隔离记录、会审裁决记录、发布列车、支持矩阵、EOL 退役证书、采纳总账、符合性声明、制品清单、验证锁和审计导出清单。 +2. 对账输入至少覆盖生命周期状态机、版本控制面、基线准入执行策略、发布证据包、证据追踪图、门禁执行报告、发布事务回执、撤销隔离记录、会审裁决记录、发布列车、支持矩阵、EOL 退役证书、采纳总账、符合性声明、制品清单、验证锁和审计导出清单。 3. `baselineId`、`documentVersion`、`releaseTag`、`sourceCommit` 和生命周期状态在任何权威账本中不一致时,必须阻断晋级。 4. `releaseEvidence` 允许声明目标状态,例如 `candidate -> baseline`,但必须同时能证明当前状态仍来自状态机,不能把目标状态误当当前状态。 -5. `writeBack` 必须证明状态迁移后的版本控制面、支持矩阵、EOL 退役证书、发布证据摘要、采纳总账和审计导出清单已经更新。 +5. `writeBack` 必须证明状态迁移后的版本控制面、基线准入执行策略、支持矩阵、EOL 退役证书、发布证据摘要、采纳总账和审计导出清单已经更新。 6. 对账报告本身必须进入发布证据包摘要和审计导出包,不能只作为临时检查日志。 -7. 任何 `conflict`、`missing`、`stale`、证据追踪图断链、门禁执行报告失败、重放失败、发布事务失败、撤销隔离状态冲突、远端 ref 不匹配、保护规则缺失或 critical/high drift 都必须进入 release gate 阻断、POA&M 或风险接受,不能被就绪总分覆盖。 +7. 任何 `conflict`、`missing`、`stale`、准入策略执行失败、证据追踪图断链、门禁执行报告失败、重放失败、发布事务失败、撤销隔离状态冲突、远端 ref 不匹配、保护规则缺失或 critical/high drift 都必须进入 release gate 阻断、POA&M 或风险接受,不能被就绪总分覆盖。 可执行验收标准: @@ -6038,6 +6065,7 @@ baselineStateReconciliationReport: 4. 任意审计导出都能证明导出的状态与版本控制面、状态机和支持矩阵一致。 5. 任意状态回写失败都会阻断下一次晋级,直到重新生成受影响账本和对账报告。 6. 任意撤销、隔离或恢复裁决都能在状态对账报告中看到当前 disposition、受影响引用数、采纳阻断状态和审计归档状态。 +7. 任意运行入口准入结果都能在状态对账报告中看到最低基线、撤销/EOL、资产声明和例外到期的策略执行状态。 ### 10.10.23 基线 EOL 退役证书 @@ -6047,17 +6075,18 @@ baselineStateReconciliationReport: ```yaml baselineEolRetirementCertificate: - certificateId: berc-20260602-mea-v249-to-v250 - retiredBaselineId: mea-v2.49-20260602 - retiredDocumentVersion: V2.49 - successorBaselineId: mea-v2.50-20260602 - successorDocumentVersion: V2.50 + certificateId: berc-20260602-mea-v250-to-v251 + retiredBaselineId: mea-v2.50-20260602 + retiredDocumentVersion: V2.50 + successorBaselineId: mea-v2.51-20260602 + successorDocumentVersion: V2.51 owner: architecture-governance-board issuedAt: 2026-06-02T16:30:00+08:00 eolEffectiveAt: 2026-09-01T00:00:00+08:00 inputs: lifecycleStateMachine: governance/evidence/baselines/baseline-lifecycle-state-machine.yaml stateReconciliation: governance/evidence/baselines/baseline-state-reconciliation-report.yaml + enforcementPolicy: governance/control-plane/baseline-enforcement-policy.yaml evidenceTraceGraph: governance/evidence/baselines/baseline-evidence-trace-graph.yaml gateExecutionReport: governance/evidence/baselines/baseline-gate-execution-report.yaml publishTransaction: governance/evidence/baselines/baseline-publish-transaction.yaml @@ -6115,14 +6144,17 @@ baselineEolRetirementCertificate: exceptionLedgerClosed: true enforcement: newAdoptionBlocked: true + baselineEnforcementPolicyUpdated: true + runtimeAdmissionRejectsRetiredBaseline: true platformScaffoldRejectsRetiredBaseline: true catalogRegistrationRejectsRetiredBaseline: true gitopsPolicyRejectsRetiredBaseline: true releaseGateRejectsRetiredBaseline: true runtimeDriftAlertEnabled: true + policyBundleDigest: sha256: evidenceRetention: archived: true - archiveLocation: governance/archive/baselines/mea-v2.49-20260602/ + archiveLocation: governance/archive/baselines/mea-v2.50-20260602/ retainedUntil: 2031-09-01 auditExportDigest: sha256: provenanceDigest: sha256: @@ -6173,14 +6205,14 @@ baselineEolRetirementCertificate: 1. `baseline-eol-retirement-certificate.yaml` 只服务于 `superseded -> eol`,不能用于跳过 `baseline -> superseded` 或 `frozen -> superseded`。 2. 生产引用清零必须同时来自 catalog、GitOps、runtime inventory 和资产侧符合性声明,不能只依赖中央台账。 3. `openTargets`、`overdueTargets`、`activeExceptions`、`expiredExceptions` 和 `unknownReferences` 任一大于 0,必须阻断 EOL。 -4. EOL 后不得允许新项目、平台脚手架、catalog 注册、GitOps 变更或 release gate 继续声明退役基线。 -5. 退役证书必须进入状态对账报告、支持矩阵、发布证据包和审计导出包;不能作为一次性检查日志留在 CI 输出里。 +4. EOL 后不得允许新项目、平台脚手架、catalog 注册、GitOps 变更、runtime admission 或 release gate 继续声明退役基线;该阻断必须由 `baseline-enforcement-policy.yaml` 执行并记录。 +5. 退役证书必须进入基线准入执行策略、状态对账报告、支持矩阵、发布证据包和审计导出包;不能作为一次性检查日志留在 CI 输出里。 6. 退役后的直接回滚默认禁止;确需恢复时必须生成新的 baseline ID、发布证据、状态机和风险接受记录。 可执行验收标准: 1. 任意 EOL 基线都能找到一份退役证书,证明支持矩阵、采纳总账、兼容性总账、catalog、GitOps 和 runtime 的使用状态一致。 -2. 任意生产资产都不能在 EOL 后继续声明退役基线;若发现引用,release gate 和 drift gate 必须阻断。 +2. 任意生产资产都不能在 EOL 后继续声明退役基线;若发现引用,基线准入执行策略、release gate、runtime admission 和 drift gate 必须阻断。 3. 任意审计人员都能看到迁移目标总数、完成数、退役数、风险接受数、开放数和逾期数。 4. 任意退役基线都能证明审计导出、provenance、签名验签回执和关键证据已经归档到长期留存位置。 5. 任意重新启用 EOL 基线的请求都必须被拒绝或转化为新基线流程,不能修改旧基线状态。 @@ -6193,9 +6225,9 @@ baselineEolRetirementCertificate: ```yaml baselineReviewBoardDecision: - decisionId: brbd-20260602-mea-v250-candidate-to-baseline - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + decisionId: brbd-20260602-mea-v251-candidate-to-baseline + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 meetingScope: candidate-to-baseline requestedBy: architecture-governance-board chairedBy: chief-architect @@ -6224,6 +6256,10 @@ baselineReviewBoardDecision: path: governance/evidence/baselines/baseline-state-reconciliation-report.yaml digest: sha256: result: pass + enforcementPolicy: + path: governance/control-plane/baseline-enforcement-policy.yaml + digest: sha256: + result: pass evidenceTraceGraph: path: governance/evidence/baselines/baseline-evidence-trace-graph.yaml digest: sha256: @@ -6341,10 +6377,10 @@ baselineReviewBoardDecision: 执行规则: 1. `candidate -> baseline`、`baseline -> frozen`、`baseline -> emergency-patch`、`baseline/frozen -> superseded`、`baseline/frozen -> quarantined`、`quarantined -> revoked` 和 `superseded -> eol` 前必须形成会审裁决记录。 -2. 强制角色未投票、`quorumMet=false`、开放反对意见大于 0、必需证据核验失败或裁决过期,必须阻断晋级。 +2. 强制角色未投票、`quorumMet=false`、开放反对意见大于 0、基线准入执行策略未执行、必需证据核验失败或裁决过期,必须阻断晋级。 3. `approve-with-condition` 必须列出 `requiredActions`、owner、到期时间、阻断范围和补证路径;没有这些字段时不得放行。 4. 任何反对意见不得只停留在会议纪要中,必须进入 `dissentingOpinions`,并关闭、转风险接受、转 POA&M 或转必需动作。 -5. 会审裁决摘要必须写入 `baseline-release-evidence.yaml`、状态对账报告和审计导出包;不能只作为人工会议记录保存。 +5. 会审裁决摘要必须写入 `baseline-release-evidence.yaml`、基线准入执行策略、状态对账报告和审计导出包;不能只作为人工会议记录保存。 6. 会审裁决超过 `decisionValidUntil` 后自动失效,必须重新核验证据并重新签署。 可执行验收标准: @@ -6354,6 +6390,7 @@ baselineReviewBoardDecision: 3. 任意反对意见都能看到提出人、关注点、处置方式和关闭证据。 4. 任意审计人员都能判断会审结论是否仍在有效期内,以及是否足以支持 baseline、frozen、emergency patch、superseded 或 EOL。 5. 任意会审裁决和发布证据包的 baseline ID、文档版本、source commit、release tag 和关键证据摘要必须一致。 +6. 任意会审裁决都能证明最低基线、撤销/EOL、资产声明和例外到期已经通过准入策略校验。 ### 10.10.25 基线证据追踪图 @@ -6362,9 +6399,9 @@ baselineReviewBoardDecision: ```yaml baselineEvidenceTraceGraph: - graphId: betg-20260602-mea-v250 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + graphId: betg-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board generatedAt: 2026-06-02T18:10:00+08:00 graphDigest: @@ -6375,7 +6412,7 @@ baselineEvidenceTraceGraph: releaseChannel: candidate lifecycleState: candidate sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate tagSignatureVerified: true nodes: - id: baseline-evidence-trace-graph @@ -6457,6 +6494,23 @@ baselineEvidenceTraceGraph: - baseline-review-board-decision - baseline-state-reconciliation-report - audit-export-manifest + - id: baseline-enforcement-policy + type: admission-policy + path: governance/control-plane/baseline-enforcement-policy.yaml + digest: sha256: + producer: governance-platform + requiredFor: + - candidate-to-baseline + - baseline-to-frozen + - baseline-to-quarantined + - superseded-to-eol + status: present + consumedBy: + - baseline-release-evidence + - baseline-gate-execution-report + - baseline-review-board-decision + - baseline-state-reconciliation-report + - audit-export-manifest - id: baseline-revocation-record type: revocation-record path: governance/evidence/baselines/baseline-revocation-record.yaml @@ -6588,6 +6642,11 @@ baselineEvidenceTraceGraph: relation: records-publish-transaction-digest digestReferenceMatches: true blocking: true + - from: baseline-release-evidence + to: baseline-enforcement-policy + relation: records-admission-policy-digest + digestReferenceMatches: true + blocking: true - from: baseline-release-evidence to: baseline-revocation-record relation: records-revocation-disposition @@ -6608,6 +6667,11 @@ baselineEvidenceTraceGraph: relation: reviews-publish-transaction digestReferenceMatches: true blocking: true + - from: baseline-review-board-decision + to: baseline-enforcement-policy + relation: reviews-admission-policy + digestReferenceMatches: true + blocking: true - from: baseline-review-board-decision to: baseline-revocation-record relation: reviews-revocation-disposition @@ -6628,6 +6692,11 @@ baselineEvidenceTraceGraph: relation: reconciles-publish-transaction-state digestReferenceMatches: true blocking: true + - from: baseline-state-reconciliation-report + to: baseline-enforcement-policy + relation: reconciles-admission-policy-state + digestReferenceMatches: true + blocking: true - from: baseline-state-reconciliation-report to: baseline-revocation-record relation: reconciles-revocation-state @@ -6649,6 +6718,7 @@ baselineEvidenceTraceGraph: - baseline-release-evidence - baseline-gate-execution-report - baseline-publish-transaction + - baseline-enforcement-policy - baseline-readiness-scorecard - baseline-artifact-inventory - baseline-verification-lock @@ -6662,6 +6732,7 @@ baselineEvidenceTraceGraph: - baseline-evidence-trace-graph - baseline-gate-execution-report - baseline-publish-transaction + - baseline-enforcement-policy - baseline-revocation-record - baseline-readiness-scorecard - baseline-notification-ledger @@ -6673,6 +6744,7 @@ baselineEvidenceTraceGraph: baseline-to-quarantined: requiredNodes: - baseline-evidence-trace-graph + - baseline-enforcement-policy - baseline-revocation-record - baseline-state-reconciliation-report - baseline-review-board-decision @@ -6682,6 +6754,7 @@ baselineEvidenceTraceGraph: frozen-to-quarantined: requiredNodes: - baseline-evidence-trace-graph + - baseline-enforcement-policy - baseline-revocation-record - baseline-state-reconciliation-report - baseline-review-board-decision @@ -6691,6 +6764,7 @@ baselineEvidenceTraceGraph: quarantined-to-revoked: requiredNodes: - baseline-evidence-trace-graph + - baseline-enforcement-policy - baseline-revocation-record - baseline-state-reconciliation-report - baseline-review-board-decision @@ -6710,6 +6784,10 @@ baselineEvidenceTraceGraph: gateExecutionReplayPasses: true publishTransactionRemoteRefsMatch: true publishTransactionPostVerificationPasses: true + enforcementPolicyBlocksUnsupportedBaseline: true + enforcementPolicyBlocksRevokedOrEolBaseline: true + enforcementPolicyRequiresConformanceClaim: true + enforcementPolicyBlocksExpiredException: true revocationRecordBlocksNewAdoptionWhenRevoked: true revocationRecordArchivedWhenClosed: true findings: @@ -6764,9 +6842,9 @@ baselineEvidenceTraceGraph: ```yaml baselineGateExecutionReport: - reportId: bger-20260602-mea-v250-candidate-to-baseline - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + reportId: bger-20260602-mea-v251-candidate-to-baseline + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: governance-platform generatedAt: 2026-06-02T18:40:00+08:00 execution: @@ -6879,9 +6957,9 @@ baselineGateExecutionReport: ```yaml baselinePublishTransaction: - transactionId: bpt-20260602-mea-v250-candidate - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + transactionId: bpt-20260602-mea-v251-candidate + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: release-engineering startedAt: 2026-06-02T19:10:00+08:00 completedAt: 2026-06-02T19:20:00+08:00 @@ -6907,7 +6985,7 @@ baselinePublishTransaction: - docs/README.md - docs/references/README.md tag: - name: architecture/v2.50-candidate + name: architecture/v2.51-candidate targetCommit: signed: true signatureVerified: true @@ -6918,7 +6996,7 @@ baselinePublishTransaction: branchRef: refs/heads/develop branchRefBefore: branchRefAfter: - tagRef: refs/tags/architecture/v2.50-candidate + tagRef: refs/tags/architecture/v2.51-candidate pushResult: pass remoteRefVerified: true protection: @@ -6934,7 +7012,7 @@ baselinePublishTransaction: postPublishVerification: commands: - git ls-remote --heads origin develop - - git ls-remote --tags origin architecture/v2.50-candidate + - git ls-remote --tags origin architecture/v2.51-candidate - make test result: pass decision: @@ -6983,9 +7061,9 @@ baselinePublishTransaction: ```yaml baselineRevocationRecord: - revocationId: brr-20260602-mea-v250-001 - baselineId: mea-v2.50-20260602 - documentVersion: V2.50 + revocationId: brr-20260602-mea-v251-001 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 owner: architecture-governance-board openedAt: 2026-06-02T20:10:00+08:00 currentDisposition: not-revoked @@ -6997,16 +7075,18 @@ baselineRevocationRecord: reason: 当前基线未触发撤销;本记录用于证明撤销门禁存在并可执行。 immutableRefs: sourceCommit: - releaseTag: architecture/v2.50-candidate + releaseTag: architecture/v2.51-candidate publishTransaction: governance/evidence/baselines/baseline-publish-transaction.yaml releaseEvidence: governance/evidence/baselines/baseline-release-evidence.yaml quarantine: required: false startedAt: null blockedNewAdoption: false + blockedReleaseGate: false blockedGitopsPromotion: false blockedPlatformScaffolds: false blockedCatalogRegistration: false + blockedRuntimeAdmission: false affectedReferences: catalog: 0 gitops: 0 @@ -7031,13 +7111,14 @@ baselineRevocationRecord: writeBack: lifecycleStateMachineUpdated: true stateReconciliationUpdated: true + enforcementPolicyUpdated: true supportMatrixUpdated: true adoptionLedgerUpdated: true releaseTrainPaused: false auditExportManifestUpdated: true evidenceRetention: archived: true - archiveLocation: governance/archive/baselines/mea-v2.50-20260602/revocation/ + archiveLocation: governance/archive/baselines/mea-v2.51-20260602/revocation/ retainedUntil: 2031-06-02 gates: blockIfQuarantineRequiredAndNotStarted: true @@ -7062,21 +7143,165 @@ baselineRevocationRecord: 执行规则: 1. 已发布基线出现签名密钥泄露、tag 指向错误、source commit 错配、证据污染、禁推资产进入远端、门禁误放行或远端保护失效时,必须生成或更新 `baseline-revocation-record.yaml`。 -2. 进入 `quarantined` 或 `revoked` 前,必须阻断新采用、GitOps 晋级、平台脚手架和 catalog 注册;否则不能把撤销处置标记为完成。 +2. 进入 `quarantined` 或 `revoked` 前,必须阻断新采用、release gate、GitOps 晋级、runtime admission、平台脚手架和 catalog 注册;否则不能把撤销处置标记为完成。 3. `affectedReferences` 必须同时来自 catalog、GitOps、runtime inventory 和资产侧符合性声明,不能只依赖中央台账。 4. 撤销恢复只能走 `restored`、`superseded-by-replacement` 或新 baseline;不得通过直接修改旧 tag、旧 commit 或旧审计导出包恢复。 -5. 撤销记录必须进入状态机、状态对账报告、发布证据包、证据追踪图、会审裁决、支持矩阵、采纳总账和审计导出包。 +5. 撤销记录必须进入状态机、基线准入执行策略、状态对账报告、发布证据包、证据追踪图、会审裁决、支持矩阵、采纳总账和审计导出包。 6. 任意撤销都必须通知受影响 owner;未确认、异议或风险接受必须进入通知总账、例外总账、POA&M 或风险登记。 7. 撤销关闭后必须保留审计归档;归档缺失时,`release-gate-decision.yaml` 不得允许后续 frozen、EOL 或替代基线关闭。 可执行验收标准: 1. 任意已发布基线都能证明是否触发撤销;没有触发时也能看到 `not-revoked` 的处置记录。 -2. 任意已隔离或已撤销基线都能证明新采用已阻断、受影响引用已盘点、owner 已通知、恢复目标已验证。 +2. 任意已隔离或已撤销基线都能证明新采用、release gate、GitOps 晋级、runtime admission、平台脚手架和 catalog 注册已阻断,受影响引用已盘点,owner 已通知,恢复目标已验证。 3. 任意撤销恢复都能证明它不是改旧 tag 或口头恢复,而是通过回滚验证、替代基线、会审裁决和状态回写完成。 4. 任意审计人员都能从撤销记录追到发布事务、发布证据、状态对账、通知确认、风险接受和审计归档。 5. 任意签名泄露、证据污染或禁推资产误入远端都不能只靠删除文件解决;必须留下撤销与隔离记录。 +### 10.10.29 基线准入执行策略 + +`baseline-enforcement-policy.yaml` 是版本基线进入运行入口前的统一准入策略。它不替代支持矩阵、采纳总账、 +资产符合性声明、撤销记录或例外总账;它负责把这些账本翻译成 release gate、GitOps、catalog、平台脚手架、 +Developer Portal 和运行准入可以执行的阻断规则。 + +```yaml +baselineEnforcementPolicy: + policyId: bep-20260602-mea-v251 + baselineId: mea-v2.51-20260602 + documentVersion: V2.51 + owner: governance-platform + policyEngine: + primary: OPA + supported: + - OPA + - Cedar + - Kyverno + bundleRef: governance/policies/baseline-enforcement/bundle.tar.gz + bundleDigest: sha256: + inputs: + versionGovernance: governance/control-plane/version-governance.yaml + supportMatrix: governance/evidence/support/baseline-support-matrix.yaml + adoptionLedger: governance/evidence/adoption/baseline-adoption-ledger.yaml + conformanceClaims: governance/evidence/conformance/baseline-conformance-claim.yaml + exceptionLedger: governance/evidence/exceptions/baseline-exception-ledger.yaml + revocationRecord: governance/evidence/baselines/baseline-revocation-record.yaml + eolRetirementCertificate: governance/evidence/baselines/baseline-eol-retirement-certificate.yaml + stateReconciliation: governance/evidence/baselines/baseline-state-reconciliation-report.yaml + scope: + admissionPoints: + - release-gate + - gitops-promotion + - catalog-registration + - platform-golden-path-scaffold + - developer-portal-template + - runtime-admission + assetTypes: + - domain + - service + - data-product + - ai-product + - platform-capability + - gitops-environment + rules: + - id: baseline-minimum-version + blocking: true + effect: deny + condition: asset.baseline < supportMatrix.minimumAcceptedBaselines[asset.gateLevel] + exceptionAllowed: true + - id: baseline-support-state + blocking: true + effect: deny + condition: baseline.supportState in ["security-only", "superseded", "eol"] and request.type in ["new-project", "new-adoption", "promotion"] + exceptionAllowed: false + - id: baseline-revoked-or-quarantined + blocking: true + effect: deny + condition: revocationRecord.currentDisposition in ["quarantine-required", "quarantined", "revoked"] + exceptionAllowed: false + - id: baseline-eol-runtime + blocking: true + effect: deny + condition: baseline.supportState == "eol" and request.type in ["deploy", "promote", "register", "scaffold"] + exceptionAllowed: false + - id: conformance-claim-required + blocking: true + effect: deny + condition: asset.gateLevel in ["L3", "L4"] and asset.conformanceClaim.status != "signed" + exceptionAllowed: true + - id: exception-expiry + blocking: true + effect: deny + condition: exception.status == "expired" or exception.riskAcceptanceMissing == true + exceptionAllowed: false + decisions: + - requestId: gitops-prod-order-service-20260602 + asset: service:order-command + admissionPoint: gitops-promotion + requestedBaseline: V2.51 + gateLevel: L3 + result: allow + evaluatedRules: + deny: 0 + warn: 1 + evidence: + supportMatrixDigest: sha256: + conformanceClaimDigest: sha256: + exceptionLedgerDigest: sha256: + decisionLoggedAt: 2026-06-02T21:00:00+08:00 + - requestId: catalog-legacy-billing-20260602 + asset: service:legacy-billing-adapter + admissionPoint: catalog-registration + requestedBaseline: V2.33 + gateLevel: L4 + result: deny + deniedBy: + - baseline-minimum-version + remediation: + targetBaseline: V2.51 + exceptionPath: governance/evidence/exceptions/baseline-exception-ledger.yaml + poam: governance/evidence/poam/legacy-billing-adapter-poam.yaml + writeBack: + releaseGateDecisionUpdated: true + gateExecutionReportUpdated: true + adoptionLedgerUpdated: true + stateReconciliationUpdated: true + auditExportManifestUpdated: true + gates: + blockIfPolicyBundleMissing: true + blockIfDecisionNotLogged: true + blockIfUnsupportedBaselineAllowed: true + blockIfRevokedOrEolBaselineAllowed: true + blockIfExpiredExceptionAllowed: true +``` + +准入决策结果只能使用以下值: + +| 结果 | 含义 | 是否允许继续 | +| ---- | ---- | ------------ | +| `allow` | 所有阻断规则通过 | 是 | +| `warn` | 仅非阻断规则触发,必须记录改进动作 | 是 | +| `conditional-allow` | 有未过期例外、POA&M 或风险接受 | 视到期日而定 | +| `deny` | 至少一条阻断规则命中 | 否 | +| `break-glass` | 紧急放行,必须有事件编号、到期和事后复核 | 短期允许 | + +执行规则: + +1. 所有 L3 / L4 生产资产的发布、GitOps 晋级、catalog 注册和平台脚手架创建必须执行 `baseline-enforcement-policy.yaml`。 +2. 支持矩阵中低于最低可接受基线、`eol`、`security-only` 或 `superseded` 且不允许新采用的基线,不得被新项目、模板或 GitOps 晋级使用。 +3. 撤销记录处于 `quarantine-required`、`quarantined` 或 `revoked` 时,不得通过例外恢复新采用;只能走恢复裁决、替代基线或回滚验证。 +4. 资产符合性声明缺失、过期或未签署时,L3 / L4 资产不得进入 `baseline`、`frozen` 或生产 GitOps 晋级。 +5. 例外只能影响允许例外的规则;过期例外、无风险接受例外、无 POA&M 例外必须被阻断。 +6. 策略执行必须记录决策 ID、输入摘要、命中规则、结果、整改路径和写回对象,不能只在 CI 日志中输出自然语言。 +7. 策略语言可以使用 OPA、Cedar 或 Kyverno,但同一企业基线必须声明主策略引擎和 bundle 摘要,避免团队各写一套不可比较的规则。 + +可执行验收标准: + +1. 任意生产发布都能证明它经过了基线准入执行策略,而不是只看支持矩阵或采纳总账。 +2. 任意低于最低可接受基线的 L3 / L4 资产都会被阻断,除非存在未过期、可审计、允许例外的策略路径。 +3. 任意撤销、隔离或 EOL 基线都不能被新项目、GitOps 晋级、catalog 注册或平台脚手架继续采用。 +4. 任意策略放行都能追到输入账本摘要、策略 bundle 摘要、命中规则、决策记录和 release gate 写回。 +5. 任意 `break-glass` 都必须进入例外总账、风险登记、POA&M、事故复盘或会审裁决,且有明确到期和回收动作。 + ## 10.11 仓库拓扑剖面 目录结构可以按企业规模、团队自治程度和合规要求裁剪,但真相源边界不能裁剪。仓库拓扑的选择应先看 ownership、变更频率、权限隔离、发布节奏和审计要求,而不是看团队偏好的 Git 管理方式。 @@ -7184,7 +7409,7 @@ baselineRevocationRecord: starter kit 校验命令 ``` -该命令是仓库内零依赖 starter gate,用于校验版本清单、控制项覆盖清单、83 组示例的 JSON Schema 子集、YAML 示例、嵌套必填字段、格式约束、数值阈值、严格 schema 模式、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线符合性声明、基线发布列车、基线支持矩阵、基线采纳总账、基线兼容性总账、基线发布证据包、版本控制面、外部标准版本锁定、企业执行控制面、合规等级、门禁决策、仓库变更控制、远端保护漂移整改、访问复核、密钥轮换、漏洞修复、事故复盘、证据新鲜度、AI 证据账本、微调运行证据、AI 事件响应 playbook、控制证据映射、审计导出清单、审计导出自动化命令、控制评估报告、架构基线变更记录、架构决策记录、OSCAL 交换映射、POA&M 整改计划、企业架构风险登记、审计导出门禁、审计导出完整性清单、审计导出 provenance statement、审计导出签名策略、审计导出签名验签回执、未知字段阻断、证据链字段和示例间一致性。企业生产落地时应优先接入成熟校验器,例如 JSON Schema draft 2020-12 validator、YAML parser、OpenAPI / AsyncAPI checker、OPA / Cedar / Kyverno policy test、SLSA / Sigstore verifier、OpenTelemetry collector、OpenCost / FOCUS 工具链、IAM / Secret 管理系统、漏洞管理平台、事故管理系统、OSCAL 工具链和 GitOps diff 工具;本仓库脚本只作为 starter kit 的最小可执行证明。 +该命令是仓库内零依赖 starter gate,用于校验版本清单、控制项覆盖清单、84 组示例的 JSON Schema 子集、YAML 示例、嵌套必填字段、格式约束、数值阈值、严格 schema 模式、基线准入执行策略、基线撤销与隔离记录、基线发布事务回执、基线门禁执行报告、基线证据追踪图、基线会审裁决记录、基线 EOL 退役证书、基线状态对账报告、基线生命周期状态机、基线就绪评分卡、基线例外总账、基线回滚验证记录、基线通知确认总账、基线验证环境锁定、基线制品清单、基线符合性声明、基线发布列车、基线支持矩阵、基线采纳总账、基线兼容性总账、基线发布证据包、版本控制面、外部标准版本锁定、企业执行控制面、合规等级、门禁决策、仓库变更控制、远端保护漂移整改、访问复核、密钥轮换、漏洞修复、事故复盘、证据新鲜度、AI 证据账本、微调运行证据、AI 事件响应 playbook、控制证据映射、审计导出清单、审计导出自动化命令、控制评估报告、架构基线变更记录、架构决策记录、OSCAL 交换映射、POA&M 整改计划、企业架构风险登记、审计导出门禁、审计导出完整性清单、审计导出 provenance statement、审计导出签名策略、审计导出签名验签回执、未知字段阻断、证据链字段和示例间一致性。企业生产落地时应优先接入成熟校验器,例如 JSON Schema draft 2020-12 validator、YAML parser、OpenAPI / AsyncAPI checker、OPA / Cedar / Kyverno policy test、SLSA / Sigstore verifier、OpenTelemetry collector、OpenCost / FOCUS 工具链、IAM / Secret 管理系统、漏洞管理平台、事故管理系统、OSCAL 工具链和 GitOps diff 工具;本仓库脚本只作为 starter kit 的最小可执行证明。 审计导出包由以下命令生成: @@ -7231,6 +7456,7 @@ governance/control-plane/{control-plane}.yaml governance/control-plane/{release-gate-decision}.yaml governance/control-plane/{standards-baseline}.yaml governance/control-plane/{version-governance}.yaml +governance/control-plane/{baseline-enforcement-policy}.yaml governance/evidence/baselines/{baseline-lifecycle-state-machine}.yaml governance/evidence/baselines/{baseline-state-reconciliation-report}.yaml governance/evidence/baselines/{baseline-evidence-trace-graph}.yaml @@ -7331,6 +7557,7 @@ starter kit 校验命令 38. 基线门禁执行报告、门禁命令、runner 镜像、策略包、schema 包、输入摘要、规则结果、退出码、重放结果和最终决策一致性检查。 39. 基线发布事务回执、提交前检查、干净工作树、source commit、签名 tag、远端 ref、push 回执、保护规则、禁推资产排除和发布后验证检查。 40. 基线撤销与隔离记录、撤销触发、隔离范围、受影响引用、通知确认、恢复目标、风险接受、状态回写和审计归档检查。 +41. 基线准入执行策略、最低可接受基线、支持状态、撤销/EOL、资产符合性声明、例外有效期、策略包、决策日志和运行入口阻断检查。 ### 10.13.2 审计证据索引 @@ -7370,6 +7597,7 @@ starter kit 校验命令 | 基线证据追踪图证据 | 证据节点、依赖边、摘要一致性、下游消费、孤儿证据、断链阻断和审计导出包含状态 | 治理团队、平台团队、安全团队和审计团队 | 覆盖每次企业基线晋级、冻结、紧急补丁、替代和 EOL | | 基线门禁执行证据 | 门禁命令、runner 镜像、策略包、schema 包、输入摘要、规则结果、退出码、重放结果和最终决策 | 治理团队、平台团队、安全团队和审计团队 | 覆盖每次企业基线晋级、冻结、紧急补丁、替代和 EOL | | 基线发布事务证据 | 提交前检查、干净工作树、source commit、签名 tag、远端 ref、push 回执、保护规则、禁推资产排除和发布后验证 | 治理团队、平台团队、安全团队、发布工程团队和审计团队 | 覆盖每次企业基线晋级、冻结、紧急补丁、替代和 EOL | +| 基线准入执行证据 | 最低基线、支持状态、撤销/EOL、资产符合性声明、例外有效期、策略包、决策日志和入口阻断结果 | 治理团队、平台团队、安全团队、发布工程团队、SRE 和审计团队 | 覆盖每次生产发布、GitOps 晋级、catalog 注册、平台脚手架创建和 runtime admission | | 基线撤销隔离证据 | 撤销触发、隔离范围、受影响引用、通知确认、恢复目标、风险接受、状态回写和审计归档 | 治理团队、平台团队、安全团队、发布工程团队、SRE 和审计团队 | 覆盖每次企业基线隔离、恢复、撤销和误报关闭 | | 例外证据 | 例外申请、风险接受、到期复审、关闭记录 | 治理团队 | 例外关闭后继续保留一个审计周期 | @@ -7829,6 +8057,7 @@ governance/control-plane/control-plane.yaml governance/control-plane/release-gate-decision.yaml governance/control-plane/standards-baseline.yaml governance/control-plane/version-governance.yaml +governance/control-plane/baseline-enforcement-policy.yaml governance/evidence/baselines/README.md governance/evidence/adoption/README.md governance/evidence/support/README.md @@ -7894,6 +8123,7 @@ infra/gitops/environments/prod/example/example-service/kustomization.yaml 32. 所有企业级基线都有门禁执行报告,能证明 release gate 的命令、runner、策略包、输入摘要、规则结果、退出码、重放结果和最终决策一致。 33. 所有企业级基线都有发布事务回执,能证明 source commit、签名 tag、远端 ref、push 回执、保护规则、禁推资产排除和发布后验证一致。 34. 所有企业级基线都有撤销与隔离记录,能证明坏基线能被隔离、阻断新采用、通知受影响 owner、选择恢复目标、完成风险接受并归档审计证据。 +35. 所有生产入口都有基线准入执行策略,能证明低于最低基线、撤销/EOL 基线、无资产符合性声明和过期例外会被 release gate、GitOps、catalog、Golden Path 和 runtime admission 阻断。 --- @@ -7936,6 +8166,7 @@ infra/gitops/environments/prod/example/example-service/kustomization.yaml | 门禁伪执行 | release gate 写了 pass,但实际命令、策略包、输入摘要、规则结果、退出码或重放记录缺失 | 用基线门禁执行报告绑定执行命令、runner、策略包、schema 包、输入摘要、逐条规则结果、退出码、重放结果和最终决策 | | 发布事务空心化 | 文档声明基线已发布,但远端 ref、签名 tag、push 回执、保护规则或禁推资产排除没有证据 | 用基线发布事务回执绑定 source commit、签名 tag、远端 ref、push 回执、保护规则、禁推资产排除和发布后验证 | | 撤销隔离缺失 | 已发布基线发现签名泄露、远端保护漂移、证据污染或错误 tag 后,没有隔离状态、受影响引用、通知和恢复目标 | 用基线撤销与隔离记录绑定触发、隔离范围、通知确认、阻断新采用、恢复目标、风险接受和审计归档 | +| 准入策略断层 | 支持矩阵、采纳总账、符合性声明和撤销记录都存在,但 GitOps、catalog、Golden Path 或 runtime admission 仍允许低基线、EOL 或撤销基线进入生产 | 用基线准入执行策略统一最低基线、支持状态、撤销/EOL、资产声明、例外到期、策略包和决策日志,并把阻断结果回写 release gate | --- @@ -7988,6 +8219,7 @@ infra/gitops/environments/prod/example/example-service/kustomization.yaml 31. 任意基线晋级、冻结、紧急补丁、替代和 EOL 都能证明门禁执行报告可重放,且执行命令、runner、策略包、输入摘要、规则结果、退出码和最终决策一致。 32. 任意基线晋级、冻结、紧急补丁、替代和 EOL 都能证明发布事务已经完成,且 source commit、签名 tag、远端 ref、push 回执、保护规则和发布后验证一致。 33. 任意基线隔离、恢复、撤销和误报关闭都能证明触发原因、影响范围、受影响引用、通知确认、恢复目标、风险接受、状态回写和审计归档一致。 +34. 任意生产准入决策都能证明最低可接受基线、支持状态、撤销/EOL 状态、资产符合性声明、例外有效期、策略包摘要、决策日志和入口阻断结果一致。 --- @@ -8018,7 +8250,7 @@ infra/gitops/environments/prod/example/example-service/kustomization.yaml | 对标来源 | 关键结论 | 本文档落点 | | -------- | -------- | ---------- | -| Semantic Versioning / Conventional Commits / Keep a Changelog | 版本号、提交语义和变更记录必须表达兼容性、影响面、撤销状态和升级意图 | 增加 `version-governance.yaml`、`baseline-lifecycle-state-machine.yaml`、`baseline-state-reconciliation-report.yaml`、`baseline-evidence-trace-graph.yaml`、`baseline-gate-execution-report.yaml`、`baseline-publish-transaction.yaml`、`baseline-revocation-record.yaml`、`baseline-eol-retirement-certificate.yaml`、`baseline-review-board-decision.yaml`、`baseline-readiness-scorecard.yaml`、`baseline-rollback-verification.yaml`、`baseline-notification-ledger.yaml`、`baseline-verification-lock.yaml`、`baseline-artifact-inventory.yaml`、`baseline-conformance-claim.yaml`、`baseline-release-train.yaml`、`baseline-support-matrix.yaml`、`baseline-compatibility-ledger.yaml`、发布通道、生命周期状态机、状态对账、证据追踪图、门禁执行报告、发布事务回执、撤销隔离记录、EOL 退役证据、会审裁决证据、基线不变量、就绪评分、回滚验证、通知确认、验证锁、制品清单、资产声明、发布节奏、支持窗口、兼容窗口、消费者迁移和回滚入口 | +| Semantic Versioning / Conventional Commits / Keep a Changelog | 版本号、提交语义和变更记录必须表达兼容性、影响面、撤销状态和升级意图 | 增加 `version-governance.yaml`、`baseline-enforcement-policy.yaml`、`baseline-lifecycle-state-machine.yaml`、`baseline-state-reconciliation-report.yaml`、`baseline-evidence-trace-graph.yaml`、`baseline-gate-execution-report.yaml`、`baseline-publish-transaction.yaml`、`baseline-revocation-record.yaml`、`baseline-eol-retirement-certificate.yaml`、`baseline-review-board-decision.yaml`、`baseline-readiness-scorecard.yaml`、`baseline-rollback-verification.yaml`、`baseline-notification-ledger.yaml`、`baseline-verification-lock.yaml`、`baseline-artifact-inventory.yaml`、`baseline-conformance-claim.yaml`、`baseline-release-train.yaml`、`baseline-support-matrix.yaml`、`baseline-compatibility-ledger.yaml`、发布通道、基线准入策略、生命周期状态机、状态对账、证据追踪图、门禁执行报告、发布事务回执、撤销隔离记录、EOL 退役证据、会审裁决证据、基线不变量、就绪评分、回滚验证、通知确认、验证锁、制品清单、资产声明、发布节奏、支持窗口、兼容窗口、消费者迁移和回滚入口 | | DORA 2025 | AI 辅助交付必须与组织能力、平台能力和可度量交付质量一起治理 | 补齐 AI 指标、Platform PM、认知负载和 AI 发布门禁 | | CNCF Platform Engineering Maturity Model | 平台工程成熟度核心是自助、产品化、治理和可度量能力 | 保留 Developer Portal、Golden Path、平台产品契约和平台指标 | | Team Topologies | 降低团队认知负载是平台团队存在的核心理由之一 | 增加认知负载度量、Platform PM 和平台用户研究 | @@ -8040,20 +8272,20 @@ infra/gitops/environments/prod/example/example-service/kustomization.yaml | Kubernetes Multi-tenancy / ResourceQuota | 多团队或多租户 Kubernetes 需要 namespace、配额、网络隔离和准入策略配合 | 增加 `tenant-boundary.yaml`、ResourceQuota、NetworkPolicy 默认拒绝和准入策略证据 | | NIST Cybersecurity Framework 2.0 | 企业安全运营需要把识别、保护、检测、响应和恢复连接成证据闭环 | 增加访问复核、密钥轮换、漏洞修复、事故复盘和证据新鲜度控制项 | | NIST SP 800-61 | 事件响应需要准备、检测分析、遏制恢复和事后活动闭环 | 增加 `incident-postmortem.yaml`、纠正行动、runbook 更新和门禁反哺 | -| NIST OSCAL / NIST SP 800-128 | 安全和合规控制应尽量使用机器可读目录、实施状态、评估结果、配置变更控制和证据包组织 | 增加 `control-evidence-map.yaml`、`audit-export-manifest.yaml`、`control-assessment-report.yaml`、`baseline-change-record.yaml`、`baseline-evidence-trace-graph.yaml`、`baseline-gate-execution-report.yaml`、`baseline-publish-transaction.yaml`、`baseline-revocation-record.yaml`、`oscal-export-profile.yaml` 和审计导出证据 | +| NIST OSCAL / NIST SP 800-128 | 安全和合规控制应尽量使用机器可读目录、实施状态、评估结果、配置变更控制和证据包组织 | 增加 `control-evidence-map.yaml`、`audit-export-manifest.yaml`、`control-assessment-report.yaml`、`baseline-change-record.yaml`、`baseline-enforcement-policy.yaml`、`baseline-evidence-trace-graph.yaml`、`baseline-gate-execution-report.yaml`、`baseline-publish-transaction.yaml`、`baseline-revocation-record.yaml`、`oscal-export-profile.yaml` 和审计导出证据 | | Kubernetes Secrets | Kubernetes Secret 需要加密、访问控制、轮换和外部密钥系统配合 | 增加 `secrets-rotation-evidence.yaml`、KMS、轮换和泄露扫描证据 | | CISA KEV Catalog | 已知被利用漏洞需要优先、限期、可证明地处置 | 增加 `vulnerability-remediation-evidence.yaml`、KEV 状态、修复 SLA 和残余风险 | -| SLSA / SBOM / Sigstore | 现代供应链安全必须证明构建来源、依赖、产物、签名验签链路和坏基线撤销链路 | 增加 SBOM、provenance、签名、验签、证据追踪图、门禁执行报告、发布事务回执、撤销隔离记录和发布准入 | +| SLSA / SBOM / Sigstore | 现代供应链安全必须证明构建来源、依赖、产物、签名验签链路、坏基线撤销链路和准入阻断链路 | 增加 SBOM、provenance、签名、验签、基线准入执行策略、证据追踪图、门禁执行报告、发布事务回执、撤销隔离记录和发布准入 | | NIST SSDF / CISA Secure by Design | 安全应前移到需求、设计、编码、构建、测试、发布和响应全链路 | 增加安全开发证据、威胁建模和安全准入材料 | | NIST AI RMF Critical Infrastructure Profile Concept Note | 高风险、关键基础设施相关 AI 场景需要更强的生命周期风险管理和可追溯实践 | 将关键基础设施 AI 相关资料纳入标准基线观察项,不直接当作稳定强制门禁 | | FinOps Framework / FOCUS / OpenCost | 成本治理需要统一成本语义、分摊、优化和持续运营 | 增加 `cost-allocation-evidence.yaml`、FinOps 运行机制、成本分摊证据和 AI 单任务成本指标 | | Open Data Contract | 数据产品需要机器可读契约来约束 Schema、语义、质量、权限和变更 | 增加数据契约最低字段和 CI 校验要求 | | MLflow / Model Cards | 微调模型需要实验追踪、模型登记、评估结果和模型说明卡 | 增加微调治理工作流、微调发布流程和模型证据链 | | Google SAIF / AI Incident Response | AI 系统需要面向模型、数据、Prompt、工具和供应商的专门响应流程 | 增加 AI 事件响应机制和 playbook 模板 | -| OPA / Cedar / Kyverno | Policy as Code 需要明确策略语言和执行边界 | 增加策略语言统一口径和策略引擎分工 | -| Kubernetes / OpenGitOps | 容器运行状态和部署期望状态应分离,部署声明需要版本化、可审计和可回滚 | 增加微服务容器分层真相源、Kubernetes base 和 GitOps overlay | +| OPA / Cedar / Kyverno | Policy as Code 需要明确策略语言、执行边界、策略包摘要和入口阻断证据 | 增加策略语言统一口径、策略引擎分工、`baseline-enforcement-policy.yaml`、决策日志和 release gate / GitOps / catalog / runtime admission 阻断 | +| Kubernetes / OpenGitOps | 容器运行状态和部署期望状态应分离,部署声明需要版本化、可审计、可回滚并受基线准入策略约束 | 增加微服务容器分层真相源、Kubernetes base、GitOps overlay、基线准入执行策略和 runtime admission 阻断 | | OCI Image Spec / Container Registry | 镜像制品应放在 registry 中,生产部署需要可追溯到不可变 digest | 增加镜像 tag / digest、registry 和供应链证据要求 | -| Backstage Catalog | 服务目录用于发现、owner、依赖和运行指针,不应成为 deployment manifest 真相源 | 增加 catalog runtime 指针和部署真相源边界 | +| Backstage Catalog | 服务目录用于发现、owner、依赖和运行指针,不应成为 deployment manifest 真相源,也不应允许无基线声明资产注册为生产对象 | 增加 catalog runtime 指针、部署真相源边界、资产基线符合性声明和 catalog 注册准入阻断 | ## 19.2 研究后的架构判断