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,54 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: check-image-vulnerabilities
annotations:
policies.kyverno.io/title: "Проверка уязвимостей образов через внешний API"
policies.kyverno.io/category: Security
policies.kyverno.io/severity: critical
policies.kyverno.io/subject: Pod
policies.kyverno.io/description: >-
Проверяет образ контейнера через внешний vulnerability scanning API
перед деплоем в production. Блокирует деплой если найдены
критические уязвимости.
НАСТРОЙТЕ URL вашего сканера (Trivy, Snyk, Grype и т.д.)
Требует: admissionController.extraArgs: [--enableExternalDataCall=true]
spec:
validationFailureAction: Enforce
background: false # только для живых запросов, не background scan
rules:
- name: check-critical-vulnerabilities
match:
resources:
kinds:
- Pod
namespaces:
- production
preconditions:
any:
- key: "{{ request.operation }}"
operator: In
value: [CREATE, UPDATE]
context:
- name: scanResult
apiCall:
# Замените на URL вашего vulnerability API
urlPath: "https://vuln-api.company.com/v1/scan"
method: POST
data:
- key: image
value: "{{ request.object.spec.containers[0].image }}"
- key: severity
value: CRITICAL
jmesPath: "critical_count || `0`"
validate:
message: >-
Образ '{{ request.object.spec.containers[0].image }}'
содержит {{ scanResult }} критических уязвимостей.
Деплой в production запрещён.
Обновите базовый образ и пересоберите: https://vuln-api.company.com/report
deny:
conditions:
- key: "{{ scanResult }}"
operator: GreaterThan
value: "0"