mirror of
https://github.com/kyverno/kyverno.git
synced 2025-04-16 09:16:24 +00:00
49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
# Require Pods Drop All Capabilities
|
|
|
|
Containers may optionally ask for specific Linux capabilities without requiring root on the node. As a security best practice, containers should only specify exactly which capabilities they need. This starts with dropping all capabilities and only selectively adding ones back.
|
|
|
|
This example policy requires that all containers drop all capabilities.
|
|
|
|
## More information
|
|
|
|
* [Set Capabilities for a Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container)
|
|
|
|
## Policy YAML
|
|
|
|
[require_drop_all.yaml](more/require_drop_all.yaml)
|
|
|
|
```yaml
|
|
apiVersion: kyverno.io/v1
|
|
kind: ClusterPolicy
|
|
metadata:
|
|
name: drop-all-capabilities
|
|
spec:
|
|
validationFailureAction: audit
|
|
rules:
|
|
- name: drop-all-containers
|
|
match:
|
|
resources:
|
|
kinds:
|
|
- Pod
|
|
validate:
|
|
message: "Drop all must be defined for every container in the Pod."
|
|
pattern:
|
|
spec:
|
|
containers:
|
|
- securityContext:
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
- name: drop-all-initcontainers
|
|
match:
|
|
resources:
|
|
kinds:
|
|
- Pod
|
|
validate:
|
|
message: "Drop all must be defined for every container in the Pod."
|
|
pattern:
|
|
spec:
|
|
initContainers:
|
|
- securityContext:
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
```
|