In diesem Dokument wird beschrieben, wie Sie einen Stammschlüssel rotieren. Wenn Ihr Stammschlüssel manipuliert wurde oder Sie die Stammschlüssel regelmäßig rotieren möchten, um die Sicherheit zu erhöhen, können Sie Ihre Schlüssel mithilfe der Ressource RotationJob zu einem neuen Stammschlüssel rotieren.
Durch das Rotieren eines Stammschlüssels wird ein neuer Stammschlüssel erstellt, der zum Primärschlüssel wird und alle Nicht-Stammschlüssel umschließt. Sie können einen Stammschlüssel nicht löschen. Er kann nur durch Rotation ersetzt werden. Weitere Informationen zu Stammschlüsseln finden Sie unter Stammschlüsseltypen.
Weitere Informationen zur KMS API finden Sie in der KMS API-Übersicht und in der Key Management Service KRM API, um die vollständige API-Definition aufzurufen.
Hinweis
Bevor Sie einen Stammschlüssel rotieren, müssen Sie die erforderlichen Berechtigungen haben und Ihre Umgebung vorbereiten.
IAM-Rollen anfordern
Wenn Sie Schlüssel rotieren möchten, wenden Sie sich an Ihren IAM-Organisationsadministrator, um die Rolle KMS Rotation Job Admin (kms-rotationjob-admin) anzufordern.
Umgebung vorbereiten
Laden Sie die gdcloud CLI herunter und installieren Sie sie, falls noch nicht geschehen.
Generieren Sie eine kubeconfig-Datei, um den Zugriff auf
kubectlzu konfigurieren.
Stammschlüssel rotieren
Wenn Sie einen Stammschlüssel rotieren möchten, müssen Sie zuerst den Ressourcennamen des verwendeten Stammschlüssels ermitteln. Sie finden diese Informationen, indem Sie eine beliebige AEADKey-Ressource in Ihrem Projekt prüfen, da alle diese Schlüssel durch denselben Stammschlüssel geschützt sind.
Erstellen Sie einen neuen Stammschlüssel und rotieren Sie Ihre Schlüssel:
Listen Sie die
AEADKey-Ressourcen in Ihrem Projekt auf:kubectl get AEADKey -n PROJECTErsetzen Sie
PROJECTdurch den Namen Ihres Projekt-Namespace.Notieren Sie sich in der Ausgabe den Namen eines beliebigen
AEADKey.Rufen Sie die
ROOT_KEY_RESOURCE_NAMEaus demAEADKeyab. Mit dem folgenden Befehl wird die für die RessourceRotationJoberforderliche Root-Schlüssel-ID extrahiert und neu formatiert:kubectl describe aeadkey KEY_NAME -n PROJECT | grep "Root Key ID:" | awk '{print $4}' | awk -F/ '{print "namespaces/" $1 "/secrets/" $2}'Ersetzen Sie Folgendes:
KEY_NAME: der Name eines beliebigenAEADKeyin Ihrem ProjektPROJECT: der Name Ihres Projekt-Namespace
Die Ausgabe könnte in etwa so aussehen:
namespaces/kms-system/secrets/kms-key-local-rootErstellen Sie eine YAML-Datei und fügen Sie die Ressource
RotationJobund den folgenden Inhalt hinzu:apiVersion: "kms.gdc.goog/v1" kind: RotationJob metadata: name: ROTATION_NAME spec: rootKeyResourceName: ROOT_KEY_RESOURCE_NAMEErsetzen Sie Folgendes:
ROTATION_NAME: ein Name für den Rotationsjob, z. B.rotate-job1.ROOT_KEY_RESOURCE_NAME: die Ausgabe, die Sie im vorherigen Schritt erhalten haben
Wenden Sie den Inhalt der YAML-Datei auf den KMS an:
kubectl apply -f FILENAME.yamlErsetzen Sie FILENAME durch den Namen der YAML-Datei.
Nachdem Sie den Befehl ausgeführt haben, erstellt der KMS einen neuen Stammschlüssel und rotiert jeden Schlüssel mit dem neuen Stammschlüssel.
Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Schlüsselrotation des Stammschlüssels abgeschlossen ist:
kubectl get rotationjobs ROTATION_NAMEErsetzen Sie ROTATION_NAME durch den Namen des Rotationsjobs.
Nach der Ausführung des Befehls wird der Status des Rotationsjobs als
Completedangezeigt, wenn er erfolgreich war.