Zertifizierungsstellen rotieren

Google Distributed Cloud verwendet Zertifikate und private Schlüssel zur Authentifizierung und Verschlüsselung von Verbindungen zwischen Systemkomponenten in Clustern. Die Cluster-Zertifizierungsstelle (CA) verwaltet diese Zertifikate und Schlüssel. Wenn Sie den Befehl bmctl update credentials certificate-authorities rotate ausführen, führt Google Distributed Cloud die folgenden Aktionen aus:

  • Der Befehl erstellt und lädt neue Clusterzertifizierungsstellen (Certificate Authorities, CA), die etcd-CA und die Front-Proxy-CA in den Nutzercluster-Namespace im Administratorcluster hoch.

  • Die Administratorcluster-Controller ersetzen die Zertifizierungsstellen des Nutzerclusters durch die neu generierten Zertifizierungsstellen.

  • Die Administratorcluster-Controller verteilen die neuen öffentlichen CA-Zertifikate und Schlüsselpaare für das untergeordnete Zertifikat an die Systemkomponenten des Nutzerclusters.

  • Der Befehl aktualisiert auch das Secret stackdriver-prometheus-etcd-scrape, das von Google Distributed Cloud während der Clustererstellung erstellt wurde. Prometheus benötigt dieses Secret, um etcd-Messwerte zu erfassen.

Für eine sichere Clusterkommunikation sollten Sie die Zertifizierungsstelle Ihres Nutzerclusters regelmäßig und bei einem möglichen Sicherheitsverstoß rotieren.

Hinweise

Planen Sie vor dem Rotieren der Cluster-Zertifizierungsstelle entsprechend der folgenden Bedingungen und Auswirkungen:

  • Achten Sie darauf, dass die Administrator- und Nutzercluster mindestens Version 1.9.0 haben, bevor Sie die CA-Rotation starten.

  • Die Rotation von Cluster-CAs ist inkrementell, sodass Systemkomponenten während der Rotation kommunizieren können.

  • Für eine CA-Rotation müssen der API-Server, andere Prozesse der Steuerungsebene und alle Knoten im Cluster mehrmals neu gestartet werden. Jede Phase der CA-Rotation verläuft ähnlich wie ein Clusterupgrade. Während der Nutzercluster während einer CA-Rotation weiter funktionsfähig ist, sollten Sie davon ausgehen, dass Arbeitslasten neu gestartet und neu geplant werden.

  • Wenn Ihr Nutzercluster keine hochverfügbare Steuerungsebene hat, müssen Sie während der CA-Rotation mit kurzen Ausfallzeiten der Steuerungsebene rechnen.

  • Clusterverwaltungsoperationen sind während der CA-Rotation nicht zulässig.

  • Die Dauer der CA-Rotation hängt von der Größe des Clusters ab. Beispielsweise kann die Rotation von Cluster-CAs für einen Nutzercluster mit einer einzigen Steuerungsebene und 50 Worker-Knoten fast zwei Stunden dauern.

Beschränkungen

Für die Funktion der CA-Rotation gelten die folgenden Einschränkungen:

  • Bei der CA-Rotation werden Zertifikate, die von einem Administrator manuell ausgestellt wurden, nicht aktualisiert, auch wenn die Cluster-CA die Zertifikate signiert. Aktualisieren und verteilen Sie alle manuell ausgestellten Zertifikate nach Abschluss der Rotation der Cluster-CA

  • Nach dem Start kann die CA-Rotation nicht mehr angehalten und es kann kein Rollback durchgeführt werden.

Cluster-CA-Rotation starten

TLS-Zertifikate haben standardmäßig eine Gültigkeitsdauer von einem Jahr, während das clientconfig-operator-Zertifikat eine Gültigkeitsdauer von 10 Jahren hat (bei Versionen vor 1.36.100 läuft das clientconfig-operator-Zertifikat nach fünf Jahren ab). Diese Zertifikate werden in Google Distributed Cloud verlängert, wenn Sie Zertifizierungsstellen rotieren. Google Distributed Cloud verlängert auch TLS-Zertifikate mit einer Gültigkeitsdauer von einem Jahr bei Cluster-Upgrades. Bei Versionen vor 1.36.100 empfehlen wir, Ihre Cluster regelmäßig zu aktualisieren, damit sie sicher und unterstützt bleiben und TLS-Zertifikate nicht ablaufen. Außerdem sollten Sie mindestens alle fünf Jahre eine CA-Rotation durchführen.

Verwenden Sie den folgenden Befehl, um den CA-Rotationsprozess zu starten:

bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
    --kubeconfig KUBECONFIG

Dabei gilt:

  • CLUSTER_NAME: der Name des Clusters, für den Sie CAs rotieren möchten.
  • KUBECONFIG: der Pfad zur kubeconfig-Datei des Administratorclusters. Bei selbstverwalteten Clustern ist diese Datei die kubeconfig-Datei des Clusters.

Der Befehl bmctl wird beendet, nachdem die CA erfolgreich rotiert und eine neue kubeconfig-Datei generiert wurde. Der Standardpfad für die kubeconfig-Datei ist bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

Fehler bei einer Cluster-CA-Rotation beheben

Der Befehl bmctl update credentials zeigt den Fortschritt der CA-Rotation des Clusters an. Die zugehörige Datei update-credentials.log wird im folgenden Verzeichnis mit Zeitstempel gespeichert:

bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP