This commit is contained in:
2026-04-08 20:22:14 +07:00
commit 34fbdd1412
96 changed files with 5321 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: disallow-host-namespaces
annotations:
policies.kyverno.io/title: "Запрет host namespaces и HostPath"
policies.kyverno.io/category: Pod Security Standards (Baseline)
policies.kyverno.io/severity: critical
policies.kyverno.io/subject: Pod
policies.kyverno.io/description: >-
hostNetwork, hostPID, hostIPC и hostPath дают контейнеру прямой доступ
к соответствующим ресурсам ноды. Это нарушает изоляцию контейнеров
и является вектором для escape-атак.
spec:
validationFailureAction: Enforce
background: true
rules:
- name: disallow-host-namespaces
match:
resources:
kinds:
- Pod
exclude:
resources:
namespaces:
- kube-system
validate:
message: >-
Под '{{ request.object.metadata.name }}' использует host namespace.
Запрещены: hostNetwork, hostIPC, hostPID.
Эти настройки дают контейнеру доступ к сети/процессам/IPC ноды.
pattern:
spec:
=(hostNetwork): false
=(hostIPC): false
=(hostPID): false
- name: disallow-hostpath-volumes
match:
resources:
kinds:
- Pod
exclude:
resources:
namespaces:
- kube-system
validate:
message: >-
Под '{{ request.object.metadata.name }}' использует HostPath volume.
HostPath даёт контейнеру прямой доступ к файловой системе ноды.
Используйте emptyDir, configMap, secret или PersistentVolumeClaim.
deny:
conditions:
any:
- key: "{{ request.object.spec.volumes[].hostPath | length(@) }}"
operator: GreaterThan
value: "0"