Cómo rotar certificados de forma manual

Selecciona una versión de la documentación:

De forma predeterminada, el operador de AlloyDB Omni Kubernetes usa cert-manager para aprovisionar un conjunto de certificados TLS para cada clúster de base de datos. Además del certificado del servidor de la base de datos, el operador crea certificados para los componentes del plano de control para proteger las conexiones internas.

Si bien cert-manager automatiza las renovaciones de certificados según los campos duration y renewBefore de un objeto Certificate, es posible que debas activar manualmente una rotación de certificados en las siguientes situaciones:

  • Se vulneró una clave privada.
  • Se rota un certificado de la AC. Según la documentación de cert-manager, cuando se rota un certificado de CA asociado con un emisor, los certificados de hoja no se vuelven a emitir automáticamente.
  • cert-manager falla la nueva emisión automática. Aunque es poco frecuente, si la nueva emisión automática no se activa debido a las condiciones específicas que se describen en las preguntas frecuentes de cert-manager, debes activar una rotación manual.

Antes de comenzar

  • Asegúrate de que kubectl esté configurado para acceder a tu clúster de Kubernetes.
  • Asegúrate de que cert-manager se ejecute en tu clúster de Kubernetes.

Rotación manual de certificados

Para activar manualmente la rotación de certificados, borra el secreto asociado con el objeto cert-manager Certificate. El controlador cert-manager reconcilia el objeto y vuelve a emitir el certificado, lo que crea un secreto nuevo. Las cargas de trabajo asociadas con el operador de AlloyDB Omni vuelven a cargar automáticamente sus configuraciones de TLS para usar el nuevo certificado.

  1. Identifica el cert-manager Certificate que deseas rotar. Estos objetos se encuentran en tu espacio de nombres DBCluster y en el espacio de nombres en el que está instalado el operador de AlloyDB Omni. Los nombres de los certificados de CA tienen el prefijo dbs-al-ca, mientras que los certificados de hoja tienen el prefijo dbs-al-cert. En los pasos restantes, usa el nombre del secreto asociado del resultado.

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. Antes de activar la rotación, haz una copia de seguridad del secreto del certificado:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. Borra el secreto del certificado:

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. Espera a que cert-manager vuelva a crear el secreto del certificado:

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

Verifica la rotación del certificado

Después de rotar los certificados de forma manual, verifica que se estén usando los certificados nuevos:

  1. Verifica el secreto del certificado. El valor de creationTimestamp debe reflejar el momento posterior a la rotación manual del certificado:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. Examina el estado de Certificate. Verifica que las fechas de notBefore y notAfter en la sección de estado sean correctas:

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

¿Qué sigue?