You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/manual/developer/03_creating_content.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ build files/configuration, etc.
26
26
</tr>
27
27
<trclass="odd">
28
28
<td><p><code>applications</code></p></td>
29
-
<td><p>Contains security content for applications such as OpenShift or OpenStack. Contains rules, OVAL checks, Ansible tasks, Bash remediations, etc.</p></td>
29
+
<td><p>Contains security content for applications such as OpenShift or OpenStack. Contains rules, OVAL checks, CEL checks, Ansible tasks, Bash remediations, etc. For Kubernetes/OpenShift CEL rules, see <ahref="12_cel_content.md">CEL Content</a>.</p></td>
Copy file name to clipboardExpand all lines: docs/manual/developer/06_contributing_with_content.md
+77-6Lines changed: 77 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -668,12 +668,19 @@ Tips:
668
668
669
669
### Checks
670
670
671
-
Checks are used to evaluate a Rule. There are two types of check content
672
-
supported by ComplianceAsCode: OVAL and SCE. Note that OVAL is standardized
673
-
by NIST and has better cross-scanner support than SCE does. However, because
674
-
SCE can use any language on the target system (Bash, Python, ...) it is much
675
-
more flexible and general-purpose than OVAL. This project generally encourages
676
-
OVAL unless it lacks support for certain features.
671
+
Checks are used to evaluate a Rule. There are three types of check content
672
+
supported by ComplianceAsCode: OVAL, CEL, and SCE.
673
+
674
+
* **OVAL** (Open Vulnerability and Assessment Language) - Standardized by NIST with better cross-scanner support. Used for traditional operating system compliance checks (file system, processes, packages). Generally the preferred choice for OS-level checks.
675
+
676
+
* **CEL** (Common Expression Language) - Used for Kubernetes and OpenShift platform compliance checks. CEL rules evaluate Kubernetes API resources without requiring shell access to nodes. See [CEL Content](12_cel_content.md) for complete documentation on creating CEL rules.
677
+
678
+
* **SCE** (Script Check Engine) - Can use any language on the target system (Bash, Python, ...) making it more flexible and general-purpose than OVAL, but with less cross-scanner support.
679
+
680
+
This project generally encourages using:
681
+
- OVAL for Linux/OS checks
682
+
- CEL for Kubernetes/OpenShift platform checks
683
+
- SCE only when OVAL lacks support for certain features
677
684
678
685
#### OVAL Check Content
679
686
@@ -946,6 +953,70 @@ means:
946
953
</tbody>
947
954
</table>
948
955
956
+
### CEL Check Content
957
+
958
+
[CEL](https://github.com/google/cel-spec) (Common Expression Language) is a mechanism
959
+
for evaluating Kubernetes and OpenShift API resources for compliance checking. CEL checks
960
+
are used by the [compliance-operator](https://github.com/ComplianceAsCode/compliance-operator)
961
+
to perform platform-level compliance checks without requiring shell access to nodes.
962
+
963
+
CEL rules are defined directly in the `rule.yml` file using specialized fields:
964
+
965
+
* `scanner_type: CEL` - Marks the rule as a CEL rule
966
+
* `check_type: Platform` - Indicates this is a platform-level check
967
+
* `expression` - The CEL expression that evaluates to boolean (true=pass, false=fail)
968
+
* `inputs` - List of Kubernetes resources to evaluate
0 commit comments