|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
k3s secrets-encrypt
K3s unterstützt die Aktivierung der Geheimnisverschlüsselung. Für weitere Informationen siehe Geheimnisverschlüsselung.
Geheimnisverschlüsselungs-Tool
|
Versionskontrolle
Verfügbar ab v1.21.8+k3s1 |
K3s enthält ein Kommandozeilenschnittstellen-Tool secrets-encrypt, das die automatische Steuerung über Folgendes ermöglicht:
-
Deaktivierung/Aktivierung der Geheimnisverschlüsselung
-
Hinzufügen neuer Verschlüsselungsschlüssel
-
Rotation und Löschen von Verschlüsselungsschlüsseln
-
Geheimnisse erneut verschlüsseln
|
Das Nichteinhalten des ordnungsgemäßen Verfahrens zur Rotation der Verschlüsselungsschlüssel kann Ihren Cluster dauerhaft beschädigen. Vorsicht geboten. |
Drehung der Verschlüsselungsschlüssel
|
Versionskontrolle
Verfügbar ab den Veröffentlichungen im September 2024: v1.30.5+k3s1, v1.31.1+k3s1. |
-
Einzelserver
-
Hochverfügbarkeit
Um die Verschlüsselungsschlüssel für Geheimnisse in einem Einzelserver-Cluster zur Rotation zu bringen:
-
Starten Sie den K3s-Server mit dem Flag
--secrets-encryptionK3s ohne Verschlüsselung zu starten und sie später zu aktivieren, wird derzeit nicht unterstützt.
-
Rotieren Sie die Verschlüsselungsschlüssel für Geheimnisse
k3s secrets-encrypt rotate-keys
-
Warten Sie, bis die Neuverschlüsselung abgeschlossen ist. Überwachen Sie die Serverprotokolle oder warten Sie auf:
$ k3s secrets-encrypt status Encryption Status: Enabled Current Rotation Stage: reencrypt_finished
Um die Verschlüsselungsschlüssel für Geheimnisse in HA-Setups zur Rotation zu bringen:
-
Starten Sie alle drei K3s-Server mit dem
--secrets-encryptionFlag. Zur Vereinfachung werden die Server als S1, S2, S3 bezeichnet.K3s ohne Verschlüsselung zu starten und sie später zu aktivieren, wird derzeit nicht unterstützt.
-
Rotieren Sie die Verschlüsselungsschlüssel für Geheimnisse auf S1
k3s secrets-encrypt rotate-keys -
Warten Sie, bis die Neuverschlüsselung abgeschlossen ist. Überwachen Sie die Serverprotokolle oder warten Sie auf:
$ k3s secrets-encrypt status Encryption Status: Enabled Current Rotation Stage: reencrypt_finishedK3s wird ~5 Geheimnisse pro Sekunde neu verschlüsseln. Cluster mit einer großen Anzahl von Geheimnissen können mehrere Minuten für die Neuverschlüsselung benötigen. Sie können den Fortschritt in den Serverprotokollen verfolgen.
-
Starten Sie K3s auf S1 mit denselben Argumenten neu. Wenn K3s als Dienst ausgeführt wird:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Sobald S1 läuft, starten Sie K3s auf S2 und S3 neu
Legacy-Verschlüsselungsschlüsselrotation
|
Neue Vorgehensweise
Wenn Sie K3s-Versionen v1.30+ verwenden, empfehlen wir stattdessen die Verwendung der Verschlüsselungsschlüsselrotation. |
-
Einzelserver
-
Hochverfügbarkeit
Um die Verschlüsselungsschlüssel für Geheimnisse in einem Einzelserver-Cluster zur Rotation zu bringen:
-
Starten Sie den K3s-Server mit dem Flag
--secrets-encryptionK3s ohne Verschlüsselung zu starten und sie später zu aktivieren, wird derzeit nicht unterstützt.
-
Bereiten Sie sich
k3s secrets-encrypt prepare -
Beenden Sie den K3s-Server und starten Sie ihn mit denselben Argumenten neu. Wenn K3s als Dienst ausgeführt wird:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Gedreht
k3s secrets-encrypt rotate -
Beenden Sie den K3s-Server und starten Sie ihn mit denselben Argumenten neu
-
Neuverschlüsseln
K3s wird ~5 Geheimnisse pro Sekunde neu verschlüsseln.
Cluster mit einer großen Anzahl von Geheimnissen können mehrere Minuten für die Neuverschlüsselung benötigen.k3s secrets-encrypt reencrypt
Die Schritte sind sowohl für eingebettete DB- als auch für externe DB-Cluster gleich.
Um die Verschlüsselungsschlüssel für Geheimnisse in HA-setups zu drehen:
-
Starten Sie alle drei K3s-Server mit dem
--secrets-encryption-Flag. Zur Vereinfachung werden die Server als S1, S2, S3 bezeichnet.-
K3s ohne Verschlüsselung zu starten und sie später zu aktivieren, wird derzeit nicht unterstützt.
-
Obwohl es nicht erforderlich ist, wird empfohlen, einen Serverknoten auszuwählen, von dem aus die
secrets-encryptBefehle ausgeführt werden.
-
-
Bereiten Sie auf S1 vor
k3s secrets-encrypt prepare -
Beenden Sie S1 und starten Sie ihn mit denselben Argumenten neu. Wenn K3s als Dienst ausgeführt wird:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Sobald S1 läuft, beenden Sie S2 und S3 und starten Sie sie neu.
-
Rotieren Sie auf S1
k3s secrets-encrypt rotate -
Beenden Sie S1 und starten Sie ihn mit denselben Argumenten neu.
-
Sobald S1 läuft, beenden Sie S2 und S3 und starten Sie sie neu.
-
Reverschlüsseln Sie auf S1
K3s wird ~5 Geheimnisse pro Sekunde neu verschlüsseln.
Cluster mit einer großen Anzahl von Geheimnissen können mehrere Minuten für die Neuverschlüsselung benötigen.k3s secrets-encrypt reencrypt -
Beenden Sie S1 und starten Sie ihn mit denselben Argumenten neu.
-
Sobald S1 läuft, beenden Sie S2 und S3 und starten Sie sie neu.
Deaktivieren/Wiederaktivieren der Geheimnisverschlüsselung
-
Einzelserver
-
Hochverfügbarkeit
Nach dem Starten eines Servers mit dem --secrets-encryption-Flag kann die Geheimnisverschlüsselung deaktiviert werden.
Um die Geheimnisverschlüsselung in einem Einzelknoten-Cluster zu deaktivieren:
-
Deaktivieren
k3s secrets-encrypt disable -
Beenden Sie den K3s-Server und starten Sie ihn mit denselben Argumenten neu. Wenn K3s als Dienst ausgeführt wird:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Reverschlüsseln Sie mit Flags
k3s secrets-encrypt reencrypt --force --skip
Um die Geheimnisverschlüsselung in einem Einzelknoten-Cluster wieder zu aktivieren:
-
Aktivieren
k3s secrets-encrypt enable -
Beenden Sie den K3s-Server und starten Sie ihn mit denselben Argumenten neu
-
Reverschlüsseln Sie mit Flags
k3s secrets-encrypt reencrypt --force --skip
Nach dem Starten eines HA-Clusters mit --secrets-encryption-Flags kann die Geheimnisverschlüsselung deaktiviert werden.
|
Obwohl es nicht erforderlich ist, wird empfohlen, einen Serverknoten auszuwählen, von dem aus die |
Der Einfachheit halber werden die drei in diesem Leitfaden verwendeten Server als S1, S2, S3 bezeichnet.
Um die Geheimnisverschlüsselung in einem HA-Cluster zu deaktivieren:
-
Deaktivieren Sie auf S1
k3s secrets-encrypt disable -
Beenden Sie S1 und starten Sie ihn mit denselben Argumenten neu. Wenn K3s als Dienst ausgeführt wird:
# If using systemd systemctl restart k3s # If using openrc rc-service k3s restart -
Sobald S1 läuft, beenden Sie S2 und S3 und starten Sie sie neu.
-
Reverschlüsseln Sie mit Flags auf S1
k3s secrets-encrypt reencrypt --force --skip
Um die Geheimnisverschlüsselung in einem HA-Cluster wieder zu aktivieren:
-
Aktivieren Sie auf S1
k3s secrets-encrypt enable -
Beenden Sie S1 und starten Sie ihn mit denselben Argumenten neu.
-
Sobald S1 läuft, beenden Sie S2 und S3 und starten Sie sie neu.
-
Reverschlüsseln Sie mit Flags auf S1
k3s secrets-encrypt reencrypt --force --skip
Verschlüsselungsstatus der Geheimnisse
Das Tool zur Geheimnisverschlüsselung enthält einen status Befehl, der Informationen über den aktuellen Status der Geheimnisverschlüsselung auf dem Knoten anzeigt.
Ein Beispiel für den Befehl auf einem Einzelserver-Knoten:
$ k3s secrets-encrypt status
Encryption Status: Enabled
Current Rotation Stage: start
Server Encryption Hashes: All hashes match
Active Key Type Name
------ -------- ----
* AES-CBC aescbckey
Ein weiteres Beispiel in einem HA-Cluster, nach der Rotation der Schlüssel, aber bevor die Server neu gestartet werden:
$ k3s secrets-encrypt status
Encryption Status: Enabled
Current Rotation Stage: rotate
Server Encryption Hashes: hash does not match between node-1 and node-2
Active Key Type Name
------ -------- ----
* AES-CBC aescbckey-2021-12-10T22:54:38Z
AES-CBC aescbckey
Die Details zu jedem Abschnitt sind wie folgt:
-
Verschlüsselungsstatus: Zeigt an, ob die Geheimnisverschlüsselung auf dem Knoten deaktiviert oder aktiviert ist.
-
Aktueller Rotationsstatus: Gibt den aktuellen Rotationsstatus auf dem Knoten an.
Die Stufen sind:start,prepare,rotate,reencrypt_request,reencrypt_active,reencrypt_finished -
Serververschlüsselungshashes: Nützlich für HA-Cluster, zeigt dies an, ob alle Server sich im gleichen Status mit ihren lokalen Dateien befinden. Dies kann verwendet werden, um zu identifizieren, ob ein Neustart der Server erforderlich ist, bevor mit der nächsten Stufe fortgefahren wird. Im obigen HA-Beispiel haben Knoten-1 und Knoten-2 unterschiedliche Hashes, was darauf hinweist, dass sie derzeit nicht die gleiche Verschlüsselungskonfiguration haben. Ein Neustart der Server wird ihre Konfiguration synchronisieren.
-
Schlüsseltabelle: Fasst Informationen über die auf dem Knoten gefundenen Geheimnisverschlüsselungsschlüssel zusammen.
-
Aktiv: Das "*" zeigt an, welche, falls vorhanden, der Schlüssel derzeit für die Geheimnisverschlüsselung verwendet werden. Ein aktiver Schlüssel wird von Kubernetes verwendet, um neue Geheimnisse zu verschlüsseln.
-
Schlüsseltyp: Alle Schlüssel, die mit diesem Tool verwendet werden, sind vom Typ
AES-CBC. Weitere Informationen siehe hier. -
Name: Name des Verschlüsselungsschlüssels.
-