如果你曾需要根据合规框架检查代码或基础设施,你一定知道这个流程:某人阅读一份100页的PDF,然后阅读你的代码库,再做出判断。这既缓慢又不一致,而且无法自动化。

因此,我构建了一个管道来真正解决这个问题。

问题

CMMC Level 1 和 NIST SP 800-171 Rev 2 是小型国防承包商和政府相关公司必须满足的两种最常见合规框架。两者都仅以密集的法规文本形式存在。没有官方的机器可读版本。

这意味着每次合规检查都是手动的。每个审查你基础设施的 AI 编码助手都完全没有内置的对这些要求的感知。每个 CI/CD 管道要么完全跳过合规检查,要么依赖某人记得去查看。

** 我构建的内容**

一个 Python 管道,它:

  1. 拉取真实的法规源数据 — NIST 官方的 CPRT 导出(用于 SP 800-171),以及 48 CFR § 52.204-21 的逐字文本(用于 CMMC Level 1)
  2. 将其规范化为结构化的 SQLite 模式
  3. 为每个控制生成一个 JSON 规则,并附带一个机器可操作的指令

以下是一个规则的实际示例:

\json
{
"rule_id": "nist_sp_800-171_rev_2_3.1.1",
"framework": "NIST SP 800-171 Rev 2",
"control_id": "3.1.1",
"title": "ACCESS CONTROL — 3.1.1",
"requirement": "Limit system access to authorized users, processes acting on behalf of authorized users, and devices.",
"agent_guidance": "When generating or reviewing code/infrastructure, ensure compliance with NIST SP 800-171 Rev 2 control 3.1.1. Flag any implementation that does not satisfy: Limit system access to authorized users, processes acting on behalf of authorized users, and devices.",
"generated_at": "2026-07-15T16:42:56.026218+00:00"
}
\
\

那个 agent_guidance 字段是最有趣的部分——它专门编写,用于直接放入 AI 编码代理的系统提示中作为合规护栏。

实际使用此数据的三种方式

1. AI 编码代理系统提示

\`python
import json

with open("nist_800-171_rules.json") as f:
rules = json.load(f)

guardrails = "\n".join(r["agent_guidance"] for r in rules)
system_prompt = f"Apply these compliance rules when writing or reviewing code:\n{guardrails}"
`\

2. CI/CD 合规门禁 — 将规则作为管道步骤进行迭代,标记触及相关系统但未解决适用控制的 PR,使用 rule_id 作为跟踪随时间推移的例外的稳定参考。

3. GRC 平台导入 — 大多数 GRC 工具都有自己的框架映射;control_id 为你提供一个干净的连接键。

我在构建管道过程中学到的东西

最困难的部分不是规则生成——而是源数据。NIST 的 CPRT REST API 直接自动访问时会返回 403,因此必须首先从其目录手动导出。而且其 JSON 模式在不同版本之间确实不一致——我曾遇到一个 bug,严重性数据连续数周静默默认设置为 "UNKNOWN",因为 CVSS v3 将 baseSeverity 嵌套在 cvssData 内,而 CVSS v2 则将其作为同级字段。这是典型的 "数据看起来没问题,直到我真正检查它" 的 bug。

未来发展

我最终得到了两个框架共 125 条规则——是完整覆盖,而非样本。我已将完整的输出(两个 JSON 文件)打包为一次性许可,如果有人想要成品数据集而不是自己构建管道:[link]。但老实说,对我来说更有趣的部分是这种模式本身——将静态法规文本转换为 AI 代理真正可以推理的内容,而不是人类必须记得去检查的文档。

很好奇是否还有其他人处理过其他框架的合规即代码(SOC 2、ISO 27001、HIPAA)——很乐意在评论中比较解析方法的笔记。