Fazer a rotação manual de certificados

Selecione uma versão da documentação:

Por padrão, o operador do AlloyDB Omni no Kubernetes usa o cert-manager para provisionar um conjunto de certificados TLS para cada cluster de banco de dados. Além do certificado do servidor de banco de dados, o operador cria certificados para componentes do plano de controle para proteger conexões internas.

Embora o cert-manager automatize as renovações de certificados com base nos campos duration e renewBefore de um objeto Certificate, talvez seja necessário acionar manualmente uma rotação de certificado nos seguintes cenários:

  • Uma chave privada está comprometida.
  • Um certificado de CA é rotacionado. De acordo com a documentação do cert-manager, quando um certificado de CA associado a um emissor é rotacionado, os certificados de folha não são reemitidos automaticamente.
  • A reemissão automática do cert-manager falha. Embora seja raro, se a reemissão automática não for acionada devido a condições específicas descritas nas Perguntas frequentes do cert-manager, você precisará acionar uma rotação manual.

Antes de começar

  • Verifique se o kubectl está configurado para acessar o cluster do Kubernetes.
  • Verifique se o cert-manager está em execução no cluster do Kubernetes.

Rotação manual de certificados

Para acionar manualmente a rotação de certificados, exclua o secret associado ao objeto Certificate do cert-manager. O controlador cert-manager reconcilia o objeto e reemite o certificado, o que cria um novo secret. As cargas de trabalho associadas ao operador do AlloyDB Omni recarregam automaticamente as configurações de TLS para usar o novo certificado.

  1. Identifique o Certificate do cert-manager que você quer rotacionar. Esses objetos estão no namespace DBCluster e no namespace em que o operador do AlloyDB Omni está instalado. Os nomes dos certificados de CA têm o prefixo dbs-al-ca, enquanto os certificados de folha têm o prefixo dbs-al-cert. Nas etapas restantes, use o nome do secret associado na saída.

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. Antes de acionar a rotação, faça backup do secret do certificado:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. Exclua o secret do certificado:

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. Aguarde o cert-manager recriar o secret do certificado:

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

Verificar a rotação do certificado

Depois de rotacionar manualmente os certificados, verifique se os novos certificados estão em uso:

  1. Verifique o secret do certificado. O valor creationTimestamp precisa refletir o horário após a rotação manual do certificado:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. Examine o status do Certificate. Verifique se as datas notBefore e notAfter na seção de status estão corretas:

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

A seguir