Como usar os nós protegidos do GKE

Nesta página, mostramos como usar o recurso Nós protegidos do GKE. Os nós protegidos do GKE fornecem integridade e identidade de nós forte e verificável para aumentar a segurança dos nós do Google Kubernetes Engine (GKE).

Sobre nós protegidos do GKE

Os nós protegidos do GKE são criados com base nas VMs protegidas do Compute Engine. Sem os nós protegidos do GKE, invasores podem explorar uma vulnerabilidade em um pod para exfiltrar credenciais de bootstrap e falsificar nós no cluster e ter acesso a secrets do cluster. Quando os nós protegidos do GKE são ativados, o plano de controle do GKE verifica criptograficamente que:

  • cada nó no cluster é uma máquina virtual em execução no data center do Google;
  • cada nó faz parte do grupo de instâncias gerenciadas provisionadas no cluster;
  • um certificado está sendo provisionado para o kubelet para o nó em que ele está sendo executado.

Isso limita a capacidade de um invasor de falsificar um nó em seu cluster, mesmo que ele consiga exfiltrar credenciais de bootstrap do nó.

Opcionalmente, é possível configurar verificações de integridade de nós em pools de nós para fornecer proteção aprimorada de rootkit e bootkit. Essas configurações do pool de nós são independentes dos nós protegidos do GKE e funcionarão mesmo se esses nós estiverem desativados no cluster.

Para mais informações, consulte a documentação da VM protegida.

Não há custo extra para executar nós protegidos do GKE. No entanto, eles geram cerca de 0,5 KB a mais de registros na inicialização do que os nós padrão. Para mais detalhes, consulte a página de preços do Cloud Logging.

Disponibilidade

  • Os nós protegidos do GKE estão disponíveis na versão 1.13.6-gke.0 e posterior do GKE.
  • Os nós protegidos do GKE estão disponíveis em todas as zonas e regiões.
  • Os nós protegidos do GKE podem ser usados com todas as imagens de nó.
  • Os nós protegidos do GKE podem ser usados com GPUs.

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 ativar nós protegidos do GKE em um novo cluster

É possível criar um novo cluster com nós protegidos do GKE ativados usando a ferramenta gcloud ou o Console do Google Cloud.

gcloud

Ao criar um novo cluster, especifique a opção --enable-shielded-nodes:

gcloud container clusters create CLUSTER_NAME --enable-shielded-nodes

Console

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

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. No painel de navegação, em Cluster, clique em Segurança.

  4. Marque a caixa de seleção Ativar os nós protegidos do GKE.

  5. Configure o cluster como quiser.

  6. Clique em Criar.

Consulte este link para mais detalhes sobre a criação de clusters.

Como ativar nós protegidos do GKE em um cluster atual

É possível ativar os nós protegidos do GKE em um cluster atual usando a ferramenta de linha de comando gcloud ou o Console do Google Cloud.

Depois de ativar os nós protegidos do GKE, o plano de controle e os nós são recriados como VMs protegidas. O plano de controle não fica disponível enquanto está sendo recriado. Os nós do cluster são recriados de maneira contínua para minimizar a inatividade.

gcloud

Ao atualizar o cluster, especifique a opção --enable-shielded-nodes:

gcloud container clusters update CLUSTER_NAME --enable-shielded-nodes

Console

  1. No Console do Cloud, acesse a página Google Kubernetes Engine.

    Acessar o Google Kubernetes Engine

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

  3. Em Segurança, no campo Nós protegidos do GKE, clique em Editar nós protegidos do GKE.

  4. Marque a caixa de seleção Ativar os nós protegidos do GKE.

  5. Clique em Save Changes.

Como verificar se os nós protegidos do GKE estão ativados

Você consegue verificar se o cluster está usando nós protegidos do GKE por meio da ferramenta de linha de comando gcloud ou do Console do Google Cloud.

gcloud

Descreva o cluster:

gcloud container clusters describe CLUSTER_NAME

Se os nós protegidos do GKE estiverem ativados, a saída do comando incluirá estas linhas:

shieldedNodes:
  enabled: true

Console

Para verificar se um cluster está usando nós protegidos do GKE:

  1. No Console do Cloud, acesse a página Google Kubernetes Engine.

    Acessar o Google Kubernetes Engine

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

  3. Em Segurança, no campo Nós protegidos do GKE, verifique se os nós protegidos do GKE estão ativados.

Também é possível monitorar a integridade das VMs protegidas subjacentes dos nós. Veja o procedimento em Como monitorar a integridade em instâncias de VM protegida.

Como desativar os nós protegidos do GKE

É possível desativar os nós protegidos do GKE usando a ferramenta de linha de comando gcloud ou o Console do Google Cloud.

gcloud

Ao atualizar o cluster, especifique a opção --no-enable-shielded-nodes:

gcloud container clusters update CLUSTER_NAME --no-enable-shielded-nodes

Console

  1. No Console do Cloud, acesse a página Google Kubernetes Engine.

    Acessar o Google Kubernetes Engine

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

  3. Em Segurança, no campo Nós protegidos do GKE, clique em Editar nós protegidos do GKE.

  4. Marque a caixa de seleção Ativar os nós protegidos do GKE.

  5. Clique em Save Changes.

Depois de desativar os nós protegidos do GKE, o plano de controle e os nós são recriados como VMs comuns não protegidas. O plano de controle não fica disponível enquanto está sendo recriado. Os nós do cluster são recriados de maneira contínua para minimizar a inatividade.

Integridade de nós

Inicialização segura e monitoramento de integridade são configurações de pool de nós que podem ser usadas com os nós protegidos do GKE. Os nós do GKE protegidos, a inicialização segura e o monitoramento de integridade são recursos independentes ativados ou desativados individualmente.

Inicialização segura

Por padrão, a Inicialização segura é uma configuração de pool de nós desativada no GKE, já que os módulos de kernel não assinados de terceiros não podem ser carregados quando ela está ativada.

Se você não usar módulos de kernel não assinados de terceiros, poderá ativar a Inicialização segura usando a ferramenta de linha de comando gcloud ou o Console do Google Cloud.

gcloud

Para ativar a Inicialização segura ao criar um cluster:

gcloud container cluster create CLUSTER_NAME --shielded-secure-boot

Para ativar a inicialização segura ao criar um pool de nós:

gcloud container node-pool create POOL_NAME --shielded-secure-boot

A Inicialização segura está desativada por padrão. Desative-a explicitamente ao criar um cluster ou pool de nós com a opção --no-shielded-secure-boot.

Console

Para ativar a inicialização segura ao criar um pool de nós:

  1. No Console do Cloud, acesse a página Google Kubernetes Engine.

    Acessar o Google Kubernetes Engine

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

  3. Clique em Adicionar pool de nós.

  4. No menu de navegação, clique em Segurança.

  5. Em Opções protegidas, marque a caixa de seleção Ativar inicialização segura.

  6. Clique em Criar.

Monitoramento da integridade

O monitoramento de integridade é uma configuração de pool de nós ativada por padrão no GKE. É possível desativar o monitoramento de integridade usando a ferramenta de linha de comando gcloud ou o Console do Google Cloud.

gcloud

Para desativar o monitoramento de integridade de componentes do sistema ao criar um cluster:

gcloud container cluster create CLUSTER_NAME --no-shielded-integrity-monitoring

Para desativar o monitoramento de integridade de componentes do sistema ao criar um pool de nós:

gcloud container node-pool create POOL_NAME --no-shielded-integrity-monitoring

O monitoramento de integridade é ativado por padrão. É possível ativá-lo explicitamente ao criar um cluster ou pool de nós com a opção --shielded-integrity-monitoring.

Console

Para desativar o monitoramento de integridade ao criar um pool de nós:

  1. No Console do Cloud, acesse a página Google Kubernetes Engine.

    Acessar o Google Kubernetes Engine

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

  3. Clique em Adicionar pool de nós.

  4. No painel de navegação, clique em Segurança.

  5. Em Opções protegidas, desmarque a caixa de seleção Ativar monitoramento de integridade.

A seguir