1
+ apiVersion : kubescape.io/v1
2
+ kind : PolicyConfiguration
3
+ metadata :
4
+ name : basic-policy-configuration
5
+ settings :
6
+ insecureCapabilities :
7
+ - SETPCAP
8
+ - NET_ADMIN
9
+ - NET_RAW
10
+ - SYS_MODULE
11
+ - SYS_RAWIO
12
+ - SYS_PTRACE
13
+ - SYS_ADMIN
14
+ - SYS_BOOT
15
+ - MAC_OVERRIDE
16
+ - MAC_ADMIN
17
+ - PERFMON
18
+ - ALL
19
+ - BPF
20
+ ---
21
+ apiVersion : admissionregistration.x-k8s.io/v1alpha1
22
+ kind : ValidatingAdmissionPolicy
23
+ metadata :
24
+ name : cluster-policy-deny-insecure-capabilities
25
+ spec :
26
+ failurePolicy : Fail
27
+ paramKind :
28
+ apiVersion : kubescape.io/v1
29
+ kind : PolicyConfiguration
30
+ matchConstraints :
31
+ resourceRules :
32
+ - apiGroups : [""]
33
+ apiVersions : ["v1"]
34
+ operations : ["CREATE", "UPDATE"]
35
+ resources : ["pods"]
36
+ - apiGroups : ["apps"]
37
+ apiVersions : ["v1"]
38
+ operations : ["CREATE", "UPDATE"]
39
+ resources : ["deployments","replicasets","daemonsets","statefulsets"]
40
+ - apiGroups : ["batch"]
41
+ apiVersions : ["v1"]
42
+ operations : ["CREATE", "UPDATE"]
43
+ resources : ["jobs","cronjobs"]
44
+ validations :
45
+ - expression : >
46
+ object.kind != 'Pod' ||
47
+ object.spec.containers.all(container, params.settings.insecureCapabilities.all(insecureCapability,
48
+ !has(container.securityContext) || !has(container.securityContext.capabilities) || !has(container.securityContext.capabilities.add) ||
49
+ container.securityContext.capabilities.add.all(capability, capability != insecureCapability)
50
+ ))
51
+ message: "Pod has one or more containers with insecure capabilities! (see more at https://hub.armosec.io/docs/c-0046)"
52
+ reason: "High"
53
+ - expression : >
54
+ ['Deployment','ReplicaSet','DaemonSet','StatefulSet','Job'].all(kind, object.kind != kind) ||
55
+ object.spec.template.spec.containers.all(container, params.settings.insecureCapabilities.all(insecureCapability,
56
+ !has(container.securityContext) || !has(container.securityContext.capabilities) || !has(container.securityContext.capabilities.add) ||
57
+ container.securityContext.capabilities.add.all(capability, capability != insecureCapability)
58
+ ))
59
+ message: "Workload has one or more containers with insecure capabilities! (see more at https://hub.armosec.io/docs/c-0046)"
60
+ reason: "High"
61
+ - expression : >
62
+ object.kind != 'CronJob' ||
63
+ object.spec.jobTemplate.spec.containers.all(container, params.settings.insecureCapabilities.all(insecureCapability,
64
+ !has(container.securityContext) || !has(container.securityContext.capabilities) || !has(container.securityContext.capabilities.add) ||
65
+ container.securityContext.capabilities.add.all(capability, capability != insecureCapability)
66
+ ))
67
+ message: "CronJob has one or more containers with insecure capabilities! (see more at https://hub.armosec.io/docs/c-0046)"
68
+ reason: "High"
69
+ ---
70
+ apiVersion : admissionregistration.x-k8s.io/v1alpha1
71
+ kind : ValidatingAdmissionPolicyBinding
72
+ metadata :
73
+ name : cluster-policy-deny-insecure-capabilities-binding
74
+ spec :
75
+ policyName : cluster-policy-deny-insecure-capabilities
76
+ paramRef :
77
+ name : basic-policy-configuration
78
+ validationActions :
79
+ - Deny
80
+ - Audit
0 commit comments