All Policies
Require runAsNonRoot
Containers must be required to run as non-root users. This policy ensures `runAsNonRoot` is set to `true`. A known issue prevents a policy such as this using `anyPattern` from being persisted properly in Kubernetes 1.23.0-1.23.2.
Policy Definition
/pod-security/restricted/require-run-as-nonroot/require-run-as-nonroot.yaml
1apiVersion: kyverno.io/v1
2kind: ClusterPolicy
3metadata:
4 name: require-run-as-nonroot
5 annotations:
6 policies.kyverno.io/title: Require runAsNonRoot
7 policies.kyverno.io/category: Pod Security Standards (Restricted)
8 policies.kyverno.io/severity: medium
9 policies.kyverno.io/subject: Pod
10 kyverno.io/kyverno-version: 1.6.0
11 kyverno.io/kubernetes-version: "1.22-1.23"
12 policies.kyverno.io/description: >-
13 Containers must be required to run as non-root users. This policy ensures
14 `runAsNonRoot` is set to `true`. A known issue prevents a policy such as this
15 using `anyPattern` from being persisted properly in Kubernetes 1.23.0-1.23.2.
16spec:
17 validationFailureAction: audit
18 background: true
19 rules:
20 - name: run-as-non-root
21 match:
22 any:
23 - resources:
24 kinds:
25 - Pod
26 validate:
27 message: >-
28 Running as root is not allowed. Either the field spec.securityContext.runAsNonRoot
29 must be set to `true`, or the fields spec.containers[*].securityContext.runAsNonRoot,
30 spec.initContainers[*].securityContext.runAsNonRoot, and spec.ephemeralContainers[*].securityContext.runAsNonRoot
31 must be set to `true`.
32 anyPattern:
33 - spec:
34 securityContext:
35 runAsNonRoot: "true"
36 =(ephemeralContainers):
37 - =(securityContext):
38 =(runAsNonRoot): "true"
39 =(initContainers):
40 - =(securityContext):
41 =(runAsNonRoot): "true"
42 containers:
43 - =(securityContext):
44 =(runAsNonRoot): "true"
45 - spec:
46 =(ephemeralContainers):
47 - securityContext:
48 runAsNonRoot: "true"
49 =(initContainers):
50 - securityContext:
51 runAsNonRoot: "true"
52 containers:
53 - securityContext:
54 runAsNonRoot: "true"