Adição de redes autorizadas para garantir o acesso ao mestre do cluster

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

Visão geral

As redes autorizadas permitem a inclusão de intervalos CIDR específicos na lista de permissões e que os endereços IP nesses intervalos acessem o endpoint do mestre do cluster (em inglês) usando HTTPS. As redes autorizadas são compatíveis com todos os clusters.

O GKE usa o protocolo Transport Layer Security (TLS) e a autenticação para conceder acesso seguro ao endpoint do cluster do mestre pela Internet pública. Isso proporciona flexibilidade para 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.

Benefícios

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

Benefícios dos clusters particulares

Os clusters particulares executam nós sem endereços IP externos e, opcionalmente, executam os mestres sem um endpoint acessível ao público. Por padrão, os clusters particulares também não permitem que os endereços IP do Google Cloud acessem o endpoint do mestre deles. O uso de clusters particulares com redes autorizadas torna o mestre do cluster acessível apenas pelos CIDRs incluídos na lista de permissões, pelos nós da VPC do cluster e pelos jobs de produção internos do Google que gerenciam o mestre.

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 configurações gcloud padrão 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

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

Com a sinalização --master-authorized-networks, é possível especificar até 50 CIDRs delimitados por vírgulas, como 8.8.8.0/24, que você quer conceder acesso ao endpoint do mestre do cluster por 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 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 que você quer conceder acesso na lista de permissões ao mestre 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 do 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 atual

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

gcloud

Execute este comando:

    gcloud container clusters update [CLUSTER_NAME] \
        --enable-master-authorized-networks \
        --master-authorized-networks [CIDR],[CIDR]...
    

Com a sinalização --master-authorized-networks, é possível especificar até 50 CIDRs delimitados por vírgulas, como 8.8.8.0/24, que você quer conceder acesso ao endpoint do mestre do cluster por 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 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, se estiver desativado.

  5. Clique em Adicionar rede autorizada.

  6. Preencha o Nome desejado da rede.

  7. Preencha a Rede com um intervalo CIDR que você quer conceder acesso na lista de permissões ao mestre do cluster.

  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 do cluster. No campo, especifique um objeto MasterAuthorizedNetworksConfig:

    "desiredMasterAuthorizedNetworksConfig": {
        object(MasterAuthorizedNetworksConfig)
      }
    

Como verificar uma rede autorizada

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

gcloud

Execute este comando:

    gcloud container clusters describe [CLUSTER_NAME]
    

Na resposta ao 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 pretendido.

O campo Redes autorizadas do mestre exibe os CIDRs na lista de permissões.

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 as redes autorizadas em um cluster atual 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 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 é possível conectar-se ao mestre

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, certifique-se de especificar os blocos CIDR corretos.

A seguir