Regras de firewall criadas automaticamente

Nesta página, descrevemos as regras de firewall da VPC de permissão de entrada que o Google Kubernetes Engine (GKE) cria automaticamente por padrão em Google Cloud.

Firewalls e firewalls de saída aplicáveis

O GKE usa regras de firewall da nuvem privada virtual (VPC) para controlar o tráfego de entrada e saída dos seus pods e nós. Por padrão, o GKE cria e gerencia automaticamente algumas regras de firewall para permitir o tráfego essencial, como a comunicação entre nós e pods, e o tráfego para o plano de controle do Kubernetes. Embora o GKE crie automaticamente regras de firewall da VPC de permissão de entrada para serviços do LoadBalancer por padrão, é possível desativar esse comportamento para gerenciar regras ou políticas de firewall manualmente ou usar recursos avançados de firewall.

As regras de firewall de entrada criadas pelo GKE não são as únicas aplicáveis aos nós em um cluster. O conjunto completo de regras de firewall aplicáveis para entrada e saída é definido com base em regras de políticas hierárquicas de firewall, políticas de firewall de rede global, políticas de firewall de rede regional e outras regras de firewall da VPC.

Prática recomendada:

Planeje e crie a configuração para seu cluster, cargas de trabalho e serviços com os administradores de rede e engenheiros de segurança da sua organização. Entenda a política e a ordem de avaliação de regras do firewall para saber quais regras têm precedência.

O GKE cria apenas regras de firewall da VPC de entrada porque depende da regra de firewall de saída permitida implícita de menor prioridade.

Se você configurou regras de firewall de negação de saída na rede VPC do cluster, talvez seja necessário criar regras de permissão de saída para permitir a comunicação entre nós, pods e o plano de controle do cluster. Por exemplo, se você criou uma regra de firewall de negação de saída para todos os protocolos e portas e todos os endereços IP de destino, crie regras de firewall de permissão de saída além das regras de entrada que o GKE cria automaticamente. A conectividade com os endpoints do plano de controle sempre usa a porta de destino TCP 443, mas a conectividade entre os nós e os pods do cluster pode usar qualquer protocolo e porta de destino.

As ferramentas a seguir são úteis para determinar quais regras de firewall permitem ou negam o tráfego:

Regras de firewall

Por padrão, o GKE cria regras de firewall automaticamente ao criar os seguintes recursos:

  • Clusters do GKE
  • Serviços do GKE
  • Gateways do GKE e HTTPRoutes
  • Entradas do GKE

A menos que especificado de outra forma, a prioridade de todas as regras de firewall criadas automaticamente é 1.000, que é o valor padrão das regras de firewall. Para ter mais controle sobre o comportamento do firewall, crie regras de firewall com prioridade mais alta. As regras de firewall com prioridade mais alta são aplicadas antes da criação automática.

Regras de firewall do cluster do GKE

O GKE cria as seguintes regras de firewall de entrada ao criar um cluster:

Nome Finalidade Origem Meta (define o destino) Protocolo e portas Prioridade
gke-[cluster-name]-[cluster-hash]-master Para clusters do Autopilot e do Standard que dependem do peering de rede VPC para a conectividade do endpoint particular do plano de controle. Permite que o plano de controle acesse o kubelet e o metrics-server nos nós do cluster. Intervalo de endereços IP do plano de controle (/28) Tag de nó TCP: 443 (metrics-server) e TCP: 10250 (kubelet) 1000
gke-[cluster-name]-[cluster-hash]-vms

Usado na comunicação intracluster necessária para o modelo de rede do Kubernetes. Permite que o software em execução nos nós envie pacotes, com origens correspondentes a endereços IP de nós para endereços IP de pods e nós no cluster. Por exemplo, o tráfego permitido por essa regra inclui:

  • Pacotes enviados de daemons do sistema, como kubelet, para destinos de endereços IP de pod e nó do cluster.
  • Pacotes enviados do software em execução em pods com hostNetwork:true para destinos de endereço IP do nó e do pod do cluster.
O intervalo de endereços IP do nó ou um superconjunto desse intervalo:
  • Para redes VPC de modo automático, o GKE usa o CIDR 10.128.0.0/9 porque esse intervalo inclui todos os intervalos de endereços IPv4 principais da sub-rede atual e futura para sub-redes criadas automaticamente.
  • Para redes VPC de modo personalizado, o GKE usa o intervalo de endereços IPv4 principal da sub-rede do cluster.
O GKE não atualizará o intervalo IPv4 de origem desta regra de firewall se você expandir o intervalo IPv4 principal da sub-rede do cluster. Você precisará criar a regra de firewall de entrada necessária manualmente se expandir o intervalo IPv4 principal da sub-rede do cluster.
Tag de nó TCP: 1-65535, UDP: 1-65535, ICMP 1000
gke-[cluster-name]-[cluster-hash]-all Permite tráfego entre todos os pods em um cluster, conforme exigido pelo modelo de rede do Kubernetes.

CIDR do pod

Para clusters com o CIDR de vários pods descontínuos ativado, todos os blocos de CIDR de pod usados pelo cluster.

Tag de nó TCP, UDP, SCTP, ICMP, ESP, AH 1000
gke-[cluster-hash]-ipv6-all Apenas para clusters de rede de pilha dupla. Permite tráfego entre nós e pods em um cluster.

Mesmo intervalo de endereços IP alocado em subnetIpv6CidrBlock.

Tag de nó TCP, UDP, SCTP, ICMP para IPv6, ESP, AH 1000
gke-[cluster-name]-[cluster-hash]-inkubelet Permita o acesso à porta 10255 (porta somente leitura Kubelet) de CIDRs de pod internos e CIDRs de nós em novos clusters do GKE executando a versão 1.23.6 ou mais recente. Os clusters que executam versões posteriores à 1.26.4-gke.500 usam a porta autenticada do Kubelet (10250). Não adicione regras de firewall bloqueando 10250 no cluster.

CIDRs de pods internos e de nós.

Tag de nó TCP: 10255 999
gke-[cluster-name]-[cluster-hash]-exkubelet Negue o acesso público à porta 10255 nos novos clusters do GKE executando a versão 1.23.6 ou posterior.

0.0.0.0/0

Tag de nó TCP: 10255 1000

Regras de firewall do serviço do GKE

O GKE cria as seguintes regras de firewall de entrada ao criar um Service. É possível impedir a criação de algumas dessas regras de firewall gerenciando a criação de regras de firewall da VPC.

Nome Finalidade Origem Meta (define o destino) Protocolo e portas
k8s-fw-[loadbalancer-hash] Permite que o tráfego de entrada chegue a um serviço. Fonte: spec.loadBalancerSourceRanges. Se spec.loadBalancerSourceRanges for omitido, o padrão será 0.0.0.0/0.

Veja mais detalhes em Regras de firewall e lista de permissões de endereços IP de origem.

Endereço IP virtual do balanceador de carga TCP e UDP nas portas especificadas no manifesto do Serviço.
k8s-[cluster-id]-node-http-hc Permite verificações de integridade de um serviço de balanceador de carga de rede de passagem externo quando externalTrafficPolicy está definido como Cluster.
  • 35.191.0.0/16
  • 130.211.0.0/22
  • 209.85.152.0/22
  • 209.85.204.0/22
Endereço IP virtual do balanceador de carga TCP: 10256
k8s-[loadbalancer-hash]-http-hc Permite verificações de integridade de um serviço de balanceador de carga de rede de passagem externo quando externalTrafficPolicy está definido como Local.
  • 35.191.0.0/16
  • 130.211.0.0/22
  • 209.85.152.0/22
  • 209.85.204.0/22
Tag de nó Porta TCP definida por spec.healthCheckNodePort. Se não for especificado, o plano de controle do Kubernetes atribuirá uma porta de verificação de integridade a partir do intervalo de portas do nó.

Confira mais detalhes em Porta de verificação de integridade.

k8s-[cluster-id]-node-hc Permite verificações de integridade de um serviço de balanceador de carga de rede de passagem interno quando externalTrafficPolicy está definido como Cluster.
  • 35.191.0.0/16
  • 130.211.0.0/22
  • 209.85.152.0/22
  • 209.85.204.0/22
Tag de nó TCP: 10256
[loadbalancer-hash]-hc Permite verificações de integridade de um serviço de balanceador de carga de rede de passagem interno quando externalTrafficPolicy está definido como Local.
  • 35.191.0.0/16
  • 130.211.0.0/22
  • 209.85.152.0/22
  • 209.85.204.0/22
Tag de nó Porta TCP definida por spec.healthCheckNodePort. Se não for especificado, o plano de controle do Kubernetes atribuirá uma porta de verificação de integridade a partir do intervalo de portas do nó.

Confira mais detalhes em Porta de verificação de integridade.

k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash] Permite que o tráfego de entrada alcance um serviço quando uma das seguintes opções for ativada:
  • Subconfiguração do GKE.
  • Balanceador de carga de rede de passagem externo baseado em serviço de back-end.
  • É possível desativar a criação automática dessas regras de firewall da VPC. Para mais informações, consulte Gerenciar a criação automática de regras de firewall.
  • Fonte: spec.loadBalancerSourceRanges. Se spec.loadBalancerSourceRanges for omitido, o padrão será 0.0.0.0/0.

    Veja mais detalhes em Regras de firewall e lista de permissões de endereços IP de origem.

    Endereço IP virtual do balanceador de carga TCP e UDP nas portas especificadas no manifesto do serviço.
    k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw Permite verificações de integridade do serviço quando externalTrafficPolicy está definido como Local e qualquer um dos seguintes itens está ativado:
  • Subconfiguração do GKE.
  • Balanceador de carga de rede de passagem externo baseado em serviço de back-end.
    • 35.191.0.0/16
    • 130.211.0.0/22
    • 209.85.152.0/22
    • 209.85.204.0/22
    Endereço IP virtual do balanceador de carga Porta TCP definida por spec.healthCheckNodePort. Se não for especificado, o plano de controle do Kubernetes atribuirá uma porta de verificação de integridade a partir do intervalo de portas do nó.

    Confira mais detalhes em Porta de verificação de integridade.

    k8s2-[cluster-id]-l4-shared-hc-fw Permite verificações de integridade do serviço quando externalTrafficPolicy está definido como Cluster e qualquer um dos seguintes itens está ativado:
  • Subconfiguração do GKE.
  • Balanceador de carga de rede de passagem externo baseado em serviço de back-end.
    • 35.191.0.0/16
    • 130.211.0.0/22
    • 209.85.152.0/22
    • 209.85.204.0/22
    Tag de nó TCP: 10256
    gke-[cluster-name]-[cluster-hash]-mcsd Permite que o plano de controle acesse o kubelet e o servidor de métricas nos nós do cluster para os serviços de vários clusters. Essa regra tem uma prioridade de 900. Endereços IP de verificação de integridade Tag de nó TCP, UDP, SCTP, ICMP, ESP, AH

    Regras de firewall do gateway do GKE

    O GKE cria as seguintes regras de firewall de gateway ao criar recursos Gateway e HTTPRoute:

    Nome Finalidade Origem Meta (define o destino) Protocolo e portas
    • gkegw1-l7-[network]-[region/global]
    • gkemcg1-l7-[network]-[region/global]

    Permite as verificações de integridade de um grupo de endpoints de rede (NEG).

    O controlador de gateway cria essa regra quando o primeiro recurso de gateway é criado. O controlador de gateway poderá atualizar essa regra se forem criados mais recursos de gateway.

    Tag de nó TCP: todas as portas de destino do contêiner (para NEGs)

    Regras de firewall de entrada do GKE

    O GKE cria as seguintes regras de firewall de entrada ao criar uma Entrada:

    Nome Finalidade Origem Meta (define o destino) Protocolo e portas
    k8s-fw-l7-[random-hash]

    Permite verificações de integridade de um serviço NodePort ou grupo de endpoints da rede (NEG).

    O controlador de Entrada cria essa regra durante a criação do primeiro recurso de Entrada. O controlador do Ingress poderá atualizar essa regra se mais recursos do Ingress forem criados.

    Para o GKE v1.17.13-gke.2600 ou posterior:
    • 35.191.0.0/16
    • 130.211.0.0/22
    • Intervalos de sub-rede somente proxy definidos pelo usuário (para balanceadores de carga de aplicativo internos)
    Tag de nó TCP: 30000-32767, TCP:80 (para balanceadores de carga de aplicativo internos), TCP: todas as portas de destino do contêiner (para NEGs)

    Gerenciar a criação de regras de firewall da VPC

    Por padrão, o GKE cria automaticamente regras de firewall da VPC de permissão de entrada para todos os serviços de LoadBalancer. Se você quiser gerenciar as regras de firewall para serviços de LoadBalancer por conta própria, desative a criação automática de regras de firewall da VPC.

    A desativação da criação automática de regras de firewall da VPC para serviços do LoadBalancer se aplica apenas ao seguinte:

    Para saber como desativar regras de firewall, consulte Regras de firewall gerenciadas pelo usuário para serviços LoadBalancer do GKE.

    VPC compartilhada

    Se você estiver usando serviços de Ingress ou LoadBalancer e tiver um cluster localizado em uma VPC compartilhada usando uma rede VPC compartilhada, a conta de serviço do GKE no projeto de serviço não poderá criar nem atualizar regras de firewall de permissão de entrada no projeto host. É possível conceder à conta de serviço do GKE permissões em um projeto de serviço para criar e gerenciar os recursos do firewall. Para mais informações, consulte VPC compartilhada.

    Regra de firewall necessária para a sub-rede expandida

    Se você expandir o intervalo IPv4 principal da sub-rede do cluster, o GKE não atualizará automaticamente o intervalo de origem da regra de firewall gke-[cluster-name]-[cluster-hash]-vms. Como os nós no cluster podem receber endereços IPv4 da parte expandida do intervalo IPv4 principal da sub-rede, é necessário criar manualmente uma regra de firewall para permitir a comunicação entre os nós do cluster.

    A regra de firewall de entrada que você precisa criar precisa permitir pacotes TCP e ICMP do intervalo de origem IPv4 da sub-rede primária expandida e precisa se aplicar pelo menos a todos os nós no cluster.

    Para criar uma regra de firewall de entrada que se aplique apenas aos nós do cluster, defina o destino da regra de firewall como a mesma tag de destino usada pela regra de firewall gke-[cluster-name]-[cluster-hash]-vms criada automaticamente por seu cluster.

    A seguir