Rotação de credenciais

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

Visão geral

Execute uma rotação de credenciais para revogar e emitir novas credenciais para seu 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 cluster (de campo API MasterAuth), a chave API mestre e certificado e os certificados de cliente kubelet. Veja 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. Eles não são alternados automaticamente.

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

Antes de começar

Prepare-se para a tarefa tomando as seguintes medidas:

  • Verifique se você ativou a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Verifique se o SDK do Cloud está instalado.
  • Defina o ID do projeto padrão:
    gcloud config set project [PROJECT_ID]
  • Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Se você estiver trabalhando com clusters regionais, defina a região de computação padrão:
    gcloud config set compute/region [COMPUTE_REGION]
  • Atualize a 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 mestre do cluster começa a disponibilizar 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 mestre por meio do novo endereço IP.
  • Quando você conclui a rotação, o mestre 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:

  1. Defina CLUSTER_NAME com o nome do cluster.

    CLUSTER_NAME=[CLUSTER_NAME]

  2. Execute o seguinte comando, que cria novas credenciais e as emite no plano de controle. Também configura o mestre do cluster para disponibilizar em dois endereços IP, o IP original e um novo IP. Isso causa um breve tempo de inatividade da API do cluster.

    gcloud container clusters update ${CLUSTER_NAME} --start-credential-rotation
    

Depois que o mestre for reconfigurado, o GKE atualizará automaticamente os nós do cluster para usar o novo IP e as credenciais. Cada pool de nós é 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 for iniciada, será preciso atualizar todos os clientes de API fora do cluster (como kubectl nas máquinas de desenvolvedor) para usar a nova credencial.

Para atualizar seus clientes de API, execute o seguinte comando para cada cliente:

gcloud container clusters get-credentials [CLUSTER_NAME]

Como concluir a rotação

Para concluir a rotação, execute os seguintes comandos:

  1. Defina CLUSTER_NAME com o nome do cluster.

    CLUSTER_NAME=[CLUSTER_NAME]

  2. Execute o seguinte comando, que configura o mestre do cluster para disponibilizar apenas com a nova credencial. Isso gera um curto período de inatividade para a API do cluster.

    gcloud container clusters update ${CLUSTER_NAME} --complete-credential-rotation
    

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Kubernetes Engine