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-managerfalha. 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
kubectlestá configurado para acessar o cluster do Kubernetes. - Verifique se o
cert-managerestá 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.
Identifique o
Certificatedocert-managerque você quer rotacionar. Esses objetos estão no namespaceDBClustere no namespace em que o operador do AlloyDB Omni está instalado. Os nomes dos certificados de CA têm o prefixodbs-al-ca, enquanto os certificados de folha têm o prefixodbs-al-cert. Nas etapas restantes, use o nome do secret associado na saída.kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wideAntes 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.bakExclua o secret do certificado:
kubectl delete secret SECRET_NAME -n NAMESPACEAguarde o
cert-managerrecriar 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:
Verifique o secret do certificado. O valor
creationTimestampprecisa refletir o horário após a rotação manual do certificado:kubectl get secret SECRET_NAME -n NAMESPACE -o yamlExamine o status do
Certificate. Verifique se as datasnotBeforeenotAfterna seção de status estão corretas:kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE