Clusterzugangsdaten rotieren
Erfahren Sie, wie Sie die Zugangsdaten von Clustern rotieren, die Sie mit der Kubernetes Engine (OKE) erstellt haben.
Um eine sichere TLS-Kommunikation (früher SSL) zu, von und innerhalb von Clustern zu ermöglichen, verwendet Kubernetes PKI-(Public Key Infrastructure-)Zertifikate zur Authentifizierung. Weitere Informationen zu PKI-Zertifikaten und Kubernetes-Clustern finden Sie unter PKI-Zertifikate und -Anforderungen in der Kubernetes-Dokumentation.
Die Cluster, die Sie mit der Kubernetes-Engine erstellen, verfügen über PKI-Root-CAs (Certificate Authorities) und Private Keys für das Cluster, die etcd-Komponente und die Front-Proxy-Komponente. Mit diesen Root-CAs werden die im Cluster verwendeten Zertifikate und Private Keys signiert. Die Root-CAs, signierten Zertifikate und privaten Schlüssel, die im Cluster verwendet werden, werden zusammen als Clusterzugangsdaten bezeichnet.
In Clustern, die Sie mit der Kubernetes-Engine erstellen, laufen die Root-CAs nach fünf Jahren ab. Um ein Cluster weiterhin zu verwenden, müssen Sie die Clusterzugangsdaten vor dem Ende des Zeitraums von fünf Jahren ändern (oder rotieren). Darüber hinaus verfügen Ihre Unternehmen möglicherweise über Sicherheitsrichtlinien und -richtlinien, bei denen Sie Clusterzugangsdaten häufiger rotieren müssen (in einigen Fällen viel häufiger). Meldungen, die Sie über den bevorstehenden Ablauf von Clusterzugangsdaten informieren, werden in der Konsole angezeigt. Sie können auch die Konsole, die CLI und die API verwenden, um zu ermitteln, wann Clusterzugangsdaten ablaufen sollen.
Wenn Sie Clusterzugangsdaten rotieren, müssen Sie Kubernetes-API-Clients aktualisieren, die die vorherigen Zugangsdaten verwendet haben, um mit der Kubernetes-API zu kommunizieren. Solche Kubernetes-API-Clients umfassen kubeconfig-Dateien und Pods, die direkt mit der Kubernetes-API kommunizieren.
Sie können die Rotation der Clusterzugangsdaten jederzeit starten. Sie müssen jedoch die Rotation der Zugangsdaten starten, bevor die Zugangsdaten ablaufen.
Um eine Serviceunterbrechung zu vermeiden, versucht Kubernetes Engine, die Clusterzugangsdaten automatisch zu rotieren, wenn Sie die Rotation der Clusterzugangsdaten 90 Tage vor dem Ablauf der Zugangsdaten noch nicht gestartet haben. Es wird jedoch dringend empfohlen, Clusterzugangsdaten selbst zu rotieren, anstatt sich auf die automatische Rotation der Clusterzugangsdaten zu verlassen. Weitere Informationen finden Sie unter Automatische Rotation von Clusterzugangsdaten.
Das Rotieren von Clusterzugangsdaten erfolgt in drei Schritten:
-
Schritt 1, Phase "Zugangsdatenrotation starten": Während der Phase "Zugangsdatenrotation starten" werden neue Root-CAs, Private Keys und Zertifikate erstellt. Sie können die Phase "Zugangsdatenrotation starten" jederzeit initiieren. Sie müssen jedoch die Zugangsdatenrotation starten, bevor die Zugangsdaten ablaufen. Wenn Sie die Zugangsdatenrotation starten, bevor die Zugangsdaten ablaufen, wird auch eine Serviceunterbrechung vermieden.
Wenn Sie die Phase "Zugangsdatenrotation starten" initiieren, geben Sie explizit die Länge eines "Verzögerungszeitraums" an, bevor die Phase "Zugangsdatenrotation abschließen" automatisch initiiert wird. Mit dem Verzögerungszeitraum können Sie Kubernetes-API-Clients aktualisieren (Schritt 2). Während des Verzögerungszeitraums bieten sowohl die Legacy-Zugangsdaten als auch die neuen Zugangsdaten eine sichere Kommunikation mit, aus und innerhalb des Clusters. Die angegebene Verzögerungsperiode darf nicht weniger als 1 Tag und nicht mehr als 90 Tage betragen. Sie können die Phase "Zugangsdatenrotation abschließen" manuell vor dem Ende des Verzögerungszeitraums initiieren, sofern die neuen Zugangsdaten mindestens 24 Stunden alt sind und Sie Schritt 2 erfolgreich abgeschlossen haben.
Starten Sie Schritt 2 erst, wenn die neuen Root-CAs, Private Keys und Zertifikate erstellt wurden.
Hinweis
Wenn Sie die CLI oder API zum Starten der Rotationsphase "Zugangsdaten starten" verwenden, geben Sie die Länge des Verzögerungszeitraums im ISO 8601-Dauerformat an. Beispiel:- Verwenden Sie
P5D, um fünf Tage anzugeben - Verwenden Sie
P5DT5H, um fünf Tage und fünf Stunden anzugeben - Verwenden Sie
P5DT5H5M, um fünf Tage, fünf Stunden und fünf Minuten anzugeben
Weitere Informationen zum ISO 8601-Dauerformat finden Sie online.
- Verwenden Sie
-
Schritt 2, Kubernetes-API-Clients aktualisieren: Wenn die neuen Root-CAs, Private Keys und Zertifikate erstellt wurden und innerhalb des angegebenen Verzögerungszeitraums (nicht weniger als 1 Tag und nicht mehr als 90 Tage):
- Richten Sie neue kubeconfig-Dateien ein, um den Zugriff auf das Cluster mit den neuen Zugangsdaten und den Legacy-Zugangsdaten zu ermöglichen.
- Erstellen Sie Worker-Knoten neu, die Pods hosten, die direkt mit dem Kubernetes-API-Server kommunizieren, oder starten Sie sie neu (oder um eine Unterbrechung der Worker-Knoten zu vermeiden, starten Sie die Pods einfach selbst neu). Wenn das Cluster virtuelle Knoten enthält, starten Sie alle Pods neu, die auf den virtuellen Knoten ausgeführt werden.
Starten Sie Schritt 3 erst, wenn Sie neue kubeconfig-Dateien eingerichtet und Worker-Knoten neu erstellt oder neu gestartet haben (oder die Pods einfach neu gestartet haben).
-
Schritt 3, Phase "Vollständige Zugangsdatenrotation starten": Wenn Sie Schritt 2 abgeschlossen haben und innerhalb des angegebenen Verzögerungszeitraums (nicht weniger als 1 Tag und nicht mehr als 90 Tage) die Phase "Vollständige Zugangsdatenrotation" manuell initiieren können. Während der Phase "Zugangsdatenrotation abschließen" werden die Legacy-Root-CAs, Private Keys und Zertifikate eingestellt und entfernt. Initiieren Sie die Phase "Fertigstellen der Zugangsdatenrotation" frühestens 24 Stunden, nachdem Sie die Phase "Zugangsdatenrotation starten" initiiert haben, und erst nach Abschluss von Schritt 2. Wenn die neuen Zugangsdaten mindestens 24 Stunden alt sind, können Sie die Phase "Credential Rotation abschließen" starten, sobald Sie bereit sind.
Wenn Sie die Phase "Zugangsdatenrotation abschließen" während des angegebenen Verzögerungszeitraums (mindestens 1 Tag und höchstens 90 Tage) nicht manuell initiieren, wird die Phase "Zugangsdatenrotation abschließen" am Ende des Verzögerungszeitraums automatisch initiiert.
Wenn die Phase "Vollständige Zugangsdatenrotation" abgeschlossen ist, wird empfohlen, jede kubeconfig-Datei, die in Schritt 2 erstellt wurde (die sowohl Legacy-Zugangsdaten als auch neue Zugangsdaten enthält), durch eine neue kubeconfig-Datei zu ersetzen, die nur die neuen Zugangsdaten enthält. Wenn das Cluster virtuelle Knoten enthält, wird auch empfohlen, alle Pods, die auf den virtuellen Knoten ausgeführt werden, neu zu starten.
Die Phase "Drehung der Zugangsdaten starten" und "Drehung der Zugangsdaten abschließen" werden als separate Arbeitsanforderungen gestartet. Um den Fortschritt der Phase "Drehung von Zugangsdaten starten" und "Drehung von Zugangsdaten abschließen" zu verfolgen, zeigen Sie den Status der entsprechenden Arbeitsanforderung an. Siehe Arbeitsanforderungen anzeigen.
Sie können Clusterzugangsdaten mit der Konsole, der CLI und der API rotieren.
Beachten Sie beim Rotieren der Clusterzugangsdaten Folgendes:
- Die Zugangsdatenrotation wird für Cluster unterstützt, auf denen Kubernetes-Version 1.20 oder höher ausgeführt wird.
- Durch einfaches Upgrade der Kubernetes-Version auf der Cluster Control Plane werden die Zugangsdaten nicht rotiert. Sie müssen alle Schritte im Prozess der Zugangsdatenrotation ausführen.
- Die Phase "Zugangsdatenrotation starten" und "Zugangsdatenrotation abschließen" können nur beginnen, wenn alle Worker-Knoten im Cluster (verwaltete Knoten, virtuelle Knoten, selbstverwaltete Knoten) den Status "READY" aufweisen. Wenn sich der Status eines oder mehrerer Worker-Knoten während der Zugangsdatenrotation in NOT READY ändert, werden die Zugangsdatenrotationsvorgänge bis zu 24 Stunden angehalten und warten, bis alle Knoten wieder den Status READY haben, bevor sie fortfahren. Wenn ein oder mehrere Worker-Knoten nach 24 Stunden noch den Status NOT READY aufweist, ist der Timeout für Zugangsdatenrotationsvorgänge überschritten.
- Wenn die Phase "Zugangsdatenrotation starten" oder die Phase "Zugangsdatenrotation abschließen" aus irgendeinem Grund nicht erfolgreich verläuft, funktionieren die Legacy-Zugangsdaten weiter und werden erst nach Ablauf deaktiviert.
- Wenn Sie die Phase "Zugangsdatenrotation abschließen" innerhalb des angegebenen Verzögerungszeitraums (mindestens 1 Tag und höchstens 90 Tage) nicht manuell initiieren, wird die Phase "Zugangsdatenrotation abschließen" automatisch initiiert. Wenn Sie Kubernetes-API-Clients vor Ablauf des Verzögerungszeitraums nicht aktualisiert haben, tritt eine Serviceunterbrechung im Cluster auf.
Erforderliche IAM-Policys zum Rotieren von Clusterzugangsdaten
Um Clusterzugangsdaten zu rotieren, müssen Sie zu einer Gruppe gehören, der die Berechtigung zum Verwalten des Clusters erteilt wurde, für das Sie die Zugangsdaten rotieren möchten, oder Sie müssen sich in der Adminstrators-Gruppe des Mandanten befinden.
Automatische Rotation von Clusterzugangsdaten
Kubernetes Engine überwacht Ihre Kubernetes-Umgebung, um Cluster mit Zugangsdaten zu identifizieren, die sich ihrem Ablaufdatum nähern. Wenn Kubernetes Engine ein Cluster mit Zugangsdaten erkennt, die in 90 Tagen ablaufen sollen und die Sie nicht mit der Rotation begonnen haben, versucht Kubernetes Engine, die Zugangsdaten des Clusters automatisch zu rotieren, um eine Serviceunterbrechung zu vermeiden. Beachten Sie jedoch, dass Sie Clusterzugangsdaten unbedingt selbst rotieren sollten, anstatt sich auf die Kubernetes-Engine zu verlassen, um Clusterzugangsdaten automatisch für Sie zu rotieren.
Kubernetes Engine rotiert Clusterzugangsdaten automatisch, unabhängig von der auf dem Cluster ausgeführten Kubernetes-Version. Im Gegensatz zur manuellen Rotation von Clusterzugangsdaten erfordert die automatische Rotation von Clusterzugangsdaten keine Ausführung von Kubernetes-Version 1.20 oder höher.
Im Gegensatz zur manuellen Rotation der Clusterzugangsdaten rotiert die Kubernetes Engine Clusterzugangsdaten unabhängig vom Status der Worker-Knoten im Cluster automatisch. Bei der automatischen Rotation von Clusterzugangsdaten müssen Worker-Knoten während der Phase "Zugangsdatenrotation starten" oder "Zugangsdaten abschließen" nicht den Status READY aufweisen.
Wenn die Kubernetes-Engine die Phase "Zugangsdatenrotation starten" der Zugangsdatenrotation automatisch initiiert, werden Sie benachrichtigt, dass die automatische Rotation der Clusterzugangsdaten gestartet wurde. Während der Rotationsphase "Zugangsdaten starten" werden neue Root-CAs, private Schlüssel und Zertifikate erstellt. Wenn die Phase "Zugangsdaten starten" abgeschlossen ist:
- Wenn die Clusterzugangsdaten noch nicht abgelaufen sind, plant die Kubernetes-Engine die Phase der vollständigen Zugangsdatenrotation, um drei Tage vor dem Ablaufdatum der Zugangsdaten zu beginnen. Sie können die Phase "Zugangsdatenrotation abschließen" der Zugangsdatenrotation früher manuell initiieren, wenn Sie dies wünschen, indem Sie Schritt 3 "Vollständige Zugangsdatenrotation starten" ausführen (um eine Serviceunterbrechung zu vermeiden, führen Sie zunächst Schritt 2, Kubernetes-API-Clients aktualisieren aus).
- Wenn die Clusterzugangsdaten bereits abgelaufen sind oder innerhalb von drei Tagen ablaufen, initiiert die Kubernetes-Engine die Phase der vollständigen Zugangsdatenrotation sofort.
Um eine Serviceunterbrechung zu vermeiden, müssen Sie die Kubernetes-API-Clients aktualisieren, bevor die Phase "Complete Credential" initiiert wird:
- Richten Sie neue kubeconfig-Dateien ein, um den Zugriff auf das Cluster mit den neuen Zugangsdaten und den Legacy-Zugangsdaten zu ermöglichen.
- Erstellen Sie Worker-Knoten neu, oder starten Sie sie neu, die Pods hosten, die direkt mit dem Kubernetes-API-Server kommunizieren. (Um eine Unterbrechung der Worker-Knoten zu vermeiden, starten Sie die Pods einfach selbst neu.)
Wenn Kubernetes Engine die Phase "Zugangsdatenrotation abschließen" sofort initiiert, weil die Clusterzugangsdaten bereits abgelaufen sind, haben Sie keine Möglichkeit, Kubernetes-API-Clients zu aktualisieren, bevor die Legacy-Zugangsdaten eingestellt werden. Infolgedessen tritt im Cluster eine Serviceunterbrechung auf, bis Sie neue kubeconfig-Dateien eingerichtet haben, um den Zugriff auf das Cluster mit den neuen Zugangsdaten zu ermöglichen, und die Worker-Knoten neu erstellt oder neu gestartet (oder die Pods neu gestartet) haben.
Konsole verwenden
So prüfen Sie, ob Clusterzugangsdaten ablaufen
- Wählen Sie auf der Listenseite Cluster den Namen des Clusters aus, für das Sie das Ablaufdatum der Zugangsdaten prüfen möchten. Wenn Sie Hilfe beim Suchen der Listenseite oder des Clusters benötigen, finden Sie weitere Informationen unter Cluster auflisten.
- Prüfen Sie auf der Registerkarte Clusterdetails das Datum neben dem Label Clusterzugangsdaten laufen ab am:.
Schritt 1: Start der Rotationsphase für Zugangsdaten initiieren
- Wählen Sie auf der Listenseite Cluster den Namen des Clusters aus, für das Sie Zugangsdaten rotieren möchten. Wenn Sie Hilfe beim Suchen der Listenseite oder des Clusters benötigen, finden Sie weitere Informationen unter Cluster auflisten.
- Wählen Sie auf der Registerkarte Clusterdetails neben dem Label Clusterzugangsdaten laufen ab am: die Option Rotation starten aus.
- Geben Sie im Dialogfeld Zugangsdatenrotation starten an, wie lange die automatische Initiierung der Phase "Zugangsdatenrotation abschließen" verzögert werden soll. Die angegebene Verzögerungsperiode muss folgendermaßen lauten:
- mindestens 24 Stunden nach Beginn der Rotationsphase "Zugangsdaten starten"
- nicht mehr als 90 Tage nach dem Initiieren der Rotationsphase "Zugangsdaten starten"
- Wählen Sie Starten aus, um die Rotationsphase "Zugangsdaten starten" zu starten.
- Um den Fortschritt der Arbeitsanforderung "Zugangsdatenrotation starten" anzuzeigen, wählen Sie die Registerkarte Arbeitsanforderungen aus.
- Nur wenn der Status der Arbeitsanforderung "Zugangsdatenrotation starten" Abgeschlossen lautet, fahren Sie mit dem Aktualisieren von Kubernetes-API-Clients fort (siehe Schritt 2: Kubernetes-API-Clients aktualisieren).
Schritt 2: Kubernetes-API-Clients aktualisieren
Wenn der Status der Arbeitsanforderung "Zugangsdatenrotation starten" Abgeschlossen lautet:
- Richten Sie mit dem Befehl
oci ce cluster create-kubeconfigneue kubeconfig-Dateien ein, um mit den neuen Zugangsdaten auf das Cluster zuzugreifen (siehe Clusterzugriff einrichten).Die kubeconfig-Dateien enthalten sowohl die neuen Zugangsdaten als auch die Legacy-Zugangsdaten.
- Worker-Knoten neu erstellen oder neu starten, die Pods hosten, die direkt mit dem Kubernetes-API-Server kommunizieren (oder um eine Unterbrechung der Worker-Knoten zu vermeiden, starten Sie die Pods einfach selbst neu):
- Worker-Knoten neu erstellen oder neu starten:
- Erstellen Sie einen Worker-Knoten neu, indem Sie den Worker-Knoten löschen, ohne den Knotenpool horizontal zu skalieren. Ein neuer Worker-Knoten wird erstellt, um den gelöschten Worker-Knoten zu ersetzen. Siehe Worker-Knoten entfernen.
- Starten Sie einen Worker-Knoten neu. Siehe Instanzen neu starten.
- Starten Sie Pods neu, die auf dem Cluster ausgeführt werden und direkt mit dem Kubernetes-API-Server kommunizieren. Wenn das Cluster virtuelle Knoten enthält, starten Sie alle Pods neu, die auf den virtuellen Knoten ausgeführt werden.
- Worker-Knoten neu erstellen oder neu starten:
- Nur wenn Sie neue kubeconfig-Dateien eingerichtet und Worker-Knoten oder -Pods neu erstellt oder neu gestartet haben, fahren Sie fort, um die Zugangsdatenrotation abzuschließen (siehe Schritt 3: Phase "Vollständige Zugangsdatenrotation starten").
Schritt 3: Vollständige Rotationsphase der Zugangsdaten initiieren
Wenn Sie die Phase "Zugangsdatenrotation starten" starten, geben Sie explizit die Länge eines Verzögerungszeitraums vor dem automatischen Initiieren der Phase "Zugangsdatenrotation abschließen" an. Die angegebene Verzögerungsperiode darf nicht weniger als 1 Tag und nicht mehr als 90 Tage betragen. Während des Verzögerungszeitraums bieten sowohl die Legacy-Zugangsdaten als auch die neuen Zugangsdaten eine sichere Kommunikation mit, aus und innerhalb des Clusters.
Wenn Sie lieber auf die automatische Initiierung der Phase "Vollständige Zugangsdatenrotation" am Ende des Verzögerungszeitraums warten möchten, können Sie die Phase "Vollständige Zugangsdatenrotation" wie folgt sofort initiieren:
- Anforderungen:
- Der Status der Arbeitsanforderung "Zugangsdatenrotation starten" lautet Abgeschlossen. Siehe Schritt 1: Start der Rotationsphase für Zugangsdaten starten.
- Kubernetes-API-Clients wurden aktualisiert. Siehe Schritt 2: Kubernetes-API-Clients aktualisieren.
- Wählen Sie auf der Seite Cluster neben dem Label Drehung der Zugangsdaten abschließen für: die Option Drehung jetzt abschließen aus.
- Wählen Sie im Dialogfeld Rotation abschließen die Option Ich habe die obige Meldung gelesen aus, um zu bestätigen, dass Sie Kubernetes-API-Clients aktualisiert haben.
- Wählen Sie Starten aus, um die Phase "Zugangsdatenrotation abschließen" zu initiieren, in der die Legacy-Root-CAs, Private Keys und Zertifikate eingestellt und entfernt werden.
- Um den Fortschritt der Arbeitsanforderung "Zugangsdatenrotation abschließen" anzuzeigen, wählen Sie die Registerkarte Arbeitsanforderungen aus.
Wenn der Status der Arbeitsanforderung "Zugangsdatenrotation abschließen" Abgeschlossen lautet, werden die neuen Zugangsdaten für die sichere Kommunikation mit, von und innerhalb des Clusters verwendet. Die Legacy-Zugangsdaten wurden eingestellt und entfernt.
- (Empfohlen, aber nicht erforderlich) Ersetzen Sie kubeconfig-Dateien, die im 2. Schritt erstellt wurden (die sowohl Legacy- als auch neue Zugangsdaten enthalten), mit dem Befehl
oci ce cluster create-kubeconfigdurch eine neue kubeconfig-Datei, die nur die neuen Zugangsdaten enthält (siehe Clusterzugriff einrichten). Wenn das Cluster virtuelle Knoten enthält, wird auch empfohlen, alle Pods, die auf den virtuellen Knoten ausgeführt werden, neu zu starten.
CLI verwenden
Informationen zur Verwendung der CLI finden Sie unter Befehlszeilenschnittstelle (CLI). Eine vollständige Liste der Flags und Optionen, die für CLI-Befehle verfügbar sind, finden Sie in der Befehlszeilenreferenz.
Starten der Phase "Zugangsdatenrotation starten"
oci ce cluster start-credential-rotation --auto-completion-delay-duration <number-of-days> --cluster-id <cluster-ocid>
Beispiel:
oci ce cluster start-credential-rotation --auto-completion-delay-duration 'P5D' --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Status von Arbeitsanforderungen für Zugangsdatenrotation anzeigen
oci ce cluster credential-rotation-status get --cluster-id <cluster-ocid>
Beispiel:
oci ce cluster credential-rotation-status get --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Phase "Zertifikatsrotation abschließen" starten
oci ce cluster complete-credential-rotation --cluster-id <cluster-ocid>
Beispiel:
oci ce cluster complete-credential-rotation --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
API verwenden
Führen Sie die folgenden Vorgänge aus, um Clusterzugangsdaten zu rotieren: