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.
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:
|
O intervalo de endereços IP do nó ou um superconjunto deste intervalo de endereços IP do nó:
|
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 |
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 . |
|
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 . |
|
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 .
|
|
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 .
|
|
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:
|
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:
|
|
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:
|
|
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 |
---|---|---|---|---|
|
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 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. |
|
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:
- Serviços de balanceamento de carga interno que usam a subdivisão do GKE
- Serviços LoadBalancer externos baseados em serviços de back-end
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?
- Leia uma vista geral das redes no GKE.
- Saiba como configurar políticas de rede para aplicações.
- Saiba mais sobre outras regras de firewall pré-preenchidas em Trusted Cloud.
- Saiba mais sobre a criação de regras de firewall em projetos que usam a VPC partilhada.