Key-Wrapping für Schlüssel erneut ausführen
Verschlüsseln Sie Ihre Datenverschlüsselungsschlüssel erneut mithilfe der IBM® Key Protect-API.
Wenn Sie einen Rootschlüssel in Key Protect turnusmäßig wechseln, werden neue Verschlüsselungsschlüsselinformationen für den Schutz der Datenverschlüsselungsschlüssel (DEKs) verfügbar, die dem Rootschlüssel zugeordnet sind. Mit der API für das erneute Wrapping können Sie DEKs erneut verschlüsseln, ohne die zugehörigen Schlüssel in unverschlüsselter Form zugänglich zu machen.
Wie Sie mit Hilfe der Umschlagverschlüsselung die Sicherheit von Daten im Ruhezustand in der Cloud kontrollieren können, erfahren Sie unter Schutz von Daten mit Envelope- Verschlüsselung.
Rewrapping für Schlüssel über API durchführen
Sie können einen bestimmten Datenverschlüsselungsschlüssel (DEK) mit einem Rootschlüssel erneut verschlüsseln, den Sie in Key Protect verwalten, ohne den Datenverschlüsselungsschlüssel in seinem unverschlüsselten Textformat offenzulegen.
Zum Rewrapping von Schlüsseln werden die Aufrufe unwrap und wrap für den Service kombiniert. Sie können beispielsweise eine Operation rewrap emulieren, indem Sie zuerst die API für unwrap aufrufen,
um auf einen Datenverschlüsselungsschlüssel zuzugreifen, und dann die API wrap aufrufen, um den Datenverschlüsselungsschlüssel anhand der neuesten Informationen zum Rootschlüssel erneut zu verschlüsseln.
Nachdem Sie einen Root-Schlüssel im Dienst gedreht haben, einen Datenverschlüsselungsschlüssel, der mit dem Root-Schlüssel verknüpft ist, neu verschlüsseln, indem Sie einen
POST-Aufruf an den folgenden Endpunkt durchführen.
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap
-
Kopieren Sie die ID des gewechselten Rootschlüssels, mit dem Sie die ursprüngliche Wrapping-Anforderung durchgeführt haben.
Sie können die ID eines Schlüssels abrufen, indem Sie eine
GET api/v2/keys-Anforderung stellen oder indem Sie Ihre Schlüssel in der Key Protect- GUI anzeigen. -
Kopieren Sie den
ciphertext-Wert, der während der letzten Wrapping-Anforderung zurückgegeben wurde. -
Ändern Sie den Schlüssel mit dem neuesten Stammschlüsselmaterial, indem Sie Folgendes ausführen
curl-Befehl ausführen.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap" \ -H "accept: application/vnd.ibm.kms.key_action+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.key_action+json" \ -H "x-kms-key-ring: <key_ring_ID>" \ -H "correlation-id: <correlation_ID>" \ -d '{ "ciphertext": "<encrypted_data_key>", "aad": [ "<additional_data>", "<additional_data>" ] }'Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.
| Variable | Beschreibung |
|---|---|
| Bereich | Erforderlich. Die Regionsabkürzung (z. B. us-south oder eu-gb) für den geografischen Bereich, in dem sich Ihre Key Protect-Instanz befindet.Weitere Informationen finden Sie unter Regionale Dienstendpunkte. |
| keyID_or_alias | Erforderlich. Die eindeutige ID oder der Aliasname für den Rootschlüssel der ursprünglichen Wrapping-Anforderung. |
| 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 ID 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 x-kms-key-ring-Header erstellt werden, lautet: default.For more information, see Gruppentasten. |
| correlation_ID | Die eindeutige ID, die zum Überwachen und Korrelieren von Transaktionen verwendet wird. |
| encrypted_data_key | Erforderlich. Der Wert des Chiffretextes, der durch die ursprüngliche Wrap-Operation zurückgegeben wurde. |
| additional_data | OptionalDie zusätzlichen Authentifizierungsdaten (AAD), die verwendet werden, um den Schlüssel weiter zu sichern. Jede Zeichenfolge kann bis zu 255 Zeichen enthalten. Wenn Sie AAD für den ursprünglichen Wrapping-Aufruf
angegeben haben, müssen Sie dieselben AAD während der nachfolgenden Unwrap-oder Rewrap-Aufrufe angeben. Wichtig: Der Dienst Key Protect speichert keine zusätzlichen Authentifizierungsdaten. Wenn AAD angegeben werden, speichern Sie die Daten an einer sicheren Position, um sicherzustellen, dass Sie bei nachfolgenden Anforderungen zum Aufheben des Wrappings oder erneutem Durchführen des Wrappings auf dieselben AAD zugreifen und diese angeben können. |
Der neu eingeschlossene Datenverschlüsselungsschlüssel, ursprüngliche Schlüsselversion (keyVersion), die dem angegebenen verschlüsselten Text zugeordnet ist, und die neueste Schlüsselversion (rewrappedKeyVersion), die
dem neuen verschlüsselten Text zugeordnet ist, wwerden im Entitätshauptteil der Antwort zurückgegeben. Das folgende JSON-Objekt zeigt ein Beispiel für einen zurückgegebenen Wert.
{
"ciphertext": "eyJjaX ... h0Ijoi ... c1ZCJ9",
"keyVersion": {
"id": "02fd6835-6001-4482-a892-13bd2085f75d"
},
"rewrappedKeyVersion": {
"id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6"
}
}
Speichern und verwenden Sie den neuen Wert für den verschlüsselten Text (ciphertext) für zukünftige Operationen zur Envelope-Verschlüsselung, sodass Ihre Daten durch den aktuellsten Rootschlüssel geschützt werden.
Optionale Validierung
Stellen Sie sicher, dass der Schlüssel erfolgreich durch base64-Decodierung des Werts ciphertext neu eingepackt wurde.
$ echo <ciphertext> | base64 --decode
Ersetzen Sie <ciphertext> durch den base64-codierten Wert, der im vorherigen Schritt zurückgegeben wurde. Das folgende JSON-Objekt zeigt eine Beispiel-CLI-Ausgabe.
{
"ciphertext": "mIzRrwZAA8+WqRckG6gt1ji8HlEEJPSiV+TRBSR4GVr+FlAZlC5KvRriRF0=",
"iv": "lbwxXlAW2DS7+5jGz5Y1Kg==",
"version": "4.0.0",
"handle": "8e309bae-b3ec-4270-9b87-89f8697fe54f"
}