Segurança de pods e políticas de rede
Isole cargas de trabalho.
Segurança de pods e políticas de rede é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.
Isolamento de cargas de trabalho
Dois controles limitam o que um pod comprometido pode fazer: Segurança de pods restringe os privilégios de um pod, e Políticas de rede restringem quais pods podem se comunicar entre si. Juntos, eles contêm o raio de impacto.
- A Segurança de pods impede escapes para o nó.
- As Políticas de rede impedem a movimentação lateral entre pods.
Configurações perigosas de pods
Vários campos da especificação do pod ampliam significativamente o risco quando permitidos.
privileged: trueconcede acesso quase total ao nó.hostPID,hostNetwork,hostIPCquebram o isolamento de namespaces.- Volumes
hostPathmontam diretórios do nó. - Capacidades adicionadas, como
SYS_ADMIN, permitem escapes. - Executar como root (
runAsUser: 0).
Pod Security Admission
O Pod Security Admission (PSA) substituiu o PodSecurityPolicy. Ele impõe três padrões integrados por namespace.
- Privilegiado: sem restrições (evite em cargas de trabalho).
- Base: bloqueia escalações de privilégios conhecidas.
- Restrito: prática recomendada reforçada (sem root, sem privilégios, capacidades removidas).
# Enforce the restricted standard on a namespace
kubectl label namespace prod \
pod-security.kubernetes.io/enforce=restrictedUm securityContext reforçado
Defina o princípio do menor privilégio no nível do pod e do contêiner usando um securityContext.
- Execute como usuário não root, com sistema de arquivos raiz somente leitura.
- Remova todas as capacidades do Linux e adicione apenas as necessárias.
- Proíba a escalação de privilégios.
# securityContext fields (YAML)
# runAsNonRoot: true
# readOnlyRootFilesystem: true
# allowPrivilegeEscalation: false
# capabilities: drop: [ALL]
kubectl apply -f hardened-deploy.yamlAlém dos padrões: mecanismos de políticas
Para regras mais abrangentes que as do PSA, controladores de admissão impõem políticas personalizadas.
- OPA Gatekeeper avalia restrições em Rego.
- Kyverno usa políticas YAML e pode modificar além de validar.
Eles podem proibir hostPath, exigir imagens assinadas ou impor rótulos em todo o cluster.
# Apply a Kyverno policy that disallows privileged pods
kubectl apply -f disallow-privileged.yamlRede aberta por padrão
Por padrão, todos os pods podem alcançar todos os outros pods em todos os namespaces. Não há segmentação até que você adicione Políticas de rede. Essa rede plana explica por que um único pod comprometido pode examinar e atacar todo o cluster.
# From a pod, the flat network lets you reach any service
curl http://internal-db.prod.svc.cluster.local:5432Noções básicas de políticas de rede
As Políticas de rede são regras com escopo de namespace que selecionam pods e permitem tráfego específico de entrada ou saída. Elas são aditivas: aplicar qualquer política a um pod faz com que ele passe a negar por padrão na direção abrangida.
- Os seletores correspondem aos pods por rótulo.
- As regras permitem tráfego de ou para pods, namespaces ou CIDRs específicos.
- É necessário um CNI compatível com políticas (Calico, Cilium).
Negue por padrão e depois permita
O padrão recomendado é uma base de negação padrão por namespace, seguida de regras explícitas de permissão para os fluxos necessários.
# Default-deny all ingress in a namespace (YAML)
# kind: NetworkPolicy spec: podSelector: {} policyTypes: [Ingress]
kubectl apply -f default-deny.yaml
# Then allow only frontend -> backend
kubectl apply -f allow-frontend.yamlBloqueio de saída e de metadados
As políticas de saída são tão importantes quanto as de entrada.
- Restrinja quais pontos de extremidade externos os pods podem acessar (isso limita a exfiltração e o C2).
- Bloqueie nos pods o IP de metadados da nuvem
169.254.169.254para evitar o roubo de credenciais do nó. - Restrinja o DNS e o tráfego interno de leste a oeste.
Defesa em tempo de execução
A política estática é complementada pela detecção em tempo de execução.
- Falco alerta sobre chamadas de sistema suspeitas (interpretador de comandos no contêiner, montagens sensíveis).
- Os perfis seccomp restringem as chamadas de sistema que um contêiner pode realizar.
- AppArmor/SELinux adicionam controle de acesso obrigatório no nó.
# Apply the runtime/default seccomp profile (securityContext)
# seccompProfile: type: RuntimeDefault
kubectl apply -f seccomp-deploy.yamlTestando o isolamento
Ao validar a contenção, tente conexões entre pods e mecanismos de escape a partir de um pod de teste, confirmando que as políticas os bloqueiam. Faça isso em um namespace controlado e remova os pods de teste depois.
Relate qualquer pod executado com privilégios ou qualquer namespace sem negação padrão, incluindo a correção exata no manifesto.
Verificação rápida
Confirme seus conhecimentos sobre isolamento.
Recapitulação
Você aprendeu a isolar cargas de trabalho.
- O Pod Security Admission (restrito) e o securityContext bloqueiam escapes.
- Gatekeeper/Kyverno impõem políticas de admissão personalizadas.
- A rede é aberta por padrão; aplique negação padrão e depois permissões explícitas.
- Regras de saída, bloqueio de metadados e Falco acrescentam camadas de proteção.
A seguir: proteção da cadeia de suprimentos e dos segredos.
Perguntas Frequentes
A aula “Segurança de pods e políticas de rede” é grátis?
Sim — o texto completo de “Segurança de pods e políticas de rede” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.
O que vou aprender em “Segurança de pods e políticas de rede”?
Isole cargas de trabalho. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cyber Security Academy?
Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Segurança de pods e políticas de rede”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cyber Security Academy?
Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Modelo de ameaças do Kubernetes
- RBAC e contas de serviço
- Segurança de pods e políticas de rede
- Protegendo a cadeia de suprimentos e os segredos