Ruotare manualmente i certificati

Seleziona una versione della documentazione:

Per impostazione predefinita, l'operatore Kubernetes di AlloyDB Omni utilizza cert-manager per eseguire il provisioning di un insieme di certificati TLS per ogni cluster di database. Oltre al certificato del server di database, l'operatore crea certificati per i componenti del piano di controllo per proteggere le connessioni interne.

Sebbene cert-manager automatizzi i rinnovi dei certificati in base ai campi duration e renewBefore di un oggetto Certificate, potresti dover attivare manualmente una rotazione dei certificati nei seguenti scenari:

  • Una chiave privata è compromessa.
  • Un certificato CA viene ruotato. Secondo la documentazione di cert-manager, quando un certificato CA associato a un emittente viene ruotato, i certificati foglia non vengono riemessi automaticamente.
  • La riemissione automatica di cert-manager non riesce. Sebbene sia raro, se la riemissione automatica non viene attivata a causa di condizioni specifiche descritte nelle domande frequenti di cert-manager, devi attivare una rotazione manuale.

Prima di iniziare

  • Assicurati di aver configurato kubectl per accedere al cluster Kubernetes.
  • Assicurati che cert-manager sia in esecuzione sul cluster Kubernetes.

Rotazione manuale dei certificati

Per attivare manualmente la rotazione dei certificati, elimina il secret associato all'oggetto Certificate di cert-manager. Il controller cert-manager riconcilia l'oggetto e riemette il certificato, creando un nuovo secret. I carichi di lavoro associati all'operatore AlloyDB Omni ricaricano automaticamente le configurazioni TLS per utilizzare il nuovo certificato.

  1. Identifica il Certificate di cert-manager che vuoi ruotare. Questi oggetti si trovano nello spazio dei nomi DBCluster e nello spazio dei nomi in cui è installato l'operatore AlloyDB Omni. I nomi dei certificati CA hanno il prefisso dbs-al-ca, mentre i certificati foglia hanno il prefisso dbs-al-cert. Nei passaggi rimanenti, utilizza il nome del secret associato dall'output.

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. Prima di attivare la rotazione, esegui il backup del secret del certificato:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. Elimina il secret del certificato:

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. Attendi che cert-manager ricrei il secret del certificato:

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

Verifica la rotazione dei certificati

Dopo aver ruotato manualmente i certificati, verifica che siano in uso i nuovi certificati:

  1. Controlla il secret del certificato. Il valore creationTimestamp deve riflettere l'ora successiva alla rotazione manuale del certificato:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. Esamina lo stato di Certificate. Verifica che le date notBefore e notAfter nella sezione dello stato siano corrette:

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

Passaggi successivi