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

Para clusters de Autopilot do GKE, o recurso de nós protegidos do GKE é ativado por padrão e não pode ser modificado. Para clusters do GKE Standard, os nós protegidos do GKE são ativados por padrão, mas podem ser substituídos.

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 (MIG) 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ó.

Os nós do plano de controle do cluster do GKE sempre usam nós protegidos do GKE, mesmo se você desativar o recurso no cluster. Ativação ou desativação Os nós protegidos do GKE só afetam se os nós de trabalho que executam as cargas de trabalho usam o recurso.

Preços

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.

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 CLI do Google Cloud para essa tarefa, instale e inicialize a gcloud CLI. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.

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

É possível criar um novo cluster com os nós protegidos do GKE ativados usando a CLI gcloud ou o console 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. No console Google Cloud , acesse a página Criar um cluster do Kubernetes.

    Acessar "Criar um cluster do Kubernetes"

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

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

  4. Configure o cluster como quiser.

  5. 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 nós protegidos do GKE em um cluster atual usando a Google Cloud CLI ou o console Google Cloud .

Como o GKE ativa os nós protegidos do GKE

Depois de ativar os nós protegidos do GKE, os nós de trabalho são recriados como VMs protegidas. Os nós do cluster são recriados de maneira contínua para minimizar a inatividade.

Depois de ativar os nós protegidos do GKE, o GKE atualiza o cluster com as seguintes etapas:

Para mais detalhes sobre essa mudança específica, encontre a linha correspondente na tabela Mudanças manuais que recriam os nós usando uma estratégia de upgrade de nós e respeitando as políticas de manutenção. Para saber mais sobre atualizações de nós, consulte Planejar interrupções de atualização de nós.

Ativar os nós protegidos do GKE

gcloud

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

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

Console

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

    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 Salvar alterações.

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

Para verificar se o cluster está usando nós protegidos do GKE, use a Google Cloud CLI ou o console 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. Acesse a página Google Kubernetes Engine no Google Cloud console.

    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 Google Cloud CLI ou o console Google Cloud .

Como o GKE desativa os nós protegidos do GKE

Depois de desativar os nós protegidos do GKE, o GKE atualiza o cluster com as seguintes etapas:

Para mais detalhes sobre essa mudança específica, encontre a linha correspondente na tabela Mudanças manuais que recriam os nós usando uma estratégia de upgrade de nós e respeitando as políticas de manutenção. Para saber mais sobre atualizações de nós, consulte Planejar interrupções de atualização de nós.

Desativar os nós protegidos do GKE

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. Acesse a página Google Kubernetes Engine no Google Cloud console.

    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 Salvar alterações.

Integridade de nós

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

A inicialização segura é uma configuração do pool de nós que autentica os componentes de inicialização das VMs de nó, como o kernel e o carregador de inicialização, durante o processo de inicialização. A Inicialização segura está desativada por padrão nos pools de nós.

Antes de ativar a inicialização segura nos seus pools de nós, considere o seguinte:

  • Ativar a inicialização segura em nós do Ubuntu impede que módulos de kernel não assinados de terceiros sejam carregados nesses nós.
  • A ativação da inicialização segura em nós do Container-Optimized OS não afeta o carregamento de módulos do kernel, porque as imagens de nó do Container-Optimized OS controlam a capacidade de carregar módulos do kernel de terceiros separadamente da inicialização segura.

Para ativar a Inicialização segura, use a Google Cloud CLI ou o console do Google Cloud .

gcloud

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

gcloud container clusters create CLUSTER_NAME \
    --shielded-secure-boot

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

gcloud container node-pools 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. Acesse a página Google Kubernetes Engine no Google Cloud console.

    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 de 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 Google Cloud CLI ou o console Google Cloud .

gcloud

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

gcloud container node-pools create POOL_NAME \
    --no-shielded-integrity-monitoring

O monitoramento de integridade é ativado por padrão. É possível ativá-lo explicitamente ao criar um 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. Acesse a página Google Kubernetes Engine no Google Cloud console.

    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