Files
kyverno-2026-example/02-validation/01-resource-validation/allow-only-trusted-registries.yaml
2026-04-08 20:22:14 +07:00

52 lines
2.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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/"
# Добавьте дополнительные условия по аналогии