cks

3.5 kube-bench (CIS)

Detalhamento do kube-bench e do CIS Kubernetes Benchmark para o CKS.

O que é

O kube-bench é uma ferramenta que verifica se o cluster está configurado de acordo com o CIS Kubernetes Benchmark. Ele roda checagens em YAML e gera um relatório PASS/FAIL. No exame CKS é comum rodar kube-bench, interpretar falhas e aplicar as correções indicadas (permissões de arquivos, argumentos de componentes, etc.).

Documentação / recursos

Comandos principais

# Control plane (master)
kube-bench run --targets=master

# Uma checagem específica (ex.: 1.3.2)
kube-bench run --targets=master --check='1.3.2'

# Node (kubelet, kube-proxy)
kube-bench run --targets=node

Correções típicas no exame

ID / Área Problema Correção
1.3.2 Controller Manager Profiling habilitado Em kube-controller-manager.yaml (manifest estático): garantir --profiling=false.
1.1.12 etcd Dono do diretório de dados chown etcd:etcd /var/lib/etcd (ou o path usado pelo etcd).
4.1.9 Kubelet Permissões do config chmod 600 /var/lib/kubelet/config.yaml.
1.2.x API Server NodePort / insecure Remover --kubernetes-service-node-port e fazer backup fora de manifests (ver 3.4).

Onde ficam os manifests (kubeadm)

Fluxo típico no exame

  1. Rodar kube-bench run --targets=master (e/ou --targets=node).
  2. Ler o output e anotar os FAIL.
  3. Para cada FAIL: aplicar a correção sugerida (chown, chmod, editar manifest, etc.).
  4. Rodar de novo o kube-bench ou a checagem específica para confirmar PASS.

Limitações

Em clusters managed (GKE, EKS, AKS) não há acesso ao control plane; kube-bench costuma rodar só nos nodes (–targets=node). No exame CKS o ambiente costuma ser um cluster que você controla (ex.: Killercoda ou VM com kubeadm).