All Policies
Require Run As Non-Root User in CEL
Containers must be required to run as non-root users. This policy ensures `runAsUser` is either unset or set to a number greater than zero.
Policy Definition
/pod-security-cel/restricted/require-run-as-non-root-user/require-run-as-non-root-user.yaml
1apiVersion: kyverno.io/v1
2kind: ClusterPolicy
3metadata:
4 name: require-run-as-non-root-user
5 annotations:
6 policies.kyverno.io/title: Require Run As Non-Root User in CEL
7 policies.kyverno.io/category: Pod Security Standards (Restricted) in CEL
8 policies.kyverno.io/severity: medium
9 policies.kyverno.io/subject: Pod
10 policies.kyverno.io/minversion: 1.11.0
11 kyverno.io/kyverno-version: 1.11.0
12 kyverno.io/kubernetes-version: "1.26-1.27"
13 policies.kyverno.io/description: >-
14 Containers must be required to run as non-root users. This policy ensures
15 `runAsUser` is either unset or set to a number greater than zero.
16spec:
17 validationFailureAction: Audit
18 background: true
19 rules:
20 - name: run-as-non-root-user
21 match:
22 any:
23 - resources:
24 kinds:
25 - Pod
26 operations:
27 - CREATE
28 - UPDATE
29 validate:
30 cel:
31 expressions:
32 - expression: >-
33 !has(object.spec.securityContext) ||
34 !has(object.spec.securityContext.runAsUser) ||
35 object.spec.securityContext.runAsUser > 0
36 message: >-
37 Running as root is not allowed. The field spec.securityContext.runAsUser must be unset or
38 set to a number greater than zero.
39
40 - expression: >-
41 object.spec.containers.all(container, !has(container.securityContext) ||
42 !has(container.securityContext.runAsUser) ||
43 container.securityContext.runAsUser > 0)
44 message: >-
45 Running as root is not allowed. The field spec.containers[*].securityContext.runAsUser must be unset or
46 set to a number greater than zero
47
48 - expression: >-
49 !has(object.spec.initContainers) ||
50 object.spec.initContainers.all(container, !has(container.securityContext) ||
51 !has(container.securityContext.runAsUser) ||
52 container.securityContext.runAsUser > 0)
53 message: >-
54 Running as root is not allowed. The field spec.initContainers[*].securityContext.runAsUser must be unset or
55 set to a number greater than zero
56
57 - expression: >-
58 !has(object.spec.ephemeralContainers) ||
59 object.spec.ephemeralContainers.all(container, !has(container.securityContext) ||
60 !has(container.securityContext.runAsUser) ||
61 container.securityContext.runAsUser > 0)
62 message: >-
63 Running as root is not allowed. The field spec.ephemeralContainers[*].securityContext.runAsUser must be unset or
64 set to a number greater than zero