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

  • Um cluster pode ter no máximo 50 intervalos de CIDR de rede autorizados.

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.

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

Substitua:

  • cluster-name: é o nome do cluster atual.
  • cidr: o valor CIDR da rede autorizada.

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

Por 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 o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão Criar cluster.

  3. Configure o cluster como quiser.

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

  5. Marque a caixa de seleção Ativar redes mestres autorizadas.

  6. Clique no botão Adicionar rede autorizada.

  7. Em Nome, insira o nome desejado para a rede.

  8. Em Rede, insira um intervalo CIDR para o qual você quer conceder acesso permitido 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 cidr,cidr...

Substitua:

  • cluster-name: é o nome do cluster atual.
  • cidr: o valor CIDR da rede autorizada.

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

Por 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 o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Selecione o cluster pretendido.

  3. Clique em Editar.

  4. No menu suspenso Redes autorizadas do mestre, selecione Ativado, se ainda não estiver ativado.

  5. Clique em Adicionar rede autorizada.

  6. Preencha o Nome desejado da rede.

  7. Preencha o campo Rede com um intervalo CIDR para o qual você quer conceder acesso permitido ao plano de controle.

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

  9. Clique em Salvar na parte inferior da página.

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 o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Selecione o cluster desejado.

O campo Redes autorizadas do mestre exibe os CIDRs permitidos.

API

Enviar 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 o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Selecione o cluster pretendido.

  3. Clique em Editar.

  4. No menu suspenso Redes principais autorizadas, selecione Ativado.

  5. Clique em Salvar.

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, especifique menos de 50 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