Rego Policy Libraries:面向 OPA 的合规与加固策略库
Rego Policy Libraries: Compliance and Hardening Policies for OPA
Rego Policy Libraries 发布 740 条生产级 Rego 策略(含测试共 996 条,7,867 项控制级检查),覆盖 54 项标准,采用 Rego v1 语法,可直接加载进 OPA 与 Enterprise OPA。
Rego 策略库
740 条生产就绪的 Rego 策略(含测试共 996 条;按
make count统计有 7,867 项控制级检查;统计于 main 分支 2026-10-12),适用于 OPA 和 Enterprise OPA(EOPA),覆盖 CIS Benchmarks(含 Level 2 加固配置文件)、CIS Controls v8.1、DISA STIG、CISA SCuBA M365、NSA/CISA Kubernetes 加固、NIST、零信任(CISA ZTMM v2.0)、SOC 2、PCI-DSS、ISO 27001、NERC-CIP(含完整数据源引用)、IEC 62443、HIPAA、FedRAMP、FBI CJIS、IRS Pub 1075、ACSC Essential Eight、APRA CPS 234、HKMA TM-G-1/TM-C-1(香港)、MAS TRM(新加坡)、BNM RMiT(马来西亚)、CERT-In 指令与 DPDP 法案(印度)、METI 网络安全经营指南(日本)、UK Cyber Essentials、BSI C5、CSA CCM、CCPA/CPRA、EU AI Act、GEISA 等——全部采用 Rego v1 语法,可直接加载到任何 OPA 或 EOPA 实例中。独立且无依赖:无需编排器、无需代理、无需厂商运行时。克隆、加载、查询即可。
任何人都可以验证的最大可执行合规策略开源库——跨 54 项受跟踪标准共 7,867 项控制级检查——并且是任何机器可读策略库(无论开源还是闭源)中监管覆盖范围最广的。前半部分是一个数字,CI 在每次合并时都会重新计算(
make count),如果这一行发生偏移就会失败;后半部分是下面的框架列表,没有其他库能与之匹敌。我们如何针对我们能找到的每一个公共库来衡量这两者:docs/COMPARISON.md。 对比对象:Kubescape regolibrary(304 条 Rego 规则,仅 Kubernetes)、Kyverno policies(180)、Gatekeeper library(49)、trivy-checks(563)、Checkov(约 1,000,IaC)、KICS(1,813,IaC)、Prowler(1,625 项云检查)、Steampipe AWS mod(1,361)、ComplianceAsCode(2,574 条 OS 规则)、Azure Policy 内置策略(5,130,Azure)、Secure Controls Framework(1,534 项目录控制,不可执行)。无需修改即可运行于:OPA、Enterprise OPA、Styra DAS、Conftest、Gatekeeper、Kubewarden、Trivy、KICS、Regula、Snyk IaC、Terraform Cloud、Spacelift、env0、Envoy/Istio。导出为:适用于所有语言 SDK 的 WASM、签名捆绑包、OSCAL、SARIF、OCSF、Ansible、SCAP、InSpec、Wazuh、CEL/Kyverno、Azure Policy、AWS Config、Steampipe、Sentinel、Sigma、Prowler(见converters/)。六十秒内在 CI 中使用它:docs/INTEGRATIONS.md——拉取 GHCR 捆绑包,评估你的事实,在不符合合规要求时让作业失败;用 Conftest 做 IaC 门禁。
上面的计数由伴随每个合并批次的文档处理重新标记; 在批次之间它可能会略微偏低。任意提交处的确切数字:
git ls-files | grep '\.rego$' | grep -vcE '(^|/)(test_|.*_test\.rego$)' # policy files git ls-files | grep -c '\.rego$' # including tests
为什么选择这个仓库?
从零编写合规策略既昂贵又容易出错。一个典型企业仅为 CIS RHEL 9 部署 OPA 就需要 338 项单独的控制检查——而这还只是一个操作系统的一个框架。
这个库让你在第一天就获得一套完整、可用的策略集,覆盖 30 多个平台、55 多个监管框架,以及从 CIS 和 DISA STIG 到 NERC-CIP 和 IEC 62443 的每一项主要合规标准。所有策略:
- 使用 Rego v1 语法(
import rego.v1)——无弃用警告,向前兼容 - 返回结构化 JSON 报告(合规、评分、违规列表)——可直接接入仪表板或 CI
- 可独立加载——可单独使用一个框架或整个库;无耦合
- 暴露一个统一入口点——每个框架都用
data.<package>.main.compliance_report,这样你只需按名称评估,无需了解其内部结构 - 故障关闭——未提供任何事实的框架会报告不合规并给出明确原因,绝不会静默通过(见下文)
- 供应商中立——不内置任何编排器、部署拓扑或调用方术语
- 采用 Apache 2.0 许可——可无限制地商业使用
为什么不自己构建?你可以——但仅 CIS RHEL 9 就有 14 个章节中的 338 项控制。NERC-CIP 涵盖 14 项标准(CIP-002 至 CIP-015),包含 200 多项要求。IEC 62443 在 7 项基础要求之上增加了 51 项系统要求。从零开始需要数月。这个库就是那数月的工作,已经完成。
覆盖范围一览
| 标准 / 框架 | 路径 | 控制 / 要求 |
|---|---|---|
| CIS RHEL 9 v2.0.0 | benchmarks/cis/rhel_9/ |
17 个模块 · 224+ 控制 ID ✅ |
| CIS RHEL 8 | benchmarks/cis/rhel_8/ |
完整 |
| CIS RHEL 10 | benchmarks/cis/rhel_10/ |
完整 |
| CIS Ubuntu 22.04/24.04/20.04 | benchmarks/cis/ubuntu_*/ |
完整 |
| CIS Rocky Linux 8/9 | benchmarks/cis/rocky_linux_*/ |
完整 |
| CIS Debian 11 | benchmarks/cis/debian_11/ |
完整 |
| CIS Amazon Linux 2023 | benchmarks/cis/amazon_linux_2023/ |
完整 |
| CIS Windows Server 2019/2022 | benchmarks/cis/windows_server_2022_modular/ |
9 个章节 |
| CIS Windows 10/11 | benchmarks/cis/windows_10/ |
完整 |
| CIS Microsoft 365 Foundations v7 (SaaS) | benchmarks/cis/saas/m365_v7/ |
9 个章节:Entra、Exchange、Defender、Purview、SharePoint、Teams、Intune、Fabric、Admin Center |
| CIS PostgreSQL | benchmarks/cis/postgresql/ |
完整 |
| 网络设备——Cisco、Juniper、Palo Alto、Fortinet、Arista、VyOS、pfSense | benchmarks/cis/network_devices/ |
完整 |
| CIS AWS / Azure / GCP | benchmarks/cis/cloud/ |
基础 |
| CIS Docker / Kubernetes / OpenShift | benchmarks/cis/containers/ |
完整 |
| DISA STIG——19 个平台(RHEL 8/9、Windows Server 2016/2019/2022/2025、Windows 10/11、Ubuntu 20.04/22.04、Amazon Linux 2023、SLES 15、Kubernetes、OpenShift 4、Crunchy Postgres 16、SQL 2016、Apache 2.4、Cisco IOS-XE、vSphere 8 ESXi) | benchmarks/stig/ |
按规则发现,带 XCCDF 验证的 ID(2026 年 7 月库);新平台上所有 CAT I;故障关闭入口点;每个聚合器说明总覆盖率 |
| NIST 800-53 rev5 | frameworks/federal/nist/sp_800_53/ |
所有控制族 |
| NIST 800-82 (OT) | frameworks/critical_infrastructure/nist_800_82/ |
完整 |
| FISMA / FedRAMP / CMMC | frameworks/federal/ |
完整 |
| ISO 27001:2022 | frameworks/management/iso27001/ |
完整 ISMS |
| SOC 2 Type II | frameworks/management/soc2/ |
所有 TSC |
| PCI-DSS v4.0 | frameworks/financial/pci_dss/ |
所有 12 项要求 |
| SOX ITGC | frameworks/financial/sox/ |
完整 |
| HIPAA | frameworks/privacy/hipaa/ |
完整 |
| GDPR | frameworks/privacy/gdpr/ |
完整 |
| NERC-CIP (CIP-002 – CIP-015) | frameworks/critical_infrastructure/nerc_cip/ |
14 项标准 |
| IEC 62443(所有部分) | frameworks/critical_infrastructure/iec_62443/ |
51 项 SR,SL 1–4 |
| NIST IR 7628(AMI / 智能电网) | frameworks/critical_infrastructure/ami/ |
完整 |
| DORA / NIS2 | frameworks/regulatory/ |
完整 |
| NCSC CAF 4.0 | frameworks/compliance/ncsc_caf/ |
23 项网络成果 |
| 数字主权 | frameworks/sovereignty/ |
7 个领域 |
| CSA CCM v4.0 | frameworks/management/csa_ccm/ |
16 个领域,197 项控制 |
| ISO/IEC 27701:2019 | frameworks/privacy/iso27701/ |
PIMS、PII 控制者、PII 处理者、DSR |
| NIST SP 800-171 Rev 3 | frameworks/federal/nist/sp_800_171/ |
14 个族,110 项 CUI 要求 |
| CCPA / CPRA | frameworks/privacy/ccpa/ |
消费者权利、敏感 PI、数据实践 |
| EU AI Act (2024/1689) | governance/eu_ai_act/ |
禁止、高风险、透明度、GPAI、治理 |
| TSA Pipeline Security Directives | frameworks/critical_infrastructure/tsa_pipeline/ |
SD Pipeline-2021-01G + 02G,12 个章节,112 项要求 |
| GLBA Safeguards Rule (16 CFR 314) | frameworks/financial/glba/ |
所有 §314.4 要素 + §314.5 违规通知(2024),已建模小型机构豁免 |
| CISA CPG 2.0 (Oct 2025) | frameworks/federal/cisa_cpg/ |
所有 34 项目标,六个 CSF-2.0 功能(含 GOVERN),按功能汇总 |
| ISO/IEC 42001:2023 (AIMS) | governance/iso_42001/ |
第 4–10 条 + 附录 A 组——与 EU AI Act + NIST AI RMF 共同构成 AI 三件套 |
| ITAR (22 CFR 120–130) | frameworks/regulatory/itar/ |
数据保护切片:视同出口、§120.54 加密豁免、DDTC 卫生——法律/许可范围已如实排除 |
| COBIT 2019 | frameworks/management/cobit/ |
跨 EDM/APO/BAI/DSS/MEA 的治理系统认证——明确声明不进行成熟度评估 |
| CISA SCuBA M365 | benchmarks/scuba/m365/ |
涵盖 7 个产品(Entra ID、Defender、EXO、Power BI、Power Platform、SharePoint/OneDrive、Teams)的全部 104 项基线策略;报告 SHALL/SHOULD 关键性;BOD 25-01 |
| CIS Amazon EKS v1.8.0 | benchmarks/cis/eks/ |
49 项控制(kubescape 映射覆盖;缺口在头部说明) |
| CIS Azure AKS v1.8.0 | benchmarks/cis/aks/ |
56 项控制(kubescape 映射覆盖;缺口在头部说明) |
| CIS Google GKE v1.9.0 | benchmarks/cis/gke/ |
40 项控制(部分覆盖官方基准——在头部说明) |
| NSA/CISA Kubernetes 加固 v1.2 | benchmarks/nsa_cisa/kubernetes/ |
指南 5 个章节共 43 项控制 |
| Kubernetes Pod 安全标准 | benchmarks/pss/kubernetes/ |
12 项基线 + 6 项受限控制,针对实际 Pod 清单进行评估 |
| FERPA(34 CFR Part 99) | frameworks/privacy/ferpa/ |
32 项控制:通知、访问/修正、同意、例外条件、目录信息、披露记录保存 |
| COPPA(16 CFR Part 312,2025 年修正案) | frameworks/privacy/coppa/ |
21 项控制,包括单独的第三方披露同意、保留政策、书面信息安全计划 |
| CIS Controls v8.1 | frameworks/management/cis_controls_v8/ |
18 项关键安全控制、153 项保障措施、累积 IG1 ⊆ IG2 ⊆ IG3 评分——区别于上文的 CIS 基准 |
| 零信任——CISA ZTMM v2.0 + NIST SP 800-207 | frameworks/federal/zero_trust/ |
5 大支柱 + 3 项跨领域能力共 83 项标准 |
| PQC 就绪(FIPS 203/204/205、EO 14412、CNSA 2.0) | frameworks/federal/pqc/ |
15 项按配置文件分级的控制(general/federal/nss)+ 对提供的加密清单进行数据驱动的算法分类(HNDL、IR 8547 弃用、CNSA 2.0) |
| BNM 技术风险管理(马来西亚,2026 年 9 月) | frameworks/financial/bnm_rmit/ |
B 部分 §§8–15 的 99 项强制性 S 段落;云、第三方、NCII 和数字服务段落由声明的标志控制;报告中包含 2027 年到期义务以及 4 小时 / 120 分钟可用性目标 |
| HKMA SPM TM-G-1 + TM-C-1(香港) | frameworks/financial/hkma_trm/ |
67 项控制:TM-G-1 §§2–7 技术风险管理以及 TM-C-1 网络职责(事件报告、C-RAF、STDB、CISP);WLAN、外包和海外 IT 段落由声明的标志控制 |
| APRA CPS 234 信息安全(澳大利亚,2019) | frameworks/financial/apra_cps234/ |
要求段落 13–36 每段一项控制;第三方段落由声明的标志控制;报告中包含 72 小时事件和 10 个工作日弱点时钟 |
| METI 网络安全管理指南 Ver. 3.0(日本,2023) | frameworks/regional/meti_csm/ |
附录 A 检查表:3 项原则(9 个条目)+ 10 个方向(40 个条目),每个条目附有其 NIST CSF 子类别引用;按方向报告 |
| 印度 DPDP 法案 2023 + DPDP 规则 2025 | frameworks/privacy/dpdp_india/ |
数据受托人义务:合法依据、通知、同意、规则 6 保障措施、72 小时违规报告、保留与删除、儿童、重要数据受托人、权利、传输;四个声明的范围标志;报告中包含处罚层级 |
| CERT-In 根据 IT 法案 s.70B(6) 发布的指令(2022 年 4 月) | frameworks/regional/cert_in/ |
印度:6 小时事件报告、附件 I 全部 20 种事件类型、180 天境内日志、NIC/NPL 时间同步、PoC;提供商和 VASP 职责由声明的行业标志控制 |
| MAS 技术风险管理指南(2021 年 1 月) | frameworks/financial/mas_trm/ |
第 3–15 章共 237 项控制,按章报告;第 14 章(在线金融服务)由标志限定范围 |
| ACSC Essential Eight(2023 年 11 月) | frameworks/regional/essential_eight/ |
8 项缓解策略、96 项要求;总体成熟度 = 最低策略级别 |
| FBI CJIS 安全政策 | frameworks/federal/cjis/ |
全部 13 个政策领域、98 项要求,映射至 NIST 800-53 |
| NIST SSDF(SP 800-218 v1.1) | frameworks/federal/nist_ssdf/ |
42 项安全软件开发控制措施 |
| IRS Publication 1075(Rev. 11-2021) | frameworks/federal/irs_1075/ |
8 个保障领域、57 项要求 — IRC 6103(p)(4)(A)–(F)、§9 计算机安全(800-53 Rev 5 裁剪)、§10 事件响应 |
| UK Cyber Essentials(Willow,2025 年 4 月) | frameworks/regional/cyber_essentials/ |
5 个技术控制主题、28 项要求 |
| BSI C5:2020、MAS TRM(新加坡,2021 年 1 月)、CERT-In Directions(印度,2022)、India DPDP Act 2023 + Rules 2025、METI CSM Guidelines(日本)、APRA CPS 234、HKMA TM-G-1/TM-C-1、BNM RMiT(马来西亚) | frameworks/regional/bsi_c5/ |
全部 17 个标准领域、61 项要求 — 包括可移植性/互操作性(导出 + 确认删除)和政府调查请求(INQ) |
| ISO/IEC 42005:2025(AI 影响评估) | governance/iso_42005/ |
22 项证明检查,覆盖 AIIA 流程(第 5 条)和各系统记录(第 6 条),并与 ISO 42001 AIMS 集成对接 |
| OWASP LLM Top 10(2026) | governance/owasp_llm/ |
30 项控制措施(每个风险 3 项,LLM01–LLM10:2026),并附 MITRE ATLAS 缓解措施对照表(atlas-data v2026.09) |
| FedRAMP 20x KSI | frameworks/federal/fedramp_20x/ |
全部 46 项关键安全指标,Class B/C 配置文件,由 Consolidated Rules 数据文件生成;rev5 模块保留用于现有/High |
| UK MoD DCC — DEF STAN 05-138 Issue 4 | frameworks/regional/dcc/ |
全部 148 项控制措施、4 个网络风险配置文件(L0 基础 → L3 专家),包含精确的逐控制级别集合,包括非累积式替代对 |
每个已实施的标准都在 STANDARDS_UPDATE_REGISTRY.md 中跟踪 — 固定版本、上游修订节奏和监视 URL — 因此模块会在标准变化时重新生成,而不是悄然漂移。
包含内容
| 领域 | 策略 | 覆盖范围 |
|---|---|---|
| CIS Benchmarks + DISA STIGs | 324 | 30+ 平台:Linux、Windows、云、容器、托管 Kubernetes(EKS/AKS/GKE)、数据库、Web 服务器、网络设备、VMware、移动端和 SaaS(M365)— 外加 19 个平台的 DISA STIGs。CIS 基准版本更新至 2026 年 5 月发布版;针对高价值目标(RHEL 9、Ubuntu 22.04、Windows Server 2022)的 Level 2 加固配置文件 |
| 联邦与 K8s 加固基线 | 10 | CISA SCuBA M365(104 项策略、7 个产品、BOD 25-01)、NSA/CISA Kubernetes Hardening v1.2(43 项控制措施)、Kubernetes Pod Security Standards(baseline + restricted,依据实际 Pod 清单评估) |
| 监管框架 | 328 | ISO 27001、SOC 2、PCI-DSS、SOX、FISMA、FedRAMP、CMMC、GDPR、HIPAA、NERC-CIP、IEC 62443、DORA、NIS2、NY DFS、SEC Cyber、SWIFT CSP、HITRUST、TISAX、CFR Part 11、NCSC CAF、Digital Sovereignty、CSA CCM v4.0、ISO 27701、NIST SP 800-171 r3、CCPA/CPRA、TSA Pipeline SDs、GLBA、CISA CPG 2.0、ITAR、COBIT 2019、FERPA、COPPA(2025 年修正案)、CIS Controls v8.1、Zero Trust(CISA ZTMM v2.0)、NIST SSDF、FBI CJIS、ACSC Essential Eight、IRS Pub 1075、UK Cyber Essentials、BSI C5:2020 |
| 执行 | 17 | Ansible、Terraform、Dockerfile、Kubernetes 准入、Git 审批/剧本文档、AAP 作业门控、CI/CD 流水线门控、SLSA 供应链治理 |
| 治理 | 21 | AI agent 授权、MCP 工具调用强制执行、GEISA(API/ADM/LEE/VEE)、EU AI Act(Regulation 2024/1689)套件、ISO/IEC 42001(AIMS)、OIDC token 验证、FinOps 标记 |
| 交叉映射 | 2 | STIG ↔ NIST 800-53 控制映射、框架映射 |
| 威胁检测 | 1 | 加密货币挖矿程序检测 |
亮点:CIS RHEL 9 v2.0.0 — 跨 17 个模块的 224+ 个不同 CIS 控制 ID (14 个核心 CIS 章节,外加 3 个用于 STIG/NIST 漂移检测的扩展加固模块)。
关于覆盖数字。上述控制 ID 是从模块实际发出的违规消息中统计的, 因此该数字可从一次克隆中复现:
grep -rhoE 'CIS (L2 )?[0-9]+(\.[0-9]+)*' benchmarks/cis/rhel_9 --include='*.rego' \ | sed -E 's/CIS L2 /CIS /' | sort -u | wc -l这是下限,而非上限 — 单条规则往往满足不止一个 CIS 控制项, 因此真实覆盖率更高。我们发布能够证明的数字,而不是无法证明的 头条百分比。
快速开始
选项 A — OCI bundle(生产环境推荐)
直接从 GitHub Container Registry 拉取预构建的 bundle — 无需克隆:
# Pull the full policy bundle oras pull ghcr.io/ynotbhatc/rego_policy_libraries:latest # Start OPA with the bundle podman run -d --name opa -p 8181:8181 \ -v "$(pwd)/bundle.tar.gz:/bundle.tar.gz:ro" \ openpolicyagent/opa:1.10.0 run --server --addr :8181 --bundle /bundle.tar.gz
提供带版本号的标签:ghcr.io/ynotbhatc/rego_policy_libraries:v1.0.0
安装 oras:https://oras.land/docs/installation
选项 B — Git 克隆
# Clone git clone https://github.com/ynotbhatc/rego_policy_libraries.git cd rego_policy_libraries # Start OPA podman run -d --name opa -p 8181:8181 openpolicyagent/opa run --server --addr :8181 # Load all CIS RHEL 9 policies for f in benchmarks/cis/rhel_9/*.rego; do curl -s -X PUT --data-binary @"$f" \ "http://localhost:8181/v1/policies/$(basename $f .rego)" done # Evaluate against your system facts — uniform entrypoint, same for every framework curl -s -X POST http://localhost:8181/v1/data/cis_rhel9/main/compliance_report \ -H 'Content-Type: application/json' \ -d '{"input": {"os_family": "RedHat", ...}}'
以无输入进行查询,你会得到
compliant: false,并伴随一个明确的FAIL-CLOSED违规 — 而不是 100% 通过。这是有意为之;参见 框架入口点。
策略分类体系
rego_policy_libraries/
├── benchmarks/ # Technical security baselines
│ ├── cis/
│ │ ├── rhel_8/ rhel_9/ rhel_10/
│ │ ├── ubuntu_20_04/ ubuntu_22_04/ ubuntu_24_04/
│ │ ├── debian_11/ rocky_linux_8/ rocky_linux_9/ amazon_linux_2023/
│ │ ├── windows_server_2016/ windows_server_2019_modular/
│ │ ├── windows_server_2022/ windows_server_2022_modular/
│ │ ├── windows_10/ windows_11/
│ │ ├── aws/ azure/ gcp/ # Cloud Foundations
│ │ ├── docker/ kubernetes/ # Containers
│ │ ├── eks/ aks/ gke/ # Managed Kubernetes (EKS v1.8.0, AKS v1.8.0, GKE v1.9.0)
│ │ ├── postgresql/ databases/
│ │ ├── saas/m365_v7/ # SaaS — CIS Microsoft 365 Foundations v7 (m365/ = v6 legacy)
│ │ ├── network_devices/ # Cisco, Juniper, Palo Alto, Fortinet, Arista, VyOS, pfSense
│ │ ├── vmware/ # ESXi 8, vCenter
│ │ ├── mobile_devices/ # Android, iOS
│ │ ├── os/linux/ # legacy/simple RHEL 9 variants — superseded
│ │ ├── cloud/ # AWS, Azure, GCP Foundations
│ │ ├── containers/ # Docker, Kubernetes, OpenShift
│ │ ├── databases/ # MySQL 8, Oracle 19c, PostgreSQL 13/14/15
│ │ ├── web_servers/ # Apache 2.4, Nginx 1.20
│ │ └── network/ # Cisco IOS, Juniper Junos, Palo Alto, Fortinet, Arista
│ ├── stig/ # DISA STIGs — 19 platforms (Linux, Windows, K8s/OpenShift,
│ │ # databases, Apache, Cisco IOS-XE, vSphere)
│ ├── scuba/m365/ # CISA SCuBA M365 baselines — 104 policies, 7 products (BOD 25-01)
│ ├── nsa_cisa/kubernetes/ # NSA/CISA Kubernetes Hardening Guidance v1.2 — 43 controls
│ └── pss/kubernetes/ # K8s Pod Security Standards — baseline + restricted, manifest-evaluated
│
├── frameworks/ # Regulatory compliance
│ ├── federal/ # NIST 800-53/171/800-82, CSF 2.0, AI RMF, SSDF, FISMA, FedRAMP,
│ │ # CMMC, Zero Trust (ZTMM v2.0 + 800-207), CJIS, IRS Pub 1075
│ ├── management/ # ISO 27001, SOC 2, CSA CCM, COBIT 2019, CIS Controls v8.1,
│ │ # Corporate, NCSC CAF 4.0
│ ├── financial/ # PCI-DSS, SOX, SWIFT CSP, NY DFS, SEC Cyber, GLBA
│ ├── privacy/ # GDPR, HIPAA, ISO 27701, CCPA/CPRA, FERPA, COPPA
│ ├── regulatory/ # DORA, NIS2, ITAR
│ ├── regional/ # ACSC Essential Eight, UK Cyber Essentials, BSI C5, UK MoD DCC, CERT-In (India), METI CSM (Japan)
│ ├── critical_infrastructure/ # NERC-CIP (CIP-002–CIP-015), IEC 62443, NIST IR 7628,
│ │ # NIST 800-82, TSA Pipeline Security Directives
│ └── sovereignty/ # Digital Sovereignty (7 domains)
│
├── enforcement/ # Gate-style policy enforcement
│ ├── ansible/ # Block non-compliant playbooks at check-in and runtime
│ ├── terraform/ # Validate plans before apply
│ ├── dockerfile/ # Lint Dockerfiles at build time
│ ├── kubernetes/ # Admission control for K8s manifests
│ ├── git/ # Approval and playbook-documentation policies
│ ├── cicd/ # CI/CD pipeline gating
│ └── supply_chain/ # SLSA-style supply-chain governance
│
├── governance/ # AI and operational governance
│ ├── ai/ # AI agent action classification and authorization
│ ├── mcp/ # MCP server tool-call enforcement
│ ├── eu_ai_act/ # EU AI Act (Regulation 2024/1689) — prohibited, high-risk, GPAI, transparency
│ ├── geisa/ # GEISA runtime compliance (API, ADM, LEE, VEE)
│ ├── oidc/ # OIDC token validation for portal/MCP access control
│ └── finops/ # Resource tagging policies
│
└── threat_detection/
└── crypto_mining/ # Detect unauthorized cryptocurrency miners
CIS Benchmark 覆盖
| 平台 | 路径 | 控制项 |
|---|---|---|
| RHEL 9 | benchmarks/cis/rhel_9/ |
17 个模块 · 224+ 个控制 ID ✅ |
| RHEL 8 | benchmarks/cis/rhel_8/ |
完整 |
| Ubuntu 22.04 | benchmarks/cis/ubuntu_22_04/ |
完整 |
| Ubuntu 20.04 / 24.04 | benchmarks/cis/ubuntu_20_04/ |
完整 |
| Debian 11 | benchmarks/cis/debian_11/ |
完整 |
| Rocky Linux 8 / 9 | benchmarks/cis/rocky_linux_8/ |
完整 |
| Amazon Linux 2023 | benchmarks/cis/amazon_linux_2023/ |
完整 |
| Windows Server 2019/2022 | benchmarks/cis/windows_server_2022_modular/ |
模块化(9 个章节) |
| AWS / Azure / GCP | benchmarks/cis/cloud/ |
基础 |
| Docker / Kubernetes / OpenShift | benchmarks/cis/containers/ |
完整 |
| MySQL / Oracle / PostgreSQL | benchmarks/cis/databases/ |
完整 |
| Cisco / Juniper / Palo Alto / Fortinet / Arista | benchmarks/cis/network/ |
完整 |
IEC 62443 覆盖
面向 IEC 62443 工业自动化与控制系统(IACS)安全的完整库 — 涵盖 Part 3-3 的全部 51 项系统要求(SR)以及 Part 2 管理要求。
| 文件 | 部分 | 标题 | SR |
|---|---|---|---|
fr1_identification_authentication.rego |
3-3 FR 1 | 标识与认证控制(IAC) | SR 1.1–1.13(13) |
fr2_use_control.rego |
3-3 FR 2 | 使用控制(UC) | SR 2.1–2.12(12) |
fr3_system_integrity.rego |
3-3 FR 3 | 系统完整性(SI) | SR 3.1–3.9(9) |
fr4_data_confidentiality.rego |
3-3 FR 4 | 数据机密性(DC) | SR 4.1–4.3(3) |
fr5_restricted_data_flow.rego |
3-3 FR 5 | 受限数据流 / 区域与管道(RDF) | SR 5.1–5.4(4) |
fr6_timely_response.rego |
3-3 FR 6 | 对事件的及时响应(TRE) | SR 6.1–6.2(2) |
fr7_resource_availability.rego |
3-3 FR 7 | 资源可用性(RA) | SR 7.1–7.8(8) |
part2_security_management.rego |
2-1 | 安全管理体系(CSMS) | — |
part2_patch_management.rego |
2-3 | IACS 环境中的补丁管理 | — |
part2_service_provider.rego |
2-4 | IACS 服务提供商安全计划(SP.01–SP.10) | — |
part3_risk_assessment.rego |
3-2 | 安全风险评估(ZCR 1–5) | — |
iec_62443_main.rego |
全部 | 主编排器 — 聚合所有部分 | 共 51 项 |
安全等级(SL)分层:所有 FR 模块均强制执行按 SL 区分的要求 — 违规项会标注其适用的 SL(从 SL 1 基线到 SL 4 国家支持型威胁防护)。
OPA 端点:POST /v1/data/iec_62443_main/iec_62443_compliance_report
{
"standard": "IEC 62443",
"target_sl": 2,
"compliant": false,
"fr_compliance_score": 71,
"sr_compliance_score": 84,
"passing_frs": 5,
"total_frs": 7,
"passing_srs": 43,
"total_srs": 51,
"part3_3_foundational_requirements": {
"FR1_identification_authentication": { "compliant": true, "passing_srs": 13 },
"FR5_restricted_data_flow": { "compliant": false, "violations": ["..."] }
}
}TSA 管道安全指令覆盖
两项当前生效的 TSA 管道网络安全指令,位于
frameworks/critical_infrastructure/tsa_pipeline/ — 12 个章节模块外加一个
编排器,涵盖 112 个指令子段落。
| 指令 | 生效日期 | 涵盖章节 |
|---|---|---|
| SD Pipeline-2021-01G — 增强管道网络安全 | 2026-01-16 → 2027-01-15 | II.B 网络安全协调员 · II.C 向 CISA 报告事件 · II.D 漏洞评估 |
| SD Pipeline-2021-02G — 管道网络安全缓解措施、应急计划与测试 | 2026-05-03 → 2027-05-02 | II.A/III.A 关键网络系统 · II.B/VI 实施计划 + 修订 · III.B 网络分段 · III.C 访问控制 · III.D 持续监控 · III.E 补丁管理 · III.F 事件响应计划 · III.G 评估计划 · IV/V 记录 + SSI |
OPA 端点: POST /v1/data/tsa_pipeline/main/compliance_report
这些指令在很大程度上由截止日期驱动,而这些截止日期正是这些策略所主张的——每一个都由 tests/test_tsa_pipeline_deadlines.rego 中的测试固定:
| 时钟 | 指令 |
|---|---|
| 72 小时——向 CISA 报告事件 | SD-01G II.C.3 |
| 24 小时——补充信息 | SD-01G II.C.5.f |
| 7 天——协调员信息变更 | SD-01G II.B.1.e |
| 60 天——“无关键网络系统”通知 | SD-02G II.A.5 |
| 45 / 50 / 30 天——永久变更 · 修订备案 · 复议申请 | SD-02G VI.C / VI.D / VI.F |
| 12 个月,≥ 2 个目标——事件响应计划演练 | SD-02G III.F.1.e |
| 24 个月——网络安全架构设计评审 | SD-02G III.G.2.b |
| 每年 ⅓,3 年 100%——评估覆盖率 | SD-02G III.G.2.d |
| 12 个月——评估计划和报告提交 | SD-02G III.G.3–4 |
| 24 小时——最大数据包捕获时长 | SD-02G IV.C.2.e.ii |
尚不存在事实来源。 这两项指令绝大多数由计划、证明和记录保存驱动(“是否存在 TSA 批准的网络安全实施计划”、“评估计划是否在 12 个月内提交”)。这些都不来自主机事实收集,目前也没有任何东西发出各模块头部所记录的
input。在输入缺失的情况下,此框架报告 全部 12 个部分均完全不合规——对于审计框架而言这是正确的故障关闭行为,但在接入证明录入或 GRC 导出之前,它并不是一个可用的评估。不要把它当作可用的来演示。
NERC-CIP 覆盖
完整库覆盖 frameworks/critical_infrastructure/nerc_cip/ 中所有现行 CIP 标准(CIP-002 至 CIP-015)。
OPA 端点: POST /v1/data/nerc_cip_main
数据源: 14 项 CIP 策略使用的每个 input.* 字段都记录在 frameworks/critical_infrastructure/nerc_cip/DATA_SOURCES.md 中——每个条目列出真实世界的来源系统(GRC、CMDB、LMS、PACS、SIEM、INSM 平台、漏洞扫描器等)、收集方法(Ansible 模块或 REST 端点),以及该集成当前是已上线还是存根。
将策略加载到 OPA
单个策略
curl -X PUT --data-binary @benchmarks/cis/rhel_9/pam_validation.rego \ http://localhost:8181/v1/policies/cis_rhel9_pam
目录中的所有策略
for f in benchmarks/cis/rhel_9/*.rego; do curl -s -X PUT --data-binary @"$f" \ "http://localhost:8181/v1/policies/$(basename $f .rego)" done
可选:按域拆分
单个 OPA 实例即可轻松服务整个库——从那里开始。如果之后你希望在域之间实现爆炸半径或访问隔离,可以运行多个实例,并向每个实例加载一个子树:
# e.g. one instance per domain, each on its own port
podman run -d --name opa-benchmarks -p 8181:8181 openpolicyagent/opa run --server --addr :8181
podman run -d --name opa-frameworks -p 8182:8181 openpolicyagent/opa run --server --addr :8181
podman run -d --name opa-governance -p 8183:8181 openpolicyagent/opa run --server --addr :8181然后将 benchmarks/ 加载到第一个,frameworks/ 加载到第二个,将 governance/ + enforcement/ 加载到第三个。
如何拆分完全由你决定——策略既不知道也不关心自己被加载到哪个实例,且没有任何策略引用另一个实例。选择任何符合你希望如何控制访问的分组方式;上面这个并无特别之处。
框架入口点
每个框架都暴露统一的入口点:
data.<package>.main.compliance_report
这样你就可以按名称评估任何框架,而无需了解其模块内部如何组织。有些框架是单个模块,另一些则聚合了十几个;无论哪种方式,入口点看起来都一样。
入口点以持有策略的包命名——绝不使用调用方自己的词汇。如果你的系统对某个框架的拼写不同(本库称为 cis_ubuntu_22_04 的地方你称为 cis_ubuntu_2204),请在你这边写一个薄别名:
package cis_ubuntu_2204.main import rego.v1 compliance_report := data.cis_ubuntu_22_04.main.compliance_report
将这种转换保留在你的仓库中,才能让这个库保持通用。
故障关闭
大多数控制项的表述是 “如果事实表明 X,则违规”。在没有事实的情况下,没有任何迭代,也没有任何违规——而一份天真的报告会宣布,对于一次什么都没衡量的评估,几乎完全合规。这一结果与一个真正干净的系统无法区分,而这正是那种会悄悄进入审计记录的东西。
因此,每个入口点都会根据是否提供了事实来进行门控:
| 输入 | 结果 |
|---|---|
| 没有事实 | compliant: false,0%,所有控制项均计为失败,显式 FAIL-CLOSED 违规 |
| 真实事实 | 正常评估;门控透明 |
opa eval -d . -f pretty 'data.cis_rhel9.main.compliance_report' # compliant: false, compliance_percentage: 0, violations: ["FAIL-CLOSED: no facts supplied ..."]
空报告永远不是通过的报告。限制:该门控检测的是完全为空的输入,而不是部分为空的输入——稀疏或形状错误的事实仍会正常评估,并可能少报违规。
输入 / 输出契约
每个框架的入口点接受系统事实作为输入,并返回结构化报告。各个模块还额外暴露自己的 compliance_assessment / compliance_report 规则,如果你只想要单个部分而不是整个框架:
{
"compliant": false,
"summary": {
"total_controls": 338,
"passing_controls": 301,
"failing_controls": 37,
"compliance_percentage": 89.05,
"overall_compliance": "FAIL"
},
"violations": [
"1.1.1 Ensure mounting of cramfs filesystems is disabled",
"5.2.4 Ensure SSH X11 forwarding is disabled"
],
"section_compliance": {
"1_filesystem": true,
"2_services": false,
...
}
}作为 Git 子模块使用
# Add to your project git submodule add https://github.com/ynotbhatc/rego_policy_libraries.git policies git submodule update --init --recursive # Update to latest git submodule update --remote policies git add policies && git commit -m "Update policy library"
要求
- Open Policy Agent v0.60+,或 Enterprise OPA (EOPA)——这些策略仅使用标准 Rego 和内置函数,因此任一运行时均可
- 所有策略均使用
import rego.v1(Rego v1 语法) - 在 CI 中针对 OPA v0.68 持续测试,并在本地针对 OPA v1.x 测试
- 没有其他依赖——没有 sidecar、没有数据文档、没有外部服务。策略是其输入的纯函数,不执行任何 I/O(没有
http.send)。
使用者
该库是独立的。它不关心谁调用它、如何收集事实或结果存储在哪里——它是一棵由 .rego 文件及其测试组成的树,仅此而已。
任何特定于某个调用者的内容——框架键命名、路由表、结果模式、事实收集——都属于该调用者,而不是这里。如果你在本仓库中发现某些内容只对某一个使用者有意义,那就是一个值得报告的 bug。
已知使用者:
- AAC(Ansible Automated Compliance)——一个基于 Ansible Automation Platform + OPA + PostgreSQL 的合规自动化平台。它将该库作为 git 子模块使用,并在自己一侧保留自己的键转换别名和路由配置。(编排仓库是私有的;该策略库是开放组件。)
在其他地方使用它?请开一个 issue——目标是这里没有任何内容需要了解上述任何一项。
GitHub 上更多 Rego 策略
指向社区中其他优秀策略即代码工作的链接——完全归功于以下每个项目的所有者和作者。这些是参考,不是内置副本:我们链接到它们以便你能找到它们;这些策略仍留在其原仓库中,由其各自的维护者和许可证管理。
策略库
| 仓库 | 所有者 / 作者 | 涵盖内容 |
|---|---|---|
| redhat-cop/rego-policies | Red Hat Community of Practice | 用于 OPA、Gatekeeper 和 Conftest 的 Kubernetes/OpenShift + 通用配置合规策略 |
| kubewarden/rego-policies-library | Kubewarden 项目(SUSE) | Kubernetes 安全与合规准入策略(兼容 Gatekeeper/Kubewarden,编译为 Wasm) |
| conforma/policy | Conforma / Konflux-CI(Enterprise Contract) | 软件供应链验证——镜像证明、构建来源、流水线定义验证 |
| raedrizk/ansible-policy-as-code | Raed Rizk(@raedrizk) | AAP 治理 / 流水线强制执行 — 作业模板命名、EE 安全、fork 限制、基于时间的访问、SCM 分支强制执行、超级用户限制 |
样式、代码检查与工具
| 仓库 | 所有者 / 作者 | 它是什么 |
|---|---|---|
| open-policy-agent/rego-style-guide | Open Policy Agent 维护者 | 官方 Rego 风格指南 / 编写最佳实践(补充 Regal 代码检查器) |
| open-policy-agent/rego-python | Open Policy Agent | 用于处理 Rego AST 的 Python 库 |
| itaysk/regogo | Itay Shakury(@itaysk) | 封装 Rego 引擎的 Go 库,用于通用 JSON 查询(jq 风格) |
感谢每个项目的维护者和作者。要添加仓库?请链接到它(不要复制策略),注明所有者/作者,并给出一行描述。
转换器 — 从其他引擎使用该库
Rego 是 OPA、Enterprise OPA、Conftest、Gatekeeper、Kubewarden、Trivy、KICS、Regula、
Snyk IaC、Styra、Terraform Cloud 和 Spacelift 的原生语言,因此大多数平台按原样运行这些策略。对于
其他所有情况,converters/ 是该库的第二款产品:打包(适用于每种
语言 SDK 的 WASM、签名捆绑包)、交换导出(OSCAL、SARIF、OCSF、crosswalk CSV)以及按引擎的生成器
(Ansible、SCAP、InSpec、Wazuh、CEL/Kyverno、Azure Policy、AWS Config、Steampipe、Sentinel、Sigma、Prowler)。
每个目标都有自己的目录、状态和往返测试;路线图和工作顺序见
converters/README.md。
贡献
- 将新的
.rego文件放在适当的分类路径中 - 在顶部添加
import rego.v1 - 使用标准输出结构暴露
compliance_assessment规则 - 提交 PR
许可证
Apache 2.0
来源:Hacker News · github.com