Rotacionar autoridades de certificação

O Google Distributed Cloud usa certificados e chaves privadas para autenticar e criptografar conexões entre componentes do sistema em clusters. A autoridade certificadora (CA, na sigla em inglês) do cluster gerencia esses certificados e chaves. Quando você executa o comando bmctl update credentials certificate-authorities rotate, o Google Distributed Cloud realiza as seguintes ações:

  • O comando cria e faz upload de novas autoridades de certificação de cluster (CAs) para a CA do cluster, a CA etcd e a CA do proxy frontal para o namespace do cluster de usuário no cluster de administrador.

  • Os controladores do cluster de administrador substituem as autoridades de certificação do cluster de usuário pelas recém-geradas.

  • os controladores do cluster de administrador distribuem os novos certificados de CA públicos e pares de chaves de certificado de folha para os componentes do sistema do cluster de usuário.

  • O comando também atualiza o Secret stackdriver-prometheus-etcd-scrape, que foi criado pelo Google Distributed Cloud durante a criação do cluster. O Prometheus exige esse secret para coletar métricas do etcd.

Para manter a comunicação segura no cluster, rotacione a CA do cluster de usuário periodicamente e sempre que houver uma possível violação de segurança.

Antes de começar

Antes de fazer a rotação da autoridade de certificação do cluster, planeje-se de acordo com as seguintes condições e impactos:

  • Verifique se os clusters de administrador e de usuário estão na versão 1.9.0 ou superior antes de iniciar a rotação de CA.

  • A rotação da CA é incremental, permitindo que componentes do sistema se comuniquem durante a rotação.

  • Uma rotação de CA reinicia o servidor da API, outros processos do plano de controle e cada nó no cluster várias vezes. Cada estágio de uma rotação de CA é semelhante a um upgrade de cluster. Embora o cluster de usuário permaneça operacional durante uma rotação de CA, espera-se que as cargas de trabalho sejam reiniciadas e reprogramadas.

  • Se o cluster de usuário não tiver um plano de controle de alta disponibilidade, espere breves períodos de inatividade do plano de controle durante a rotação da CA.

  • As operações de gerenciamento de cluster não são permitidas durante a rotação da CA.

  • A duração da rotação de CA depende do tamanho do cluster. Por exemplo, a rotação de CA pode levar quase duas horas para ser concluída para um cluster com um plano de controle e 50 nós de trabalho.

Limitações

O recurso de rotação da autoridade de certificação tem as seguintes limitações:

  • A rotação da CA não atualiza os certificados emitidos manualmente por um administrador, mesmo se a CA do cluster assinar os certificados. Atualize e redistribua quaisquer certificados emitidos manualmente após a conclusão da rotação da CA do cluster de usuário;

  • Depois de iniciada, a rotação de CA não pode ser pausada ou revertida.

Iniciar uma rotação da CA do cluster

Por padrão, os certificados TLS têm um período de validade de um ano. O Google Distributed Cloud renova esses certificados quando você faz a rotação das autoridades de certificação. O Google Distributed Cloud também renova os certificados TLS durante upgrades de cluster. Recomendamos que você faça upgrade dos clusters regularmente para manter a segurança e o suporte deles, além de evitar que os certificados TLS expirem.

Use este comando para iniciar o processo de rotação da CA:

bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
    --kubeconfig KUBECONFIG

Substitua:

  • CLUSTER_NAME: o nome do cluster em que você quer rotacionar as CAs.
  • KUBECONFIG: o caminho até o arquivo kubeconfig do cluster de administrador. Para o gerenciamento automático de clusters, esse arquivo é o kubeconfig do cluster.

O comando bmctl é encerrado depois que a CA do cluster é rotacionada com êxito e um novo arquivo kubeconfig é gerado. O caminho padrão para o arquivo kubeconfig é bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

Resolver problemas com uma rotação de CA do cluster

O comando bmctl update credentials exibe o progresso da rotação da CA. O arquivo update-credentials.log associado é salvo neste diretório com carimbo de data/hora:

bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP