Regras de firewall criadas automaticamente

Esta página descreve as regras da firewall da VPC de entrada que o Google Kubernetes Engine (GKE) cria automaticamente por predefinição em Trusted Cloud by S3NS.

Firewalls aplicáveis e firewalls de saída

O GKE usa regras de firewall da nuvem virtual privada (VPC) para controlar o tráfego de entrada e saída para os seus pods e nós. Por predefinição, o GKE cria e gere automaticamente determinadas regras de firewall para permitir tráfego essencial, como a comunicação entre nós e pods, e tráfego para o seu plano de controlo do Kubernetes. Embora o GKE crie automaticamente regras de firewall da VPC de permissão de entrada para serviços LoadBalancer por predefinição, pode desativar este comportamento para gerir as regras ou as políticas de firewall manualmente ou usar funcionalidades avançadas de firewall.

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

Prática recomendada:

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

O GKE só cria regras de firewall da VPC de entrada porque o GKE depende da regra de firewall de saída permitida implícita de prioridade mais baixa.

Se configurou regras de firewall de negação de saída na rede VPC do cluster, pode ter de criar regras de autorização de saída para permitir a comunicação entre nós, pods e o plano de controlo do cluster. Por exemplo, se tiver criado uma regra da firewall de negação de saída para todos os protocolos e portas e todos os endereços IP de destino, tem de criar regras da firewall de permissão de saída, além das regras de entrada que o GKE cria automaticamente. A conetividade aos pontos finais do plano de controlo usa sempre a porta de destino TCP 443, mas a conetividade entre os nós e os pods do cluster pode usar qualquer protocolo e porta de destino.

As seguintes ferramentas são úteis para determinar que regras de firewall permitem ou recusam tráfego:

Regras de firewall

Por predefinição, o GKE cria regras de firewall automaticamente quando cria os seguintes recursos:

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

Salvo especificação em contrário, a prioridade de todas as regras de firewall criadas automaticamente é 1000, que é o valor predefinido para regras de firewall. Se quiser ter mais controlo sobre o comportamento da firewall, pode criar regras de firewall com uma prioridade mais elevada. As regras de firewall com uma prioridade mais elevada são aplicadas antes das regras de firewall criadas automaticamente.

Regras de firewall do cluster do GKE

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

Nome Finalidade Origem Alvo (define o destino) Protocolo e portas Prioridade
gke-[cluster-name]-[cluster-hash]-master Para clusters do Autopilot e Standard que dependem do VPC Network Peering para a conetividade do ponto final privado do plano de controlo. Permite que o plano de controlo aceda ao kubelet e ao metrics-server nos nós do cluster. Intervalo de endereços IP do plano de controlo (/28) Etiqueta de nó TCP: 443 (metrics-server) e TCP: 10250 (kubelet) 1000
gke-[cluster-name]-[cluster-hash]-vms

Usado para a comunicação no cluster exigida pelo modelo de rede do Kubernetes. Permite que o software executado nos nós envie pacotes, com origens correspondentes aos endereços IP dos nós, para o endereço IP do pod de destino e os endereços IP dos nós no cluster. Por exemplo, o tráfego permitido por esta regra inclui:

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

CIDR do pod

Para clusters com CIDR de vários pods descontinuados ativado, todos os blocos CIDR de pods usados pelo cluster.

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

O mesmo intervalo de endereços IP atribuído em subnetIpv6CidrBlock.

Etiqueta de nó TCP, UDP, SCTP, ICMP para IPv6, ESP, AH 1000
gke-[cluster-name]-[cluster-hash]-inkubelet Permitir o acesso à porta 10255 (porta só de leitura do Kubelet) a partir de CIDRs de pods internos e CIDRs de nós em novos clusters do GKE com a versão 1.23.6 ou posterior. Os clusters que executam versões posteriores a 1.26.4-gke.500 usam a porta autenticada do Kubelet (10250). Não adicione regras de firewall que bloqueiem o endereço 10250 no cluster.

CIDRs de pods internos e CIDRs de nós.

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

0.0.0.0/0

Etiqueta de nó TCP: 10255 1000

Regras de firewall do serviço do GKE

O GKE cria as seguintes regras de firewall de entrada quando cria um serviço. Pode impedir a criação de algumas destas regras de firewall gerindo a criação de regras de firewall da VPC.

Nome Finalidade Origem Alvo (define o destino) Protocolo e portas
k8s-fw-[loadbalancer-hash] Permite que o tráfego de entrada alcance um serviço. A origem é spec.loadBalancerSourceRanges. A predefinição é 0.0.0.0/0 se spec.loadBalancerSourceRanges for omitido.

Para ver mais detalhes, consulte o artigo Regras de firewall e lista de autorizações de endereços IP de origem.

Endereço IP virtual do LoadBalancer TCP e UDP nas portas especificadas no manifesto do serviço.
k8s-[cluster-id]-node-http-hc Permite verificações de funcionamento de um serviço de balanceador de carga de rede de encaminhamento externo quando externalTrafficPolicy está definido como Cluster.
  • 177.222.80.0/23
  • 177.222.87.0/26
  • 177.222.87.64/26
Endereço IP virtual do LoadBalancer TCP: 10256
k8s-[loadbalancer-hash]-http-hc Permite verificações de funcionamento de um serviço de balanceador de carga de rede de encaminhamento externo quando externalTrafficPolicy está definido como Local.
  • 177.222.80.0/23
  • 177.222.87.0/26
  • 177.222.87.64/26
Etiqueta de nó Porta TCP definida por spec.healthCheckNodePort. Se não for especificado, o plano de controlo do Kubernetes atribui uma porta de verificação de funcionamento a partir do intervalo de portas do nó.

Para mais detalhes, consulte o artigo Porta de verificação de funcionamento.

k8s-[cluster-id]-node-hc Permite verificações de funcionamento de um serviço de balanceador de carga de passagem interno quando externalTrafficPolicy está definido como Cluster.
  • 177.222.80.0/23
  • 177.222.87.0/26
  • 177.222.87.64/26
Etiqueta de nó TCP: 10256
[loadbalancer-hash]-hc Permite verificações de funcionamento de um serviço de balanceador de carga de rede de passagem interno quando externalTrafficPolicy está definido como Local.
  • 177.222.80.0/23
  • 177.222.87.0/26
  • 177.222.87.64/26
Etiqueta de nó Porta TCP definida por spec.healthCheckNodePort. Se não for especificado, o plano de controlo do Kubernetes atribui uma porta de verificação de funcionamento a partir do intervalo de portas do nó.

Para mais detalhes, consulte o artigo Porta de verificação de funcionamento.

k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash] Permite que o tráfego de entrada alcance um serviço quando uma das seguintes opções está ativada:
  • Subdefinição do GKE.
  • Balanceador de carga de rede de encaminhamento externo baseado em serviços de back-end.
  • Pode desativar a criação automática destas regras de firewall da VPC. Para mais informações, consulte o artigo Faça a gestão da criação automática de regras de firewall.
  • A origem é spec.loadBalancerSourceRanges. A predefinição é 0.0.0.0/0 se spec.loadBalancerSourceRanges for omitido.

    Para ver mais detalhes, consulte o artigo Regras de firewall e lista de autorizações de endereços IP de origem.

    Endereço IP virtual do LoadBalancer TCP e UDP nas portas especificadas no manifesto do serviço.
    k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw Permite verificações de funcionamento do serviço quando externalTrafficPolicy está definido como Local e qualquer uma das seguintes opções está ativada:
  • Subdefinição do GKE.
  • Balanceador de carga de rede de encaminhamento externo baseado em serviços de back-end.
    • 177.222.80.0/23
    • 177.222.87.0/26
    • 177.222.87.64/26
    Endereço IP virtual do LoadBalancer Porta TCP definida por spec.healthCheckNodePort. Se não for especificado, o plano de controlo do Kubernetes atribui uma porta de verificação de funcionamento a partir do intervalo de portas do nó.

    Para mais detalhes, consulte o artigo Porta de verificação de funcionamento.

    k8s2-[cluster-id]-l4-shared-hc-fw Permite verificações de funcionamento do serviço quando externalTrafficPolicy está definido como Cluster e qualquer uma das seguintes opções está ativada:
  • Subdefinição do GKE.
  • Balanceador de carga de rede de encaminhamento externo baseado em serviços de back-end.
    • 177.222.80.0/23
    • 177.222.87.0/26
    • 177.222.87.64/26
    Etiqueta de nó TCP: 10256
    gke-[cluster-name]-[cluster-hash]-mcsd Permite que o painel de controlo aceda ao kubelet e ao metrics-server nos nós do cluster para serviços multicluster. Esta regra tem uma prioridade de 900. Endereços IP de verificação de estado Etiqueta de nó TCP, UDP, SCTP, ICMP, ESP, AH

    Regras de firewall do GKE Gateway

    O GKE cria as seguintes regras de firewall de gateway quando cria recursos de gateway e HTTPRoute:

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

    Permite verificações de funcionamento de um grupo de pontos finais da rede (NEG).

    O controlador do gateway cria esta regra quando o primeiro recurso do gateway é criado. O controlador do gateway pode atualizar esta regra se forem criados mais recursos do gateway.

    Etiqueta de nó TCP: todas as portas de destino do contentor (para NEGs)

    Regras de firewall do GKE Ingress

    O GKE cria as seguintes regras de firewall de entrada quando cria um recurso de entrada:

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

    Permite verificações de estado de um NodePortserviço ou grupo de pontos finais da rede (NEG).

    O controlador de entrada cria esta regra quando o primeiro recurso de entrada é criado. O controlador de entrada pode atualizar esta regra se forem criados mais recursos de entrada.

    Para o GKE v1.17.13-gke.2600 ou posterior:
    • 177.222.80.0/23
    • Intervalos de sub-redes apenas de proxy definidos pelo utilizador (para balanceadores de carga de aplicações internos)
    Etiqueta de nó TCP: 30000-32767, TCP:80 (para balanceadores de carga de aplicações internos), TCP: todas as portas de destino do contentor (para NEGs)

    Faça a gestão da criação de regras de firewall da VPC

    Por predefinição, o GKE cria automaticamente regras de firewall de VPC de autorização de entrada para todos os serviços LoadBalancer. Se quiser gerir as regras de firewall para serviços LoadBalancer, tem de desativar 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 LoadBalancer aplica-se apenas ao seguinte:

    Para obter informações sobre como desativar regras da firewall, consulte o artigo Regras da firewall geridas pelo utilizador para serviços LoadBalancer do GKE.

    VPC partilhada

    Se estiver a usar serviços de entrada ou LoadBalancer e tiver um cluster localizado numa VPC partilhada através de uma rede de VPC partilhada, a conta de serviço do GKE no projeto de serviço não pode criar nem atualizar regras de firewall de permissão de entrada no projeto anfitrião. Pode conceder à conta de serviço do GKE num projeto de serviço autorizações para criar e gerir os recursos da firewall. Para mais informações, consulte o artigo VPC partilhada.

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

    Se expandir o intervalo IPv4 principal da sub-rede do cluster, o GKE não atualiza automaticamente o intervalo de origem da regra de firewall gke-[cluster-name]-[cluster-hash]-vms. Uma vez que os nós no cluster podem receber endereços IPv4 da parte expandida do intervalo IPv4 principal da sub-rede, tem de criar manualmente uma regra de firewall para permitir a comunicação entre os nós do cluster.

    A regra de firewall de entrada que tem de criar tem de permitir pacotes TCP e ICMP do intervalo de origem IPv4 da sub-rede principal expandida e tem de 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 para a mesma etiqueta de destino usada pela regra de firewall gke-[cluster-name]-[cluster-hash]-vms criada automaticamente do cluster.

    O que se segue?