Adicionar redes autorizadas para acesso ao plano de controle


Nesta página, mostramos como usar redes autorizadas para restringir as origens de onde é possível acessar os planos de controle dos clusters do Google Kubernetes Engine (GKE). As redes autorizadas concedem ao plano de controle acesso a um conjunto específico de endereços IP confiáveis, além de fornecer proteção e outros benefícios de segurança para seu cluster do GKE.

Como funcionam as redes autorizadas

As redes autorizadas fornecem um firewall baseado em IP que controla o acesso ao plano de controle do GKE. O acesso ao plano de controle depende do tipo de cluster do GKE e dos endereços IP de origem. Com as redes autorizadas, você configura os endereços IP que quer permitir o acesso ao endpoint do plano de controle do cluster do GKE como uma lista de bloqueios CIDR.

Os termos a seguir são usados para diferenciar quais regras de firewall baseadas em IP estão em vigor, dependendo do tipo de cluster:

Diferenciações de endereços IP:

  • Endereços IP públicos de todas as VMs do Compute Engine no Google Cloud: endereços IP públicos atribuídos a todas as VMs usadas por todos os clientes hospedados no Google Cloud. O Google Cloud é o proprietário desses endereços IP. Para saber mais, consulte Onde posso encontrar os intervalos de IP do Compute Engine?.
  • Endereços IP da plataforma do Google Cloud: usados pelos produtos do Google Cloud, como Cloud Run ou Cloud Functions. Qualquer cliente hospedado no Google Cloud pode instanciar esses endereços IP. O Google Cloud é o proprietário desses endereços IP.
  • Endereços IP reservados pelo Google: endereços IP públicos para gerenciamento de cluster do GKE. Esses endereços IP incluem processos gerenciados pelo GKE e outros serviços de produção do Google. O Google é o proprietário desses endereços IP.
  • Endereços IP públicos da Internet: endereços IP públicos não RFC 1918 e que não são do Google. Os produtos do Google e do Google Cloud não são proprietários desses endereços IP públicos.
  • Intervalos de endereços IP do cluster do GKE: endereços IP atribuídos ao cluster que o GKE usa para os nós, pods e serviços do cluster.
  • Endereços IP usados de maneira particular: endereços IP da rede VPC do cluster. Esses endereços IP podem incluir o endereço IP do cluster, as redes locais, os intervalos RFC 1918 ou os endereços IP públicos usados de modo privado (PUPI, na sigla em inglês) que incluem intervalos não RFC 1918.

Tipos de cluster:

  • Clusters públicos legados: clusters públicos em execução em redes legadas ou redes VPC com endereços IP públicos atribuídos a nós e que não foram migrados para a arquitetura do Private Service Connect.
  • Cluster particular legado: clusters baseados em peering de rede VPC para conectividade de plano de controle de nós apenas com endereços IP particulares.
  • Cluster baseado em PSC criado como público ou privado: clusters que usam a arquitetura Private Service Connect para a comunicação entre o plano de controle e os nós do cluster do GKE. Para determinar se o cluster usa o Private Service Connect, consulte o plano de controle do GKE.

Acesso aos endpoints do plano de controle

Na tabela a seguir, mostramos o status padrão da rede autorizada na criação do cluster. Com base no tipo de cluster do GKE e endpoint do plano de controle, é possível determinar o seguinte:

  • Os endereços IP predefinidos que sempre podem acessar o plano de controle do GKE.
  • Os endereços IP que podem ser configurados para acessar o plano de controle do cluster com as redes autorizadas ativadas.

Os endereços IP configuráveis podem acessar o plano de controle do cluster quando você os coloca na lista de permissões e ativa as redes autorizadas.

Tipo de cluster do GKE e endpoint do plano de controle Status da rede autorizada padrão do plano de controle Endereços IP predefinidos que sempre podem acessar o plano de controle do GKE1 Endereço IP configurável que pode acessar o plano de controle do GKE com as redes autorizadas ativadas2
Clusters públicos legados ou clusters particulares com base em peering de rede VPC
Clusters públicos legados com um endpoint público Desativado
  • Endereços IP públicos de todas as VMs do Compute Engine no Google Cloud
  • Endereços IP do Google Cloud Platform
  • Endereços IP reservados pelo Google
  • Intervalos de endereços IP do cluster do GKE
  • Endereços IP públicos da Internet na lista de permissões para acessar o endpoint de IPs públicos do cluster.
Cluster particular legado com endpoints públicos e particulares Ativado
  • Endereços IP reservados pelo Google
  • Os intervalos de endereços IP do cluster do GKE (nós, pods e serviços têm apenas endereços IP particulares).
  • Endereços IP da rede na lista particular de permissões do cluster para acessar o endpoint particular do cluster.
  • Endereços IP públicos da Internet na lista de permissões para acessar o endpoint público do cluster se a flag --enable-private-endpoint estiver desativada.
Clusters que usam o Private Service Connect
Clusters criados como públicos Desativado
  • Todos os endereços IP privados da rede do cluster (exceto rotas de peering de rede VPC aprendidas).

Quando a flag –enable-google-cloud é definida (padrão), os seguintes endereços IP podem acessar o plano de controle do GKE:

  • Endereços IP públicos de todas as VMs do Compute Engine no Google Cloud
  • Endereços IP do Google Cloud Platform
  • Endereços IP reservados pelo Google
  • Endereços IP públicos dos nós do cluster do GKE.

Quando a flag –no-enable-google-cloud estiver definida, os seguintes endereços IP poderão acessar o plano de controle do GKE:

  • Endereços IP reservados pelo Google
  • Os intervalos de endereços IP do cluster do GKE (nós, pods e serviços têm apenas endereços IP particulares).

Para saber mais, consulte como alterar o isolamento de cluster.

  • Endereços IP públicos da Internet na lista de permissões para acessar o endpoint público do cluster
Clusters criados como particulares Ativado

Os intervalos de endereços IP dos clusters do GKE, como nós, pods e serviços, têm apenas endereços IP privados.

Por padrão, quando o cluster é criado, o –enable-google-cloud é desativado. Contudo, quando a flag –enable-google-cloud estiver definida, os seguintes endereços IP poderão acessar o plano de controle do GKE:

  • Endereços IP públicos de todas as VMs do Compute Engine no Google Cloud
  • Endereços IP do Google Cloud Platform
  • Endereços IP reservados pelo Google
  • Endereços IP públicos dos nós do cluster do GKE.

Quando a flag –no-enable-google-cloud estiver definida, os seguintes endereços IP poderão acessar o plano de controle do GKE:

  • Endereços IP reservados pelo Google
  • Os intervalos de endereços IP do cluster do GKE (nós, pods e serviços têm apenas endereços IP particulares).

Para saber mais, consulte como alterar o isolamento de cluster.

  • Endereços IP públicos da Internet na lista de permissões para acessar o endpoint público do cluster se a flag --enable-private-endpoint estiver desativada.
  • Endereços IP da rede na lista particular de permissões do cluster para acessar o endpoint particular do cluster
  1. Os endereços IP que sempre podem acessar o plano de controle do GKE, independentemente de as redes autorizadas estarem ativadas ou desativadas

  2. Autorize esses endereços IP configuráveis para acessar o plano de controle do cluster.

Limitações

  • Se você expandir uma sub-rede que é usada por um cluster com redes autorizadas, precisará atualizar a configuração da rede autorizada para incluir o intervalo de endereços IP expandido.
  • O número de intervalos de endereços IP autorizada que é possível especificar para endereços IP públicos e particulares depende do tipo de cluster:

    • Cluster público: 50 intervalos de endereços IP
    • Cluster particular: 100 intervalos de endereços IP
    • Clusters baseados em PSC: 100 intervalos de endereços IP

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.

Criar um cluster com redes autorizadas

É possível criar um cluster com uma ou mais redes autorizadas usando a Google Cloud CLI, o Console do Google Cloud ou a API GKE.

gcloud

Execute este comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Substitua:

  • CLUSTER_NAME: o nome do cluster.
  • CIDR1,CIDR2,...: uma lista delimitada por vírgulas dos valores de CIDR para as redes autorizadas. Por exemplo, 8.8.8.8/32,8.8.8.0/24.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. No Autopilot ou na seção Padrão, clique em Configurar.

  4. Configure o cluster conforme necessário.

  5. No menu de navegação, clique em Rede.

  6. Em Opções de rede avançadas, marque a caixa de seleção Ativar redes autorizadas do plano de controle.

  7. Clique em Adicionar rede autorizada.

  8. Digite um Nome para a rede.

  9. Em Rede, insira um intervalo CIDR a que você quer conceder acesso ao plano de controle do cluster.

  10. Clique em Concluído. Adicione outras redes autorizadas conforme necessário.

  11. Clique em Criar.

API

Especifique o objeto masterAuthorizedNetworksConfig na solicitação create de seu cluster:

"masterAuthorizedNetworksConfig": {
  "enabled": true,
  "cidrBlocks": [
    {
      "displayName": string,
      "cidrBlock": string
    }
  ]
}

Para saber mais informações, consulte MasterAuthorizedNetworksConfig.

É possível configurar um cluster particular com uma ou mais redes autorizadas. Para mais informações, consulte Clusters particulares.

Criar um cluster com acesso limitado ao plano de controle

O GKE atribui um endereço IP público (endpoint externo) ao plano de controle em clusters públicos. É possível definir mais isolamento de clusters públicos que usam o Private Service Connect para conectar nós e planos de controle de forma particular. Para verificar se o cluster usa o Private Service Connect, consulte Clusters públicos com o Private Service Connect.

É possível criar um cluster e instruir o GKE a bloquear o acesso das seguintes origens ao plano de controle:

É possível criar um cluster e definir o acesso ao plano de controle usando a CLI do Google Cloud ou o console do Google Cloud.

gcloud

Execute este comando:

gcloud container clusters create-auto CLUSTER_NAME
    --no-enable-google-cloud-access

Substitua CLUSTER_NAME pelo nome do cluster do GKE.

Com esse comando, o flag no-enable-google-cloud-access impede que o plano de controle seja acessado a partir de endereços IP de propriedade do Google Cloud.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. No Autopilot ou na seção Padrão, clique em Configurar.

  4. Configure o cluster conforme necessário.

  5. No menu de navegação, clique em Rede.

  6. Em Opções de rede avançadas, marque a caixa de seleção Ativar redes autorizadas do plano de controle.

  7. Desmarque a caixa de seleção Permitir acesso por endereços IP públicos do Google Cloud para impedir que o plano de controle seja acessível por endereços IP de propriedade do Google Cloud.

  8. Clique em Adicionar rede autorizada.

  9. Digite um Nome para a rede.

  10. Em Rede, insira um intervalo CIDR a que você quer conceder acesso ao plano de controle do cluster.

  11. Clique em Concluído. Adicione outras redes autorizadas conforme necessário.

  12. Clique em Criar.

Adicionar uma rede autorizada a um cluster atual

É possível adicionar uma rede autorizada a um cluster atual usando a gcloud CLI ou o Console do Google Cloud.

gcloud

Execute este comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Substitua:

  • CLUSTER_NAME: o nome do cluster atual.
  • CIDR1,CIDR2,...: uma lista delimitada por vírgulas dos valores de CIDR para as redes autorizadas. Por exemplo, 8.8.8.8/32,8.8.8.0/24.

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique no nome do cluster que você quer modificar.

  3. Em Rede, no campo Redes autorizadas do plano de controle, clique em Editar redes autorizadas do plano de controle.

  4. Marque a caixa de seleção Ativar redes autorizadas do plano de controle.

  5. Clique em Adicionar rede autorizada.

  6. Digite um Nome para a rede.

  7. Em Rede, insira um intervalo CIDR a que você quer conceder acesso ao plano de controle do cluster.

  8. Clique em Concluído. Adicione outras redes autorizadas conforme necessário.

  9. Clique em Save Changes.

API

Especifique o campo desiredMasterAuthorizedNetworksConfig na solicitação update de seu cluster. No campo, especifique um objeto MasterAuthorizedNetworksConfig:

"desiredMasterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  }

Verificar uma rede autorizada

É possível verificar uma rede autorizada em um cluster atual usando a gcloud CLI ou o Console do Google Cloud.

gcloud

Execute este comando:

gcloud container clusters describe CLUSTER_NAME

A saída será assim:

...
masterAuthorizedNetworksConfig:
  cidrBlocks:
  - cidrBlock: 8.8.8.8/32
  - cidrBlock: 8.8.4.4/32
  enabled: true
...

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique no nome do cluster que você quer modificar.

  3. Em Rede, o campo Redes autorizadas do plano de controle exibe os CIDRs permitidos.

API

Envie uma solicitação get. Procure os blocos CIDR no campo masterAuthorizedNetworksConfig. Exemplo:

"masterAuthorizedNetworksConfig": {
"enabled": true,
 "cidrBlocks": [
  {
    "displayName": "Office",
    "cidrBlock": "192.0.2.0/24"
  }
]
}

Desativar redes autorizadas

É possível desativar redes autorizadas em um cluster atual usando a gcloud CLI ou o Console do Google Cloud.

gcloud

Execute este comando:

gcloud container clusters update CLUSTER_NAME \
  --no-enable-master-authorized-networks

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique no nome do cluster que você quer modificar.

  3. Em Rede, no campo Redes autorizadas do plano de controle, clique em Editar redes autorizadas do plano de controle.

  4. Desmarque a caixa de seleção Ativar redes autorizadas do plano de controle.

  5. Clique em Save Changes.

Remover redes autorizadas

gcloud

Execute este comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique no nome do cluster que você quer modificar.

  3. Em Rede, no campo Redes autorizadas do plano de controle, clique em Editar redes autorizadas do plano de controle.

  4. Clique em Excluir.

  5. Clique em Salvar alterações.

Solução de problemas

Nas seções a seguir, explicamos como resolver problemas comuns com redes autorizadas.

Muitos blocos CIDR

gcloud retorna o seguinte erro ao tentar criar ou atualizar um cluster com mais de 50 blocos do CIDR:

ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args

Para resolver esse problema, caso seu cluster seja público, certifique-se de especificar no máximo 50 blocos CIDR. Se o cluster for particular, especifique no máximo 100 blocos CIDR.

Não foi possível estabelecer uma conexão com o servidor

Comandos kubectl expiram devido a blocos CIDR configurados incorretamente:

Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out

Ao criar ou atualizar um cluster, assegure-se de especificar os blocos CIDR corretos.

A seguir