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.
Terminologia relacionada a clusters e endereços IP
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 |
|
|
Cluster particular legado com endpoints públicos e particulares | Ativado |
|
|
Clusters que usam o Private Service Connect | |||
Clusters criados como públicos | Desativado |
Quando a flag
Quando a flag
Para saber mais, consulte como alterar o isolamento de 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
Quando a flag
Para saber mais, consulte como alterar o isolamento de 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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em add_box Criar.
No Autopilot ou na seção Padrão, clique em Configurar.
Configure o cluster conforme necessário.
No menu de navegação, clique em Rede.
Em Opções de rede avançadas, marque a caixa de seleção Ativar redes autorizadas do plano de controle.
Clique em Adicionar rede autorizada.
Digite um Nome para a rede.
Em Rede, insira um intervalo CIDR a que você quer conceder acesso ao plano de controle do cluster.
Clique em Concluído. Adicione outras redes autorizadas conforme necessário.
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:
- De Endereços IP de propriedade do Google Cloud.
- De endereços IP externos, exceto dos Serviços do Google que executam processos de gerenciamento de cluster.
É 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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em add_box Criar.
No Autopilot ou na seção Padrão, clique em Configurar.
Configure o cluster conforme necessário.
No menu de navegação, clique em Rede.
Em Opções de rede avançadas, marque a caixa de seleção Ativar redes autorizadas do plano de controle.
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.
Clique em Adicionar rede autorizada.
Digite um Nome para a rede.
Em Rede, insira um intervalo CIDR a que você quer conceder acesso ao plano de controle do cluster.
Clique em Concluído. Adicione outras redes autorizadas conforme necessário.
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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique no nome do cluster que você quer modificar.
Em Rede, no campo Redes autorizadas do plano de controle, clique em edit Editar redes autorizadas do plano de controle.
Marque a caixa de seleção Ativar redes autorizadas do plano de controle.
Clique em Adicionar rede autorizada.
Digite um Nome para a rede.
Em Rede, insira um intervalo CIDR a que você quer conceder acesso ao plano de controle do cluster.
Clique em Concluído. Adicione outras redes autorizadas conforme necessário.
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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique no nome do cluster que você quer modificar.
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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique no nome do cluster que você quer modificar.
Em Rede, no campo Redes autorizadas do plano de controle, clique em edit Editar redes autorizadas do plano de controle.
Desmarque a caixa de seleção Ativar redes autorizadas do plano de controle.
Clique em Save Changes.
Remover redes autorizadas
gcloud
Execute este comando:
gcloud container clusters update CLUSTER_NAME \
--enable-master-authorized-networks
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique no nome do cluster que você quer modificar.
Em Rede, no campo Redes autorizadas do plano de controle, clique em edit Editar redes autorizadas do plano de controle.
Clique em
Excluir.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
- Leia a visão geral de redes do GKE.
- Saiba mais sobre clusters nativos de VPC.
- Saiba mais sobre regras de firewall.
- Saiba mais sobre como criar clusters privados.