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

Os clusters particulares executam nós que têm apenas endereços IP internos e, de forma semelhante às redes autorizadas, não permitem acesso a endereços IP não confiáveis de fora do Google Cloud para acessar o endpoint do plano de controle.

O uso de redes autorizadas em clusters particulares torna o plano de controle acessível somente das seguintes maneiras:

  • Endereços dentro do Google Cloud, como máquinas virtuais (VMs) do Compute Engine, Cloud Functions e Cloud Run
  • Blocos CIDR permitidos
  • Nós e pods na VPC do cluster
  • Jobs de produção internos do Google que gerenciam o plano de controle.

Redes autorizadas e usuários de clusters particulares não podem depender do acesso ao plano de controle de serviços em nuvem, como o Cloud Run e o Cloud Functions, porque esse acesso será removido no futuro.

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.

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, veja se você realizou as seguintes tarefas:

  • Veja se você ativou a API do Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Confirme se você instalou a Google Cloud CLI.
  • Defina as configurações padrão da Google Cloud CLI para o projeto usando um dos seguintes métodos:
    • Use gcloud init se quiser orientações para definir os padrões do projeto.
    • Use gcloud config para definir individualmente a região, a zona e o ID do projeto.

    gcloud init

    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 CLI gcloud a usar a 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.
    6. Escolha uma região padrão do Compute Engine.
    .

    gcloud config

    1. Defina o ID do projeto padrão:
      gcloud config set project PROJECT_ID
    2. Defina a região padrão do Compute Engine (por exemplo, us-central1):
      gcloud config set compute/region COMPUTE_REGION
    3. Defina a zona padrão do Compute Engine (por exemplo, us-central1-c):
      gcloud config set compute/zone COMPUTE_ZONE
    4. Atualize gcloud para a versão mais recente:
      gcloud components update
    .

    Ao definir locais padrão, é possível evitar erros na gcloud CLI, como: One of [--zone, --region] must be supplied: Please specify location.

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 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 do Google Kubernetes Engine no Console do Cloud:

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster conforme necessário.

  4. No menu 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 necessário.

  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.

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 atual

É possível adicionar uma rede autorizada a um cluster atual usando a gcloud CLI ou 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,...: 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 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 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 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 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, 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 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.

Remover redes autorizadas

É possível remover todas as redes autorizadas personalizadas para um cluster atual usando a gcloud CLI ou o Console do Cloud.

gcloud

Execute este comando:

gcloud container clusters update CLUSTER_NAME \
    --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. Para remover CIDRs, clique em 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