Files
kyverno-2026-example/02-validation/02-security/require-seccomp-profile.yaml
2026-04-08 20:22:14 +07:00

53 lines
1.6 KiB
YAML

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-seccomp-profile
annotations:
policies.kyverno.io/title: "Обязательный Seccomp профиль"
policies.kyverno.io/category: Pod Security Standards (Restricted)
policies.kyverno.io/severity: medium
policies.kyverno.io/subject: Pod
policies.kyverno.io/description: >-
Seccomp ограничивает системные вызовы контейнера, уменьшая
поверхность атаки на ядро Linux.
Используйте RuntimeDefault (профиль рантайма) или Localhost (кастомный).
spec:
validationFailureAction: Enforce
background: true
rules:
- name: require-seccomp-profile
match:
resources:
kinds:
- Pod
exclude:
resources:
namespaces:
- kube-system
validate:
message: >-
Под '{{ request.object.metadata.name }}' не имеет seccomp профиля.
Добавьте в spec.securityContext:
seccompProfile:
type: RuntimeDefault
pattern:
spec:
securityContext:
seccompProfile:
type: "RuntimeDefault | Localhost"
- name: disallow-unconfined-seccomp
match:
resources:
kinds:
- Pod
validate:
message: >-
Тип Unconfined отключает seccomp защиту. Используйте RuntimeDefault.
deny:
conditions:
any:
- key: "{{ request.object.spec.securityContext.seccompProfile.type }}"
operator: Equals
value: Unconfined