CURSOS / TECNOLOGIA / KUBERNETES: ARQUITETURA E ORQUESTRAÇÃO REAL (ETAPA 4 DE 4)
← Voltar aos cursos
CURSO PRÁTICO · ETAPA 4 DE 4 · V1.32

Recursos Avançados e Segurança

Explore WebAssembly (Wasm) com RuntimeClass, domine os três portões de defesa do API Server (Autenticação, RBAC e Admission Control), entenda a extensibilidade da API e aplique STRIDE em clusters reais.

Ilustração editorial de gateway de segurança Kubernetes com autenticação, RBAC, controle de admissão e execução Wasm
6 Oficinas PráticasCobrindo os Capítulos 9, 14, 15, 16 e 17 de The Kubernetes Book (v1.32).
Simulador de SegurançaTeste decisões do API Server (401/403/Permitido) e mitigações STRIDE.
Hardening AplicávelManifestos RBAC e automountServiceAccountToken: false prontos.

Jornada do Curso (4 Etapas)

Você está na Etapa 4: Recursos Avançados e Segurança — etapa final da trilha.

Oficinas Avançadas e Segurança

Capítulos 9, 14, 15, 16 e 17 · K8s v1.32
Diagrama ilustrativo da requisição passando por Autenticação, Autorização RBAC e Admission Control até o etcd
Toda chamada à API do Kubernetes atravessa TLS, Autenticação, Autorização (RBAC) e Controladores de Admissão antes de ser gravada no etcd.
OFICINA 01 · CAPÍTULO 9

WebAssembly (Wasm) no Kubernetes

Graças à CRI plugável, o Kubernetes não se limita a contêineres Linux tradicionais: ele também orquestra módulos WebAssembly (Wasm) ultraleves lado a lado no mesmo cluster. O fluxo para rodar um app Wasm via containerd segue sete passos:

  1. Compilar o código como binário Wasm.
  2. Empacotar o binário como imagem OCI e publicar em um registry.
  3. Instalar o shim Wasm (ex.: Spin / containerd-wasm-shims) em um ou mais nós e rotular esses nós.
  4. Criar uma RuntimeClass apontando para o shim e os labels dos nós.
  5. Definir o Pod com a imagem OCI Wasm e referenciar spec.runtimeClassName.
  6. O Scheduler envia o Pod ao nó rotulado e o kubelet repassa a execução ao containerd com o shim Wasm.
OFICINA 02 · CAPÍTULO 14

Segurança da API: Autenticação, Autorização & RBAC

Toda ação no Kubernetes (como kubectl apply) vira uma requisição HTTPS/TLS para o API Server e precisa vencer três portões em ordem estrita:

  • 1. Autenticação (AuthN): confirma quem é o usuário (certificados X.509 assinados pela CA do cluster, tokens ou OIDC).
  • 2. Autorização (AuthZ): verifica se o usuário autenticado pode executar aquela operação naquele recurso e Namespace. Em produção, combina-se o autorizador RBAC com o autorizador Node.
  • 3. Admission Control: valida e aplica políticas sobre o objeto antes de persistir no etcd.
Objetos centrais do RBAC
Objeto Escopo Papel
Role Namespace específico Lista permissões: verbs (get, list, watch) em apiGroups e resources.
RoleBinding Namespace específico Conecta uma Role a usuários, grupos ou ServiceAccounts. Sem binding, a Role não faz nada.
ClusterRole / ClusterRoleBinding Todo o cluster Permite gerenciar recursos globais (como nodes) ou conceder acesso em todos os Namespaces.
OFICINA 03 · CAPÍTULO 15

A API do Kubernetes, Versionamento & Extensões

No livro, Nigel Poulton compara a API do Kubernetes ao catálogo da Amazon: se um recurso não existe na API, você não consegue implantá-lo no cluster. Cada recurso possui propriedades configuráveis (como metadata, restartPolicy, serviceAccountName, runtimeClassName, containers e volumes).

  • Planejando upgrades sem surpresas: monitore avisos de depreciação na CLI, consulte audit logs e acompanhe a métrica apiserver_requested_deprecated_apis antes de atualizar a versão do cluster.
  • Estendendo o Kubernetes: é possível adicionar recursos próprios (Custom Resources / CRDs) e controladores customizados — exatamente como drivers CSI e operadores de banco de dados expõem recursos avançados nativamente na API.
Terminal · Explorar recursos da API e testar permissões RBAC
kubectl api-resources
kubectl explain pod.spec.automountServiceAccountToken
kubectl auth can-i get deployments -n shield --as=sky
OFICINA 04 · CAPÍTULO 16

Modelagem de Ameaças com STRIDE

Nos capítulos finais escritos com Pushkar Joglekar, o foco muda para engenharia de segurança sistemática com o modelo STRIDE:

As 6 categorias STRIDE aplicadas ao Kubernetes
Letra Ameaça Contramedida Direta no Cluster
S Spoofing (falsificação de identidade) mTLS com rotação automática de certificados entre componentes e autenticação forte no API Server.
T Tampering (adulteração) Integridade de imagens OCI, controle de admissão e proteção de acesso ao etcd.
R Repudiation (repúdio) Habilitar Audit Logs do API Server para rastrear quem executou cada chamada.
I Information Disclosure (vazamento) Criptografia em repouso no etcd, RBAC restrito em Secrets e TLS obrigatório.
D Denial of Service (indisponibilidade) Definir resources.requests/limits, ResourceQuotas e alta disponibilidade (3 ou 5 nós).
E Elevation of Privilege (escalada) Princípio do menor privilégio no RBAC, evitar Pods privilegiados e desabilitar tokens desnecessários.
Atenção ao token padrão do Pod: todo Pod recebe automaticamente um token de ServiceAccount montado como Secret para falar com o API Server — mas a maioria dos Pods não precisa falar com a API! Sempre defina automountServiceAccountToken: false nos Pods que não consultam o API Server.
OFICINA 05 · CAPÍTULO 17

Segurança no Mundo Real & Cadeia de Suprimentos

Em ambientes corporativos, segurança eficaz precisa ter baixo atrito para que desenvolvedores não tentem contornar as regras:

  • Imagens base aprovadas: mantenha um conjunto enxuto de imagens base oficiais e validadas (com drivers padrão, patches conhecidos, auditoria configurada e varredura contínua de vulnerabilidades) em vez de imagens comunitárias aleatórias.
  • Menor privilégio contínuo: combine RBAC granular, isolamento de rede com NetworkPolicies e revisões periódicas de permissões e APIs depreciadas.
OFICINA 06 · CAPÍTULOS 14 E 16

Laboratório Guiado: Role, RoleBinding & Pod Seguro

Abaixo estão os manifestos baseados diretamente nos exemplos do livro: uma Role + RoleBinding de leitura no Namespace shield para a usuária sky, e um Pod com montagem de token desativada.

Manifesto YAML · rbac-shield.yml (Role + RoleBinding)
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: shield
  name: read-deployments
rules:
- verbs: ["get", "watch", "list"]
  apiGroups: ["apps"]
  resources: ["deployments"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-deployments
  namespace: shield
subjects:
- kind: User
  name: sky
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: read-deployments
  apiGroup: rbac.authorization.k8s.io
Manifesto YAML · Pod sem montagem automática de ServiceAccount Token
apiVersion: v1
kind: Pod
metadata:
  name: secure-app-pod
spec:
  automountServiceAccountToken: false
  containers:
  - name: app
    image: nginx:1.27-alpine
LABORATÓRIO INTERATIVO · CAPÍTULOS 14 E 16

Simulador de Portões da API & Auditoria STRIDE

Simule uma requisição chegando ao API Server e veja em qual portão ela passa ou é bloqueada.

Decisão do API Server 201 Created (Permitido)
Portão Decisivo Todos os 3 aprovados
Foco STRIDE E · Menor Privilégio
A requisição passou por TLS, Autenticação, RBAC e Admission Control, sendo gravada no etcd. Para conter Elevation of Privilege, mantenha automountServiceAccountToken: false nos Pods que não consultam a API.
VERIFICAÇÃO DE DOMÍNIO · 4 QUESTÕES

Teste Rápido da Etapa 4

Valide os conceitos dos Capítulos 9, 14, 15, 16 e 17 para concluir o curso.

1. Qual recurso do Kubernetes conecta um Pod WebAssembly (Wasm) ao shim correto no containerd de um nó rotulado?

2. Em qual ordem exata uma requisição válida atravessa os portões de segurança do API Server antes de chegar ao etcd?

3. Por que devemos configurar automountServiceAccountToken: false na maioria dos Pods?

4. No capítulo 17, qual é um dos principais benefícios de padronizar poucas imagens base aprovadas pela empresa?

CONCLUSÃO DO CURSO

Checklist Final & Exportação

Marque cada marco concluído para fechar as 4 etapas da trilha.

TRILHA CONCLUÍDA · 4 DE 4 ETAPAS

Jornada Kubernetes Completa!

Você percorreu toda a arquitetura do Kubernetes v1.32 — do Control Plane e quórum RAFT até Deployments, Ingress, StatefulSets, Wasm, RBAC e STRIDE.

Voltar ao Portal de Cursos →