apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: allow-only-trusted-registries annotations: policies.kyverno.io/title: "Только доверенные реестры" policies.kyverno.io/category: Security policies.kyverno.io/severity: high policies.kyverno.io/subject: Pod policies.kyverno.io/description: >- Разрешает образы только из доверенных реестров компании. Предотвращает использование образов из публичных реестров без проверки безопасности. НАСТРОЙТЕ список разрешённых реестров под вашу инфраструктуру. spec: validationFailureAction: Enforce background: true rules: - name: check-trusted-registries match: resources: kinds: - Pod exclude: resources: namespaces: - kube-system - kyverno validate: message: >- Образ '{{ element.image }}' из недоверенного реестра. Разрешены только: - registry.company.com/ - gcr.io/company-project/ Загрузите образ в внутренний реестр и обновите манифест. foreach: - list: >- request.object.spec.containers[] | merge(request.object.spec.initContainers[] || `[]`, @) deny: conditions: all: # Образ НЕ из первого доверенного реестра - key: "{{ element.image }}" operator: NotStartsWith value: "registry.company.com/" # И НЕ из второго доверенного реестра - key: "{{ element.image }}" operator: NotStartsWith value: "gcr.io/company-project/" # Добавьте дополнительные условия по аналогии