Stammschlüssel rotieren

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

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:

  1. Listen Sie die AEADKey-Ressourcen in Ihrem Projekt auf:

    kubectl get AEADKey -n PROJECT
    

    Ersetzen Sie PROJECT durch den Namen Ihres Projekt-Namespace.

    Notieren Sie sich in der Ausgabe den Namen eines beliebigen AEADKey.

  2. Rufen Sie die ROOT_KEY_RESOURCE_NAME aus dem AEADKey ab. Mit dem folgenden Befehl wird die für die Ressource RotationJob erforderliche 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 beliebigen AEADKey in Ihrem Projekt
    • PROJECT: der Name Ihres Projekt-Namespace

    Die Ausgabe könnte in etwa so aussehen:

    namespaces/kms-system/secrets/kms-key-local-root
    
  3. Erstellen Sie eine YAML-Datei und fügen Sie die Ressource RotationJob und den folgenden Inhalt hinzu:

    apiVersion: "kms.gdc.goog/v1"
    kind: RotationJob
    metadata:
      name: ROTATION_NAME
    spec:
      rootKeyResourceName: ROOT_KEY_RESOURCE_NAME
    

    Ersetzen 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
  4. Wenden Sie den Inhalt der YAML-Datei auf den KMS an:

    kubectl apply -f FILENAME.yaml
    

    Ersetzen 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.

  5. Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Schlüsselrotation des Stammschlüssels abgeschlossen ist:

    kubectl get rotationjobs ROTATION_NAME
    

    Ersetzen Sie ROTATION_NAME durch den Namen des Rotationsjobs.

    Nach der Ausführung des Befehls wird der Status des Rotationsjobs als Completed angezeigt, wenn er erfolgreich war.