| Control | Policy | @@ -90,7 +90,7 @@ enforced/disallowed:
| Host Ports |
- HostPorts should be disallowed, or at minimum restricted to a whitelist. + HostPorts should be disallowed, or at minimum restricted to a known list. Restricted Fields: spec.containers[*].ports[*].hostPort spec.initContainers[*].ports[*].hostPort - Allowed Values: 0, undefined, (whitelisted) + Allowed Values: 0, undefined (or restricted to a known list) |
| AppArmor (optional) |
- On supported hosts, the `runtime/default` AppArmor profile is applied by default. The default policy should prevent overriding or disabling the policy, or restrict overrides to a whitelisted set of profiles. + On supported hosts, the 'runtime/default' AppArmor profile is applied by default. The default policy should prevent overriding or disabling the policy, or restrict overrides to an allowed set of profiles. Restricted Fields: metadata.annotations['container.apparmor.security.beta.kubernetes.io/*'] - Allowed Values: runtime/default, undefined + Allowed Values: 'runtime/default', undefined |
| /proc Mount Type | +
+ The default /proc masks are set up to reduce attack surface, and should be required. + Restricted Fields: + spec.containers[*].securityContext.procMount + spec.initContainers[*].securityContext.procMount + Allowed Values: undefined/nil, 'Default' + |
+
| Sysctls | +
+ Sysctls can disable security mechanisms or affect all containers on a host, and should be disallowed except for an allowed "safe" subset.
+ A sysctl is considered safe if it is namespaced in the container or the Pod, and it is isolated from other Pods or processes on the same Node. + Restricted Fields: + spec.securityContext.sysctls + Allowed Values: + kernel.shm_rmid_forced + net.ipv4.ip_local_port_range + net.ipv4.tcp_syncookies + net.ipv4.ping_group_range + undefined/empty + |
+
| Control | @@ -184,7 +209,7 @@ well as lower-trust users.The following listed controls should be enforced/disal|
| Privilege Escalation |
- Privilege escalation to root should not be allowed. + Privilege escalation to root should not be allowed. Restricted Fields: spec.containers[*].securityContext.privileged spec.initContainers[*].securityContext.privileged @@ -194,7 +219,7 @@ well as lower-trust users.The following listed controls should be enforced/disal |
| Running as Non-root |
- Containers must be required to run as non-root users. + Containers must be required to run as non-root users. Restricted Fields: spec.securityContext.runAsNonRoot spec.containers[*].securityContext.runAsNonRoot @@ -205,7 +230,7 @@ well as lower-trust users.The following listed controls should be enforced/disal |
| Non-root groups (optional) |
- Containers should be forbidden from running with a root primary or supplementary GID. + Containers should be forbidden from running with a root primary or supplementary GID. Restricted Fields: spec.securityContext.runAsGroup spec.securityContext.supplementalGroups[*] @@ -224,12 +249,12 @@ well as lower-trust users.The following listed controls should be enforced/disal |
| Seccomp |
- The runtime/default seccomp profile must be required, or allow additional whitelisted values. + The 'runtime/default' seccomp profile must be required, or allow specific additional profiles. Restricted Fields: metadata.annotations['seccomp.security.alpha.kubernetes.io/pod'] metadata.annotations['container.seccomp.security.alpha.kubernetes.io/*'] Allowed Values: - runtime/default + 'runtime/default' undefined (container annotation) |