Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Segurança de rede

Última atualização: Sep 09, 2026

Restrinja o tráfego de pods com network policies e criptografe dados em trânsito para proteger clusters ACK.

Network policies versus security groups

Network policies e security groups atuam em níveis diferentes. Use ambos em conjunto para garantir defesa em profundidade.

Mecanismo

Escopo

Mais indicado para

Network policies

Tráfego pod a pod (tráfego leste-oeste) e comunicação entre pods e serviços externos

Restringir a comunicação entre microsserviços, namespaces ou pods específicos

Security groups

Tráfego no nível de nó e de Virtual Private Cloud (VPC) entre nós, outros recursos da VPC e endereços IP externos

Controlar o acesso de entrada e saída do cluster na camada de infraestrutura

Use security groups para restringir o acesso no nível de infraestrutura e network policies para aplicar isolamento granular no nível de pod dentro do cluster.

Restrinja o tráfego pod a pod com network policies

Por padrão, todos os pods em um cluster Kubernetes podem se comunicar livremente, o que gera riscos de segurança. Network policies restringem o tráfego entre pods (tráfego leste-oeste) e entre pods e serviços externos.

Essas políticas usam seletores de pod e rótulos para identificar os pods de origem e destino. Cada política pode filtrar por endereço IP, porta, protocolo ou qualquer combinação desses elementos.

Com o plug-in de rede Terway, use use network policies para controlar o tráfego no nível de endereço IP ou porta. Consulte também Kubernetes Network Policy Recipes.

Importante

Apenas clusters Terway suportam network policies do Kubernetes. Em clusters com mais de 100 nós, o proxy de política pode aumentar a carga no plano de controle. Consulte Improve the performance of the NetworkPolicy feature for a large ACK cluster in Terway mode.

Abordagem recomendada: negar por padrão e permitir depois

Aplique o princípio de privilégio mínimo: negue todo o tráfego por padrão e adicione regras para permitir apenas o que cada carga de trabalho necessita.

  1. Crie uma política de negação padrão -- Bloqueie todo o tráfego de entrada e saída no namespace.

  2. Permita consultas DNS -- Os pods precisam de resolução DNS para funcionar.

  3. Libere tráfegos específicos -- Abra apenas os caminhos exigidos por cada carga de trabalho.

Etapa 1: Crie uma política de negação padrão

Crie uma network policy para negar todo o tráfego de entrada e saída em um namespace ou use o Calico para uma política global.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress

Etapa 2: Permitir consultas DNS

Com uma política de negação padrão, os pods não conseguem resolver nomes DNS. Crie uma política para permitir consultas DNS ao CoreDNS.

  1. Adicione um rótulo ao namespace kube-system:

       kubectl label namespace kube-system name=kube-system
  2. Crie uma network policy para permitir o tráfego de saída (egress) para o CoreDNS na porta UDP 53:

       apiVersion: networking.k8s.io/v1
       kind: NetworkPolicy
       metadata:
         name: allow-dns-access
         namespace: default
       spec:
         podSelector:
           matchLabels: {}
         policyTypes:
         - Egress
         egress:
         - to:
           - namespaceSelector:
               matchLabels:
                 name: kube-system
           ports:
           - protocol: UDP
             port: 53
Importante

Consulte Network Policies.

Etapa 3: Permitir tráfego de pods específicos

Com as políticas de negação e DNS configuradas, permita o tráfego apenas de pods autorizados. Casos de uso comuns incluem:

  • Permitir que apenas microsserviços específicos acessem uma aplicação.

  • Restringir o acesso a um banco de dados a determinadas aplicações.

Este exemplo cria um pod e restringe o tráfego de entrada (ingress) aos pods com o rótulo app: bookstore.

  1. Crie um pod com os rótulos app=bookstore e role=api:

       kubectl run apiserver --image=nginx --labels="app=bookstore,role=api" --expose --port=80
  2. Aplique uma network policy que permita o tráfego de entrada apenas de pods com o rótulo app: bookstore:

       kind: NetworkPolicy
       apiVersion: networking.k8s.io/v1
       metadata:
         name: api-allow
       spec:
         podSelector:
           matchLabels:
             app: bookstore
             role: api
         ingress:
         - from:
             - podSelector:
                 matchLabels:
                   app: bookstore
  3. Verifique se os pods sem o rótulo app=bookstore têm o acesso negado:

       kubectl run test-$RANDOM --rm -i -t --image=alpine -- sh
       / # wget -qO- --timeout=2 http://apiserver
       wget: download timed out
  4. Confirme que os pods com o rótulo app=bookstore conseguem acessar o servidor:

       kubectl run test-$RANDOM --rm -i -t --image=alpine --labels="app=bookstore,role=frontend" -- sh
       / # wget -qO- --timeout=2 http://apiserver
       <!DOCTYPE html>
       <html><head>

Adicionar regras personalizadas entre pods em um namespace

Após permitir a comunicação entre pods dentro de um namespace, use o Kubernetes Network Policy Recipes para adicionar regras personalizadas e obter um controle mais granular.

Controle o tráfego no nível de nó com security groups

O ACK usa security groups para gerenciar o tráfego entre nós master e worker, bem como entre nós worker, outros recursos da VPC e endereços IP externos.

O ACK cria automaticamente um security group para a comunicação dos nós quando você cria um cluster. Para aplicar o princípio de privilégio mínimo, adicione recommended inbound and outbound rules.

Consulte Configure security groups in different scenarios e Configure a security group.

Monitore e analise o tráfego com flow logs

Os flow logs da VPC registram o tráfego de entrada e saída das elastic network interfaces (ENIs). Use os flow logs para:

  • Validar regras de lista de controle de acesso (ACL)

  • Monitorar o tráfego de rede

  • Solucionar problemas de rede

  • Identificar tráfego anormal entre recursos (incluindo pods) em uma VPC

Consulte Overview of flow logs.

Criptografe dados em trânsito

  • Service Mesh (ASM)

    O Service Mesh (ASM) criptografa dados entre serviços. O ASM suporta:

    • Autenticação Mutual Transport Layer Security (mTLS) entre serviços

    • Envoy Secret Discovery Service (SDS) para HTTPS e carregamento dinâmico de certificados nos gateways de serviço

    • Gerenciamento de tráfego para aplicações em instâncias do ASM, integrado ao Application High Availability Service (AHAS)

    • Rastreamento distribuído integrado ao Tracing Analysis para mapeamento de rastros, contagem de chamadas, topologia e análise de dependências

  • TLS for Ingress

    Ative HTTPS para serviços expostos via Ingress. Use a Secret to configure TLS.