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 validate:
27 cel:
28 expressions:
29 - expression: >-
30 !has(object.spec.securityContext) ||
31 !has(object.spec.securityContext.runAsUser) ||
32 object.spec.securityContext.runAsUser > 0
33 message: >-
34 Running as root is not allowed. The field spec.securityContext.runAsUser must be unset or
35 set to a number greater than zero.
36
37 - expression: >-
38 object.spec.containers.all(container, !has(container.securityContext) ||
39 !has(container.securityContext.runAsUser) ||
40 container.securityContext.runAsUser > 0)
41 message: >-
42 Running as root is not allowed. The field spec.containers[*].securityContext.runAsUser must be unset or
43 set to a number greater than zero
44
45 - expression: >-
46 !has(object.spec.initContainers) ||
47 object.spec.initContainers.all(container, !has(container.securityContext) ||
48 !has(container.securityContext.runAsUser) ||
49 container.securityContext.runAsUser > 0)
50 message: >-
51 Running as root is not allowed. The field spec.initContainers[*].securityContext.runAsUser must be unset or
52 set to a number greater than zero
53
54 - expression: >-
55 !has(object.spec.ephemeralContainers) ||
56 object.spec.ephemeralContainers.all(container, !has(container.securityContext) ||
57 !has(container.securityContext.runAsUser) ||
58 container.securityContext.runAsUser > 0)
59 message: >-
60 Running as root is not allowed. The field spec.ephemeralContainers[*].securityContext.runAsUser must be unset or
61 set to a number greater than zero