Como fazer a rotação das credenciais do cluster

Nesta página, explicamos como realizar uma rotação de credenciais no Google Kubernetes Engine (GKE).

Visão geral

Execute uma rotação de credenciais para revogar e emitir novas credenciais para o cluster. Isso faz a rotação da chave privada da Autoridade de Certificação (CA, na sigla em inglês) raiz do cluster e todos os certificados e chaves privadas assinados por essa CA, incluindo o certificado de cliente de cluster (do campo da API MasterAuth), a chave e o certificado do servidor da API e dos certificados do cliente do kubelet. Consulte Confiança de clusters para mais informações sobre como essas credenciais são usadas dentro de um cluster.

O Google recomenda que você use a rotação de credenciais regularmente para reduzir o tempo de vida da credencial e proteger ainda mais seu cluster do GKE.

Além de rotacionar credenciais, a rotação de credenciais também executa uma rotação de IPs.

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 funciona a rotação de credenciais

A rotação de credenciais é um processo de várias etapas que inclui a migração para um novo endereço IP:

  • Quando você inicia uma rotação de credenciais, o plano de controle do cluster (mestre) começa a veicular no novo endereço IP além do endereço IP original. Novas credenciais são emitidas para cargas de trabalho e para o plano de controle.
  • Depois de iniciar uma rotação, atualize os clientes de API do cluster, como máquinas de desenvolvimento que usam a interface de linha de comando kubectl, para começar a se comunicar com o plano de controle no novo endereço IP.
  • Ao concluir a rotação, o plano de controle deixa de disponibilizar tráfego pelo endereço IP anterior e as credenciais antigas são revogadas.

Como executar uma rotação de credenciais

Nas seções a seguir, explicamos como executar uma rotação de credenciais.

Como iniciar a rotação

Para iniciar uma rotação de credenciais, execute o seguinte comando gcloud, que cria novas credenciais e emite essas credenciais para o plano de controle. Esse comando também configura o plano de controle para ser exibido em dois endereços IP: o IP original e um novo.

gcloud container clusters update cluster-name --start-credential-rotation

Depois que o plano de controle for reconfigurado, o GKE atualizará automaticamente os nós do cluster para usar o novo IP e as credenciais. Cada pool de nós está marcado como "requer recriação". O GKE não finaliza a rotação de credenciais até que a recriação automática seja concluída.

Como inspecionar a rotação

Para monitorar a operação de rotação, execute o seguinte comando:

gcloud container operations list | grep "AUTO_UPGRADE_NODES.*RUNNING"

Esse comando retorna o código da operação de atualização.

Para pesquisar a operação, passe o código da operação para o seguinte comando:

gcloud container operations wait operation-id

Os pools de nós são recriados um a um, e cada um tem uma operação própria. Se tiver vários pools de nós, é possível usar as instruções acima para pesquisar cada operação.

Como atualizar clientes de API

Depois que a rotação de credenciais tiver sido iniciada, atualize todos os clientes da API fora do cluster para usar a nova credencial, como a kubectl nas máquinas do desenvolvedor.

Para atualizar os clientes de API, execute o seguinte comando para cada um deles:

gcloud container clusters get-credentials cluster-name

Como concluir a rotação

Para concluir a rotação, execute o seguinte comando, que configura o plano de controle para veicular somente com a nova credencial:

gcloud container clusters update cluster-name --complete-credential-rotation

A seguir