Alterner manuellement les certificats

Sélectionnez une version de la documentation :

Par défaut, l'opérateur Kubernetes AlloyDB Omni utilise cert-manager pour provisionner un ensemble de certificats TLS pour chaque cluster de bases de données. En plus du certificat du serveur de base de données, l'opérateur crée des certificats pour les composants du plan de contrôle afin de sécuriser les connexions internes.

Bien que cert-manager automatise le renouvellement des certificats en fonction des champs duration et renewBefore d'un objet Certificate, vous devrez peut-être déclencher manuellement une rotation des certificats dans les cas suivants :

  • Une clé privée est compromise.
  • Un certificat CA est soumis à une rotation. Selon la documentation cert-manager, lorsqu'un certificat CA associé à un émetteur est remplacé, les certificats d'entité finale ne sont pas automatiquement réémis.
  • Le renouvellement automatique de cert-manager échoue. Bien que cela soit rare, si la réémission automatique ne se déclenche pas en raison de conditions spécifiques décrites dans les questions fréquentes sur cert-manager, vous devez déclencher une rotation manuelle.

Avant de commencer

  • Assurez-vous que kubectl est configuré pour accéder à votre cluster Kubernetes.
  • Assurez-vous que cert-manager est en cours d'exécution sur votre cluster Kubernetes.

Rotation manuelle des certificats

Pour déclencher manuellement la rotation des certificats, supprimez le secret associé à l'objet cert-manager Certificate. Le contrôleur cert-manager réconcilie l'objet et réémet le certificat, ce qui crée un secret. Les charges de travail associées à l'opérateur AlloyDB Omni rechargent automatiquement leurs configurations TLS pour utiliser le nouveau certificat.

  1. Identifiez la cert-manager Certificate dont vous souhaitez effectuer la rotation. Ces objets se trouvent dans votre espace de noms DBCluster et dans l'espace de noms où l'opérateur AlloyDB Omni est installé. Les noms des certificats CA sont précédés du préfixe dbs-al-ca, tandis que les certificats de feuille sont précédés du préfixe dbs-al-cert. Dans les étapes restantes, utilisez le nom du secret associé à partir de la sortie.

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. Avant de déclencher la rotation, sauvegardez le secret du certificat :

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. Supprimez le secret du certificat :

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. Attendez que cert-manager recrée le secret du certificat :

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

Vérifier la rotation des certificats

Après avoir fait manuellement pivoter les certificats, vérifiez que les nouveaux certificats sont utilisés :

  1. Vérifiez le secret du certificat. La valeur creationTimestamp doit refléter l'heure après la rotation manuelle du certificat :

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. Examinez l'état du Certificate. Vérifiez que les dates notBefore et notAfter indiquées dans la section "État" sont correctes :

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

Étapes suivantes