Schlüsselrotation manuell ausführen

Sie können die manuelle Schlüsselrotation für Rootschlüssel mit IBM® Key Protect for IBM Cloud® ausführen.

Wenn Sie Ihren Stammschlüssel drehen, fügen Sie dem Schlüssel neues Schlüsselmaterial hinzu. Bei diesem Vorgang wird eine neue Version des Schlüssels erstellt, mit der Sie das Key-Wrapping aufheben oder die Daten erneut verschlüsseln können.

Die Schlüsselrotation unterstützt Sie bei der Einhaltung branchenspezifischer Vorgaben und dem Einsatz bewährter Verschlüsselungsverfahren. Informationen hierzu finden Sie in Rotation für Ihre Verschlüsselungsschlüssel.

Die Rotation ist nur für Rootschlüssel verfügbar. Weitere Informationen zu den Optionen für Ihre Schlüsselrotation in Key Protect finden Sie unter Vergleich Ihrer Optionen für die Schlüsselrotation.

Rootschlüssel über die Konsole wechseln

Nachdem Sie einen Stammschlüssel erstellt haben, führen Sie die folgenden Schritte aus, um den Schlüssel zu rotieren:

  1. Melden Sie sich bei der „ IBM Cloud “-Konsole an.

  2. Rufen Sie Menü > Ressourcenliste auf, um eine Liste Ihrer Ressourcen anzuzeigen.

  3. Wählen Sie in der IBM Cloud-Ressourcenliste die bereitgestellte Instanz von Key Protect aus.

  4. Verwenden Sie auf der Seite mit den Anwendungsdetails die Tabelle Schlüssel, um die Schlüssel im Service zu durchsuchen. Wenn Sie viele Schlüssel haben, nutzen Sie die Suchfelder, um nach aktivierten Schlüsseln (da andere Schlüsselarten nicht gedreht werden können), nach Schlüsseln in einem bestimmten Schlüsselbund und nach Schlüsseln mit einem bestimmten Alias zu filtern.

  5. Sobald Sie den Schlüssel gefunden haben, klicken Sie auf das Symbol „Aktionen“ (⋯), um eine Liste mit Optionen für den Schlüssel zu öffnen, den Sie drehen möchten.

  6. Klicken Sie im Optionsmenü auf „Drehen“, um das Seitenfenster „Drehen“ zu öffnen.

  7. Von hier aus können Sie den Schlüssel einmal drehen, indem Sie auf „Drehen“ klicken. Wenn dieser Schlüssel importiert wurde, müssen Sie neues Schlüsselmaterial bereitstellen.

    Sie können für diesen Schlüssel auch eine Rotationsrichtlinie mit einem Intervall Ihrer Wahl festlegen:

    • Kehren Sie zu den Schlüsseloptionen zurück und klicken Sie auf „ Rotationsrichtlinie bearbeiten
    • Richtlinie aktivieren
    • Wählen Sie das gewünschte 30-Tage-Intervall für die Schlüsselrotation aus

    Wenn ein Schlüssel so eingestellt wird, dass er alle 2 Monate gedreht wird, wird er beispielsweise alle 60 Tage, unabhängig von der Anzahl der Tage in einem bestimmten Monat, gedreht.

  8. Klicken Sie auf „Speichern“, um diese Richtlinie festzulegen.

Wie Sie eine Rotationsrichtlinie für Ihre Instanz festlegen, die eine Rotationsrichtlinie für jeden nachfolgend erstellten Schlüssel festlegt, erfahren Sie unter Festlegen einer Rotationsrichtlinie.

Nur für importierte Rootschlüsselmüssen Sie base64-codiertes Schlüsselmaterial hinzufügen, das Sie im Service speichern und verwalten möchten. Stellen Sie sicher, dass das Schlüsselmaterial in 128, 192 oder 256 Bit liegt und dass die Datenbyte (z. B. 32 Byte für 256 Bit) mit Base64-Codierung codiert werden.

Rootschlüssel mit der API wechseln

Sie können einen Rootschlüssel wechseln, indem Sie einen POST-Aufruf an den folgenden Endpunkt absetzen.

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rotate
  1. Rufen Sie die Authentifizierungsnachweise ab, um mit Schlüsseln im Service zu arbeiten.

  2. Kopieren Sie die ID des Rootschlüssels, den Sie wechseln wollen.

    Sie können die ID für einen Schlüssel in Ihrer Key Protect-Instanz finden, indem Sie eine Liste Ihrer Schlüssel abrufen oder auf das Key Protect- armaturenbrett.

  3. Drehen Sie den Schlüssel, indem Sie neues Schlüsselmaterial mit den folgenden Angaben bereitstellen curl ist.

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rotate" \
        -H "accept: application/vnd.ibm.kms.key_action+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "x-kms-key-ring: <key_ring_ID>" \
        -H "content-type: application/vnd.ibm.kms.key_action+json" \
        -d '{
                "payload": "<key_material>"
            }'
    

    Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.

Variablen zum Drehen eines Schlüssels
Variable Beschreibung
Bereich Erforderlich. Die Regionsabkürzung, z. B. us-south oder eu-gb, die das geografische Gebiet bezeichnet, in dem sich Ihre Key Protect-Instanz befindet.

Weitere Informationen finden Sie in Regionale Serviceendpunkte.
keyID_or_alias Erforderlich. Die eindeutige ID oder der Aliasname für den Rootschlüssel, den Sie turnusmäßig wechseln möchten.
IAM_token Erforderlich. Ihr IBM Cloud-Zugriffstoken. Fügen Sie den vollständigen Inhalt des IAM-Tokens, einschließlich des Träger-Wertes, in die Curl-Anforderung ein.
Weitere Informationen finden Sie unter „ Abrufen eines Zugriffstokens “.
instance_id Erforderlich. Die eindeutige ID, die Ihrer Key Protect-Serviceinstanz zugewiesen ist.

Weitere Informationen finden Sie unter „ Abrufen einer Instanz-ID “.
key_ring_ID Optional. Die eindeutige Kennung des Schlüsselrings, zu dem der Schlüssel gehört. Wenn diese Option nicht angegeben ist, wird Key Protect nach dem Schlüssel in jedem Schlüsselring gesucht, der der angegebenen Instanz zugeordnet ist. Es wird empfohlen, die Schlüsselring-ID für eine optimiertere Anforderung anzugeben.

Hinweis: Die Schlüsselring-ID von Schlüsseln, die ohne den Header „ x-kms-key-ring “ erstellt werden, lautet: „default“.

For more information, see Gruppentasten.
key_material Optional. Die neuen, mit Base64-Codierung verschlüsselten Schlüsselinformationen, die im Service gespeichert und verwaltet werden sollen. Dieser Wert ist erforderlich, wenn die Schlüsselinformationen ursprünglich beim Hinzufügen des Schlüssels zum Service importiert wurden.

Um einen Schlüssel zu rotieren, der ursprünglich von Key Protect generiert wurde, lassen Sie das Attribut „payload“ weg und übergeben Sie einen leeren Request-Entity-Body. Um einen importierten Schlüssel zu rotieren, geben Sie ein Schlüsselmaterial an, das die folgenden Anforderungen erfüllt:

Der Schlüssel muss 128, 192 oder 256 Bit lang sein. Die Datenbytes (beispielsweise 32 Bytes für 256 Bit) müssen mithilfe der „ base64 “-Kodierung kodiert werden.

Eine erfolgreiche Rotationsanforderung gibt die HTTP-Antwort 204 No Content zurück, die bedeutet, dass der Rootschlüssel durch neue Schlüsselinformationen ersetzt wurde.

Optional: Schlüsselrotation überprüfen

Sie können überprüfen, ob ein Schlüssel rotiert wurde, indem Sie eine Anforderung für die Listenschlüssel ausgeben:

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

Dabei ist <instance_ID> der Name Ihrer Instanz und Ihr <IAM_token> ist Ihr IAM-Token.

Überprüfen Sie die Werte für lastRotateDate und keyVersion im Entitätshauptteil der Antwort, um das Datum und die Uhrzeit der letzten Rotation des Schlüssels zu prüfen.

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 1
    },
    "resources": [
        {
            "type": "application/vnd.ibm.kms.key+json",
            "id": "02fd6835-6001-4482-a892-13bd2085f75d",
            "name": "test-root-key",
            "state": 1,
            "extractable": false,
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
            "imported": false,
            "creationDate": "2020-03-12T03:50:12Z",
            "createdBy": "...",
            "algorithmType": "Deprecated",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "algorithmBitSize": 256,
            "algorithmMode": "Deprecated",
            "lastUpdateDate": "2020-03-12T03:50:12Z",
            "lastRotateDate": "2020-03-12T03:49:01Z",
            "keyVersion": {
                "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
                "creationDate": "2020-03-12T03:50:12Z"
            },
            "dualAuthDelete": {
                "enabled": false
            },
            "deleted": false
        }
    ]
}

Das Attribut keyVersion enthält die Identifikationsinformationen, die die letzte Version des Rootschlüssels beschreiben.

Sie können auch die Versionen auflisten, die für den Schlüssel verfügbar sind, indem Sie die Key Protect-API verfügbar. Weitere Informationen finden Sie unter Schlüsselversionen anzeigen.

Importtoken zum Wechseln eines Schlüssels verwenden

Wenn Sie zu Anfang einen Rootschlüssel mithilfe eines Importtokens importiert haben, können Sie den Schlüssel wechseln, indem Sie einen POST-Aufruf an den folgenden Endpunkt absetzen.

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rotate
  1. Rufen Sie Ihre Authentifizierungsnachweise ab, um mit den Schlüsseln im Service zu arbeiten.

    Um einen Schlüssel zu rotieren, muss Ihnen eine Writer- oder Manager-Zugriffsrichtlinie für die Instanz oder den Schlüssel zugewiesen sein. Informationen zur Zuordnung von IAM-Rollen zu Key Protect-Serviceaktionen entnehmen Sie Servicezugriffsrollen.

  2. Rufen Sie die ID des Schlüssels ab, den Sie wechseln wollen.

    Sie können die ID für einen bestimmten Schlüssel abrufen, indem Sie eine GET /v2/keys Anfrage oder durch Einsehen Ihrer Schlüssel in der Key Protect-Dashboard.

  3. Erstellen Sie ein Importtoken und rufen Sie es ab.

  4. Verwenden Sie das Importtoken, um die Schlüsselinformationen zu verschlüsseln, die Sie zum Wechseln des vorhandenen Schlüssels verwenden wollen.

    Weitere Informationen zur Verwendung eines Importtokens finden Sie im Lernprogramm: Verschlüsselungsschlüssel erstellen und importieren.

  5. Ersetzen Sie den bestehenden Schlüssel durch neues Schlüsselmaterial, indem Sie den folgenden Befehl ausführen curl-Befehl ausführen.

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rotate" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -d '{
                "type": "application/vnd.ibm.kms.key+json",
                "name": "<key_alias>",
                "description": "<key_description>",
                "extractable": <key_type>,
                "payload": "<encrypted_key>",
                "encryptionAlgorithm": "RSAES_OAEP_SHA_256",
                "encryptedNonce": "<encrypted_nonce>",
                "iv": "<iv>"
            }'
    

    Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.

Variablen zum Rotieren eines Schlüssels mit einem Import-Token
Variable Beschreibung
Bereich Erforderlich. Die Regionsabkürzung, z. B. us-south oder eu-gb, die das geografische Gebiet bezeichnet, in dem sich Ihre Key Protect-Instanz befindet.

Weitere Informationen finden Sie unter „ Regionale Service-Endpunkte “.
keyID_or_alias Erforderlich. Die eindeutige ID oder Aliasname für den Schlüssel, den Sie rotieren wollen.
IAM_token Erforderlich. Ihr IBM Cloud-Zugriffstoken. Fügen Sie den vollständigen Inhalt des IAM-Tokens, einschließlich des Träger-Wertes, in die Curl-Anforderung ein.

Weitere Informationen finden Sie unter „ Abrufen eines Zugriffstokens “.
instance_id Erforderlich. Die eindeutige ID, die Ihrer Key Protect-Serviceinstanz zugewiesen ist.

Weitere Informationen finden Sie unter „ Abrufen einer Instanz-ID “.
key_alias Erforderlich. Ein eindeutiger, lesbarer Name zur einfachen Identifikation Ihres Schlüssels. Aus Datenschutzgründen dürfen keine personenbezogenen Daten als Metadaten für den Schlüssel gespeichert werden.
key_description Optional. Eine erweiterte Beschreibung des Schlüssels. Aus Datenschutzgründen dürfen keine personenbezogenen Daten als Metadaten für den Schlüssel gespeichert werden.
encrypted_key Erforderlich. Die verschlüsselten Schlüsselinformationen, die im Service gespeichert und verwaltet werden sollen. Der Wert muss base64-codiert sein. Stellen Sie sicher, dass das Schlüsselmaterial die folgenden Anforderungen erfüllt:

Der Schlüssel muss 128, 192 oder 256 Bit lang sein. Die Datenbytes (beispielsweise 32 Bytes für 256 Bit) müssen mithilfe der „ base64 “-Kodierung kodiert werden.
key_type Optional. Ein boolescher Wert, der bestimmt, ob die Schlüsselinformationen den Service verlassen dürfen.

Wenn Sie das Attribut „extractable“ auf „false“ setzen, wird der Schlüssel zu einem Stammschlüssel, den Sie für „Wrap“- oder „Unwrap“-Operationen verwenden können.
encrypted_nonce Erforderlich. Der mit dem AES-GCM-Algorithmus verschlüsselte Nonce-Wert, der sicherstellt, dass die Bit, die Sie als Teil einer Anforderung senden, genau mit denen übereinstimmen, die vom Service empfangen werden. Die Nonce validiert den Schlüssel, den Sie wiederherstellen.

Weitere Informationen finden Sie im Tutorial: Verschlüsselungsschlüssel erstellen und importieren.
iv Erforderlich. Der Initialisierungsvektor (IV), der durch den AES-GCM-Algorithmus generiert wird, wenn Sie eine Nonce verschlüsseln. Dieser Wert wird verwendet, um den Schlüssel für die Speicherung im „ Key Protect “-System zu entschlüsseln.

Weitere Informationen finden Sie im Tutorial: Verschlüsselungsschlüssel erstellen und importieren.

Eine erfolgreiche Rotationsanforderung gibt die HTTP-Antwort 204 No Content zurück, die bedeutet, dass der Rootschlüssel durch neue Schlüsselinformationen ersetzt wurde.

Optional: Schlüsselrotation für Import-Token überprüfen

Sie können überprüfen, ob ein Schlüssel, der über ein Import-Token importiert wurde, rotiert wurde, indem Sie eine Abfrage der Schlüssel-Metadaten durchführen:

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/metadata" \
    -H "accept: application/vnd.ibm.kms.key+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

Dabei ist <keyID_or_alias> die ID oder der Aliasname des Schlüssels und <instance_ID> ist der Name Ihrer Instanz und <IAM_token> ist Ihr IAM-Token.

Überprüfen Sie die Werte für lastRotateDate und keyVersion im Entitätshauptteil der Antwort, um das Datum und die Uhrzeit der letzten Rotation des Schlüssels zu prüfen.

Sie können auch die Versionen auflisten, die für den Schlüssel verfügbar sind, indem Sie die Key Protect-API verfügbar. Weitere Informationen finden Sie unter Schlüsselversionen anzeigen.