Como adicionar redes autorizadas para acesso ao plano de controle

Nesta página, explicamos como conceder acesso de rede autorizado aos planos de controle de cluster (mestres) nos clusters do Google Kubernetes Engine (GKE). Para ver informações gerais sobre a rede do GKE, acesse a Visão geral da rede.

Visão geral

As redes autorizadas permitem especificar intervalos CIDR e possibilitar que endereços IP desses intervalos acessem o endpoint do plano de controle do cluster usando HTTPS. As redes autorizadas são compatíveis com todos os clusters.

O GKE usa o Transport Layer Security (TLS) e a autenticação para fornecer acesso seguro ao endpoint do plano de controle do cluster a partir da Internet pública. Isso proporciona a flexibilidade de administrar seu cluster de qualquer lugar. Ao usar redes autorizadas, é possível restringir ainda mais o acesso a conjuntos específicos de endereços IP.

Vantagens

A adição de redes autorizadas pode fornecer benefícios adicionais de segurança para seu cluster. Redes autorizadas concedem acesso a um conjunto específico de endereços que você designa, como aqueles originados de seu ambiente. Isso protege o acesso ao cluster no caso de uma vulnerabilidade nos mecanismos de autenticação ou autorização do cluster.

Benefícios dos clusters particulares

Os clusters particulares executam nós sem endereços IP externos e, opcionalmente, executam os planos de controle de cluster sem um endpoint acessível ao público. Além disso, os clusters particulares não permitem que os endereços IP do Google Cloud acessem o endpoint do plano de controle por padrão. O uso de clusters particulares com redes autorizadas torna o plano de controle acessível apenas pelos CIDRs permitidos, pelos nós da VPC do cluster e pelos jobs de produção internos do Google que gerenciam o plano de controle.

Limitações

  • Os clusters públicos podem ter até 50 intervalos de CIDR de rede autorizados. Os clusters particulares podem ter até 100.
  • Se você expandir uma sub-rede que é usada por um cluster com redes autorizadas, precisará atualizar a rede autorizada para incluir o intervalo de endereços IP expandido.

Antes de começar

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

Defina as configurações padrão da gcloud usando um dos métodos a seguir:

  • Use gcloud init se quiser orientações para definir os padrões.
  • Use gcloud config para definir individualmente a região, a zona e o ID do projeto.

Como usar o gcloud init

Se você receber o erro One of [--zone, --region] must be supplied: Please specify location, conclua esta seção.

  1. Execute gcloud init e siga as instruções:

    gcloud init

    Se você estiver usando SSH em um servidor remoto, utilize a sinalização --console-only para impedir que o comando inicie um navegador:

    gcloud init --console-only
  2. Siga as instruções para autorizar a gcloud a usar sua conta do Google Cloud.
  3. Crie uma nova configuração ou selecione uma atual.
  4. Escolha um projeto do Google Cloud.
  5. Escolha uma zona padrão do Compute Engine para clusters zonais ou uma região para clusters regionais ou de Autopilot.

Como usar o gcloud config

  • Defina o ID do projeto padrão:
    gcloud config set project PROJECT_ID
  • Se você estiver trabalhando com clusters zonais, defina a zona do Compute padrão:
    gcloud config set compute/zone COMPUTE_ZONE
  • Se você estiver trabalhando com clusters de Autopilot ou regionais, defina a região do Compute padrão:
    gcloud config set compute/region COMPUTE_REGION
  • Atualize gcloud para a versão mais recente:
    gcloud components update

Como criar um cluster com redes autorizadas

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

gcloud

Execute este comando:

gcloud container clusters create cluster-name \
    --enable-master-authorized-networks \
    --master-authorized-networks cidr1,cidr2...

Substitua:

  • cluster-name: é o nome do cluster atual.
  • cidr1, cidr2: os valores CIDR para as redes autorizadas.

Com a sinalização --master-authorized-networks, é possível especificar CIDRs delimitados por vírgula (como 8.8.8.0/24) que você quer conceder acesso ao endpoint do plano de controle do cluster por meio de HTTPS.

Exemplo:

gcloud container clusters create example-cluster \
    --enable-master-authorized-networks \
    --master-authorized-networks 8.8.8.8/32,8.8.8.0/24

Console

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

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster como quiser.

  4. No painel de navegação, em Cluster, clique em Rede.

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

  6. Clique em Adicionar rede autorizada.

  7. Digite um Nome para a rede.

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

  9. Clique em Concluído. Adicione outras redes autorizadas conforme quiser.

  10. 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.

Como criar um cluster particular com redes autorizadas

Para aprender a criar um cluster particular com uma ou mais redes autorizadas, consulte Clusters particulares.

Adicionar uma rede autorizada a um cluster existente

É possível adicionar uma rede autorizada a um cluster existente usando a ferramenta de linha de comando gcloud ou usando o Console do 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: os valores CIDR para as redes autorizadas.

Com a sinalização --master-authorized-networks, é possível especificar CIDRs delimitados por vírgula (como 8.8.8.0/24) que você quer conceder acesso ao endpoint do plano de controle do cluster por meio de HTTPS.

Exemplo:

gcloud container clusters update example-cluster \
    --enable-master-authorized-networks \
    --master-authorized-networks 8.8.8.8/32,8.8.8.0/24

Console

  1. Acesse a página do Google Kubernetes Engine no Console do 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 quiser.

  9. Clique em Salvar alterações.

API

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

"desiredMasterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  }

Como verificar uma rede autorizada

É possível verificar uma rede autorizada a um cluster existente usando a ferramenta de linha de comando gcloud ou usando o Console do Cloud.

gcloud

Execute este comando:

gcloud container clusters describe cluster-name

Na saída do comando, observe o campo masterAuthorizedNetworksConfig:

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

Console

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

    Acessar o Google Kubernetes Engine

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

  3. Em Rede, observe que o campo Redes autorizadas pelo 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 existente usando a ferramenta de linha de comando gcloud ou o Console do Cloud.

gcloud

Execute este comando:

gcloud container clusters update cluster-name \
    --no-enable-master-authorized-networks

Console

  1. Acesse a página do Google Kubernetes Engine no Console do 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.

Como remover redes autorizadas

É possível remover todas as redes autorizadas personalizadas de um cluster atual usando a ferramenta de linha de comando gcloud ou o Console do Cloud.

gloud

Execute este comando:

gcloud container clusters update cluster-name \
    --enable-master-authorized-networks

Console

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acesse o menu do 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. Remova os CIDRs que você quer remover clicando no ícone Excluir.

  5. Clique em Save Changes.

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