Admission Controller Kubernetes
Что такое Admission Controller Kubernetes?
Admission Controller KubernetesAdmission controller — плагин API-сервера Kubernetes, перехватывающий аутентифицированные запросы до сохранения, чтобы по политике валидировать, изменять или отклонять объекты.
Допуск в Kubernetes находится в конвейере запросов API-сервера после аутентификации и авторизации, но до записи объекта в etcd. Он выполняется в две упорядоченные фазы: mutating-контроллеры могут переписать объект (задать значения по умолчанию, внедрить sidecar Istio/Envoy), затем validating-контроллеры принимают или отклоняют его. Встроенные контроллеры включают NamespaceLifecycle, ResourceQuota, ServiceAccount, PodSecurity и ImagePolicyWebhook. Внешние движки политик регистрируются как MutatingWebhookConfiguration/ValidatingWebhookConfiguration, получают JSON-нагрузку AdmissionReview и возвращают вердикт allow/deny — именно сюда подключаются OPA Gatekeeper и Kyverno. С версии 1.30 (GA) ValidatingAdmissionPolicy встраивает выражения CEL прямо в API-сервер, устраняя сетевой переход к вебхуку.
Допуск — главная точка применения политик цепочки поставок и рабочих нагрузок: проверка подписи образов (Sigstore/cosign), Pod Security Standards и гигиена меток. Это делает сам вебхук мишенью. Инцидент IngressNightmare в марте 2025 года (CVE-2025-1974, CVSS 9.8, вместе с CVE-2025-1097/1098/24514) позволил неаутентифицированному злоумышленнику достичь эндпоинта admission ingress-nginx и внедрить директивы NGINX, добившись RCE в pod контроллера и потенциальной кражи секретов в масштабах всего кластера — суровое напоминание о том, что эндпоинты допуска никогда не должны быть доступны из сети.
В эксплуатации failurePolicy: Fail при недоступном вебхуке может вывести кластер из строя, поэтому ограничивайте вебхуки с помощью namespaceSelector, задавайте жёсткие timeoutSeconds и исключайте kube-system.
flowchart LR
U[kubectl / клиент] --> API[API server]
API --> AUTHN[Аутентификация]
AUTHN --> AUTHZ[Авторизация RBAC]
AUTHZ --> MUT[Mutating-допуск -> внедрение / default]
MUT --> SCH[Валидация схемы и объекта]
SCH --> VAL[Validating-допуск + VAP CEL]
VAL --> D{Разрешено?}
D -->|Отклонить| ERR[Запрос отклонён клиенту]
D -->|Разрешить| ETCD[(Persist to etcd)]
VAL -.policy.-> ENG[OPA Gatekeeper / Kyverno]● Примеры
- 01
Mutating-вебхук внедряет sidecar Istio/Envoy в каждый новый pod в помеченном namespace.
- 02
ValidatingAdmissionPolicy отклоняет Deployments без настройки runAsNonRoot.
● Частые вопросы
Что такое Admission Controller Kubernetes?
Admission controller — плагин API-сервера Kubernetes, перехватывающий аутентифицированные запросы до сохранения, чтобы по политике валидировать, изменять или отклонять объекты. Относится к категории Облачная безопасность в кибербезопасности.
Что означает Admission Controller Kubernetes?
Admission controller — плагин API-сервера Kubernetes, перехватывающий аутентифицированные запросы до сохранения, чтобы по политике валидировать, изменять или отклонять объекты.
Как защититься от Admission Controller Kubernetes?
Защита от Admission Controller Kubernetes обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Admission Controller Kubernetes?
Распространённые альтернативные названия: Admission webhook, ValidatingAdmissionPolicy.