Conceitos · Segurança

Admission Controllers

Plugins que interceptam requisições na API Server antes de persistir no etcd. Podem modificar (Mutating) ou validar (Validating) qualquer recurso Kubernetes.

// PIPELINE DE UMA REQUISIÇÃO À API SERVER
1
kubectl applyRequisição chega na API Server
2
AutenticaçãoQuem está fazendo a requisição?
3
Autorização (RBAC)Tem permissão para esta ação?
4
Mutating WebhooksModificar o objeto (injetar sidecar, defaults)
5
Schema ValidationO YAML está correto?
6
Validating WebhooksPolíticas customizadas OK?
7
etcdObjeto persistido com sucesso

🔧 Mutating Controllers

Rodam primeiro. Podem modificar o objeto antes de ser validado. Exemplos: injetar sidecar do Istio, adicionar labels padrão, definir resources default via LimitRange.

🛡️ Validating Controllers

Rodam depois dos Mutating. Só podem aprovar ou rejeitar — não modificam. Se qualquer validating controller rejeitar, a operação falha com erro 403.

// ADMISSION CONTROLLERS ATIVOS NO EKS (principais)
NamespaceLifecycleValidatingImpede criação de recursos em namespaces em processo de deleção. Garante que o namespace default, kube-system e kube-public não sejam deletados.
LimitRangerMutatingAplica defaults de resources (CPU/memória) se não definidos. Requer que um objeto LimitRange exista no namespace.
ResourceQuotaValidatingVerifica se a criação de um recurso não vai estourar a quota do namespace. Requer que um objeto ResourceQuota exista.
PodSecurityValidatingAplica o Pod Security Standards (privileged, baseline, restricted). Substitui o deprecado PodSecurityPolicy desde K8s 1.25.
ServiceAccountMutatingInjeta automaticamente o ServiceAccount padrão em pods que não especificam um. Também adiciona o token de autenticação como volume.
DefaultStorageClassMutatingAtribui automaticamente a StorageClass padrão a PVCs que não especificam uma. Evita PVCs em Pending por falta de StorageClass.
MutatingAdmissionWebhookMutatingChama webhooks externos para modificar recursos antes de serem persistidos. Usado por Istio, Kyverno, OPA Gatekeeper, cert-manager.
ValidatingAdmissionWebhookValidatingChama webhooks externos para validar recursos. Se o webhook rejeitar, a operação falha. Usado por políticas de segurança e conformidade.
NodeRestrictionValidatingRestringe o que kubelets podem modificar. Um kubelet só pode modificar labels e objetos do seu próprio node. Segurança importante em EKS.
PriorityMutatingResolve o priorityClassName para o valor inteiro de prioridade. Necessário para PriorityClass funcionar no scheduler.

🔌 Admission Webhooks — Extensão Customizada

MutatingAdmissionWebhook e ValidatingAdmissionWebhook permitem que ferramentas externas participem do pipeline de admissão. O K8s chama um servidor HTTPS externo com o objeto sendo criado e aguarda aprovação/modificação.

🕸️Istio

Injeta o sidecar Envoy em todos os pods do namespace automaticamente

🔐cert-manager

Injeta configurações de certificados TLS automaticamente

📜Kyverno

Políticas de conformidade: naming conventions, labels obrigatórias, imagens aprovadas

⚖️OPA Gatekeeper

Políticas customizadas via Rego: validar, auditar e bloquear recursos fora do padrão

🔑External Secrets

Sincroniza secrets do AWS Secrets Manager para Kubernetes Secrets automaticamente