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-managernon 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
kubectlper accedere al cluster Kubernetes. - Assicurati che
cert-managersia 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.
Identifica il
Certificatedicert-managerche vuoi ruotare. Questi oggetti si trovano nello spazio dei nomiDBClustere nello spazio dei nomi in cui è installato l'operatore AlloyDB Omni. I nomi dei certificati CA hanno il prefissodbs-al-ca, mentre i certificati foglia hanno il prefissodbs-al-cert. Nei passaggi rimanenti, utilizza il nome del secret associato dall'output.kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o widePrima di attivare la rotazione, esegui il backup del secret del certificato:
kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bakElimina il secret del certificato:
kubectl delete secret SECRET_NAME -n NAMESPACEAttendi che
cert-managerricrei 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:
Controlla il secret del certificato. Il valore
creationTimestampdeve riflettere l'ora successiva alla rotazione manuale del certificato:kubectl get secret SECRET_NAME -n NAMESPACE -o yamlEsamina lo stato di
Certificate. Verifica che le datenotBeforeenotAfternella sezione dello stato siano corrette:kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE