Referenzinformationen zur Befehlszeilenschnittstelle von Key Protect
Die neueste Version des IBM® Key Protect for IBM Cloud®-CLI-Plug-ins bietet eine sichere und effiziente Methode zur Verwaltung von Schlüsseln in Ihrer Key Protect-Instanz.
Wenn Sie sich bei der IBM Cloud-CLI anmelden, werden Sie benachrichtigt, sobald Updates verfügbar sind. Stellen Sie sicher, dass sich die Befehlszeilenschnittstelle stets auf dem neuesten Stand befindet, damit Sie die Befehle und Flags nutzen können, die für das Plug-in der Befehlszeilenschnittstelle von Key Protect verfügbar sind.
Anmerkungen
Informationen zum Installieren und Konfigurieren des CLI-Plug-ins für Key Protect finden Sie unter CLI einrichten.
Das Beispiel für die Verwendung von region-set beschreibt einen wichtigen Schritt bei der Konfiguration.
Vorherige Versionen
Diese Dokumentation zur Version 0.8 enthält keine veralteten Befehle.
Alle veralteten Befehle funktionieren in den Versionen 0.4.0 und 0.5.2 weiterhin, d. h. Version 0.5.2 ist abwärtskompatibel mit Version 0.3.9 und Version 0.4.0.
Beispiele
Für jeden Befehl gibt es einen Abschnitt Example, in dem die Verwendung des Befehls im Kontext eines Workflows gezeigt wird.
In den Beispielen wird vorausgesetzt, dass Sie openssl und jq installiert.
Viele Beispiele nutzen die Vorteile einer Umgebungsvariablen, die für die Sitzung in Bezug auf die Key Protect-Instanz-ID festgelegt ist, anstelle des Parameters -i. Auf diese Weise festgelegte Variablen werden vom Plug-in entsprechend
und bei Bedarf automatisch verwendet.
# export the Key Protect instance id in the command line
$ export KP_INSTANCE_ID=<INSTANCE_ID>
Stellen Sie sicher, dass Sie den Endpunkt Ihrer Key Protect-Instanz festlegen:
export KP_TARGET_ADDR=<KEY_PROTECT_INSTANCE_ENDPOINT>
Ersetzen Sie „ <KEY_PROTECT_INSTANCE_ENDPOINT> “ durch den Endpunkt Ihrer Instanz-ID. Zum Beispiel:
export KP_TARGET_ADDR=https://fadedbee-0000-0000-0000-1234567890ab.api.us-south.kms.appdomain.cloud
Sie können den Instanzendpunkt für Key Protect in der IBM Cloud UI-Konsole für Ihre spezifische Instanz finden.
Befehlsübersicht für 'ibmcloud kp'
ibmcloud kp unterstützt die hier aufgelisteten Befehle.
Befehl 'kp import-token'
Der Befehl kp import-token bereitet den sicheren Import eines Rootschlüssels vor.
| Unterbefehl | Status v0.8 | Beschreibung |
|---|---|---|
| erstellen | Importtoken erstellen | |
| key-encrypt | Schlüssel verschlüsseln, der in den Service importiert werden soll | |
| nonce-encrypt | Den von kp import-token create generierten Nonce-Wert verschlüsseln |
|
| anzeigen | Importtoken abrufen |
Befehl 'kp instance'
Der Befehl kp instance verwaltet Richtlinien für eine Key Protect-Instanz verhindert.
| Unterbefehl | Status v0.8 | Beschreibung |
|---|---|---|
| Richtlinien | Einer Instanz zugeordnete Richtlinien auflisten | |
| policy-update allowed-network | Aktualisieren Sie die Instanzrichtlinie für allowed network |
|
| policy-update dual-auth-delete | Aktualisieren Sie die Instanzrichtlinie für dual auth delete |
|
| policy-update rotation | Aktualisieren Sie die Instanzrichtlinie für rotation |
Befehl 'kp key'
Der Befehl kp key verwaltet einzelne Schlüssel.
| Unterbefehl | Status v0.8 | Beschreibung |
|---|---|---|
| alias-create | Aliasnamen für eine eindeutige und bequeme Referenz auf einen Schlüssel erstellen | |
| cancel-delete | Zuvor geplante Anforderung zum Löschen eines Schlüssels abbrechen | |
| erstellen | Schlüssel erstellen oder eigenen Schlüssel importieren | |
| löschen | Schlüssel löschen | |
| inaktivieren | Schlüssel inaktivieren | |
| aktivieren | Schlüssel aktivieren | |
| Richtlinien | Liste mit Richtlinien abrufen | |
| policy-update dual-auth-delete | Aktualisieren Sie die Schlüsselrichtlinie für dual auth delete |
|
| policy-update rotation | Aktualisieren Sie die Schlüsselrichtlinie für rotation |
|
| wiederherstellen | Rootschlüssel wiederherstellen, der zuvor gelöscht wurde | |
| Rotation | Rootschlüssel rotieren | |
| schedule-delete | Löschen eines Schlüssels mit einer Richtlinie 'dual-auth-delete' autorisieren | |
| anzeigen | Schlüssel abrufen | |
| synchronisieren | Zugeordnete Ressourcen eines Schlüssels synchronisieren | |
| Wrapping aufheben | Wrapping für Datenverschlüsselungsschlüssel aufheben | |
| aktualisieren | Einen Schlüssel aktualisieren und auf einen neuen Schlüsselring übertragen | |
| Versionen | Alle Schlüsselversionen auflisten | |
| Wrapping durchführen | Wrapping für Datenverschlüsselungsschlüssel durchführen |
kp key-ring command
Die Schlüsselringunterstützung ermöglicht die Verwaltung von Schlüsselgruppen für bewährte Verfahren unter Verwendung von kp key-ring.
| Unterbefehl | Status v0.8 | Beschreibung |
|---|---|---|
| erstellen | Erstellt einen Schlüsselring innerhalb einer kp-Instanz | |
| löschen | Löscht einen Schlüsselring innerhalb einer kp-Instanz |
Weitere kp-Befehle
Weitere Befehle für die Verwaltung von Key Protect-Ressourcen könnten bewährte Verfahren unterstützen.
| Befehl | Status v0.8 | Beschreibung |
|---|---|---|
| kp keys | Schlüssel auflisten, die in Ihrer Key Protect-Instanz verfügbar sind | |
| Kp-Schlüsselringe | Listet die Schlüsselringe auf, die der kp-Instanz zugeordnet sind. | |
| kp region-set | Anderen regionalen Endpunkt als Ziel angeben | |
| kp registrations | Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen auflisten | |
| kp-kmip | Erstellen und verwalten Sie KMIP-Adapter und zugehörige Ressourcen. | |
| kp-Krypto-Einheit | Verwalten von Kryptoeinheiten | |
| kp-Krypto-Einheiten | Liste der einer Instanz zugewiesenen Kryptoeinheiten |
Schlüsselaliasnamen können als Kennungen für Methoden verwendet werden, wie in Beispielen für key create, key disable und überall dort, wo 'Key ID or Alias' hier unterstützt wird, dargestellt.
Hilfe anzeigen
Dieser Abschnitt enthält Beispiele für Hilfeinformationen von kp.
ibmcloud kp -hibmcloud kp import-token -hibmcloud kp key -hibmcloud kp keys -h
Die Befehle kp import-token und kp key verfügen über Unterbefehle. In den folgenden Beispielen werden Hilfeinformationen zu einigen Unterbefehlen angezeigt.
ibmcloud kp import-token create -hibmcloud kp key delete -h
kp import-token create
Importtoken erstellen zum Verschlüsseln und Importieren eines Rootschlüssels in die Key Protect-Instanz verhindert. Das Importtoken läuft standardmäßig nach 10 Minuten (600 Sekunden) ab.
ibmcloud kp import-token create
-i, --instance-id INSTANCE_ID
[-e, --expiration EXPIRATION_TIME_SECONDS]
[-m, --max-retrievals MAX_RETRIEVALS]
Beispiel
In diesem Beispiel wird ein Importtoken erstellt. Das Importtoken besteht aus einem Element nonce und einem Element public key.
Nonce ist ein beliebiger Zahlenwert, der in einer kryptografischen Datenübertragung nur einmal verwendet werden kann.
# create an import token that expires in 5 minutes and allows 3 retrievals
$ ibmcloud kp import-token create --expiration 300 --max-retrievals 3
Created Expires Max Retrievals Remaining Retrievals
2020-05-04 19:12:07 +0000 UTC 2020-05-04 19:17:07 +0000 UTC 3 3
# show the created token
$ ibmcloud kp import-token show
{
"nonce": "8rf2ldP/zWm1Tjrb",
"payload":
"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo="
}
Erforderliche Parameter
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-e, --expirationGeben Sie eine Ablaufzeit (in Sekunden) für ein Importtoken an. Mit diesem Wert wird festgelegt, wie lange das Importtoken und der zugehörige öffentliche Schlüssel für Operationen gültig bleiben.
Der Mindestwert ist
300Sekunden (5 Minuten), der Maximalwert86400Sekunden (24 Stunden). Der Standardwert ist600Sekunden (10 Minuten). -
-m, --max-retrievalsLegen Sie den Nutzungszähler für das Importtoken fest. Mit diesem Wert wird festgelegt, wie häufig das Importtoken innerhalb seiner Ablaufzeit abgerufen werden kann, bevor es nicht mehr zugänglich ist. Der Standardwert ist
1.
kp import-token key-encrypt
Verschlüsseln Sie das Schlüsselmaterial, das Sie in Key Protect importieren wollen, indem Sie den öffentlichen Schlüssel verwenden, der Ihrer Key Protect-Instanz zugeordnet ist.
Geben Sie dann den abgerufenen verschlüsselten Schlüssel an, wenn Sie ibmcloud kp key create um den Schlüssel in den Dienst zu importieren.
ibmcloud kp import-token key-encrypt
-i, --instance-id INSTANCE_ID
-k, --key KEY_MATERIAL
-p, --pubkey PUBLIC_KEY
[-a, --hash HASH_ALGORITHM]
Beispiel
In diesem Beispiel wird eine „ key material “-Datei mit dem öffentlichen Schlüssel verschlüsselt, der von
kp import-token create.
# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')
# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY
Encrypted Key
Ela33aTdDiKVUNryLeM/xwUEaKWvzY+u ...<redacted>... Asv7bZxvyZn9KNU=
Erforderliche Parameter
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-k, --keyDie mit einer Base64-Codierung verschlüsselten Schlüsselinformationen, die Sie im Service speichern und verwalten.
-p, --pubkeyDer öffentliche Verschlüsselungsschlüssel mit Base64-Codierung, der von Key Protect verteilt wurde. Verwenden Sie zum Erstellen eines neuen öffentlichen Schlüssels den Befehl
ibmcloud kp import-token create. Verwenden Sie zum Abrufen eines öffentlichen Schlüssels den Befehlibmcloud kp import-token show.
Optionale Parameter
-
-a, --hashDer für das Wrapping des Schlüssels verwendete Hashalgorithmus. SHA1 und SHA256 werden unterstützt. Der Standardwert ist SHA256. SHA1 wird nur von HPCS unterstützt.
Diese Option ermöglicht das Generieren eines verschlüsselten Schlüssels, der nur in einer Anforderung mit der HPCS-API verwendet werden kann. Verwenden Sie diese Option nicht zum Erstellen von Key Protect-Rootschlüsseln.
Hyper Protect Crypto Services (HPCS) ist ein dedizierter Schlüsselmanagementservice und ein Hardwaresicherheitsmodul (HSM). HPCS wird in Key Protect integriert, um Schlüssel zu generieren und zu verschlüsseln. Die Funktion KYOK (Keep Your Own Key) wird von HPCS ebenfalls aktiviert.
Anmerkungen
Weitere Informationen zu HPCS finden Sie unter Einführung in IBM Cloud Hyper Protect Crypto Services.
kp import-token nonce-encrypt
Verschlüsseln Sie die Nonce, die von Key Protect mit dem Schlüsselmaterial, das Sie in den Service importieren, verteilt wird.
Geben Sie dann die abgerufenen verschlüsselten Nonce-und IV-Werte an, wenn Sie
ibmcloud kp key create zum Importieren des Schlüssels.
ibmcloud kp import-token nonce-encrypt
-i, --instance-id INSTANCE_ID
-k, --key KEY_MATERIAL
-n, --nonce NONCE
[-c, --cbc]
Beispiel
In diesem Beispiel wird die nonce -Verschlüsselung mit dem key materialverschlüsselt.
Nonce ist ein beliebiger Zahlenwert, der in einer kryptografischen Datenübertragung nur einmal verwendet werden kann.
# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')
# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE
Encrypted Nonce IV
mWQad1RHdWoFXFw/D9h8z43t/+0vIZc55VBBQg== 6nvOwUvQdowoD+3v
Erforderliche Parameter
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-k, --keyDie mit einer Base64-Codierung verschlüsselten Schlüsselinformationen, die Sie im Service speichern und verwalten.
-n, --nonceDer Nonce-Wert, der verwendet wird, um eine Anforderung zum Importieren eines Schlüssels zu überprüfen. Der Wert ist Base64-codiert. Verwenden Sie
ibmcloud kp import-token show, um eine Nonce abzurufen.
Optionale Parameter
-
-c, --cbcVerschlüsseln Sie den Nonce-Wert mit dem Verschlüsselungsalgorithmus AES-CBC. Dieser Algorithmus wird nur für HPCS unterstützt. Der Standardverschlüsselungsalgorithmus ist AES-GCM.
Diese Option ermöglicht das Generieren eines verschlüsselten Nonce-Werts, der nur in einer Anforderung mit der HPCS-API verwendet werden kann. Verwenden Sie diese Option nicht zum Erstellen von Key Protect-Rootschlüsseln.
Hyper Protect Crypto Services (HPCS) ist ein dedizierter Schlüsselmanagementservice und ein Hardwaresicherheitsmodul (HSM). HPCS wird in Key Protect integriert, um Schlüssel zu generieren und zu verschlüsseln. Die Funktion KYOK (Keep Your Own Key) wird von HPCS ebenfalls aktiviert.
Anmerkungen
Weitere Informationen zu HPCS finden Sie unter Einführung in IBM Cloud Hyper Protect Crypto Services.
kp import-token show
Importtoken abrufen, das Ihrer Key Protect- Instanz.
Das Importtoken enthält einen öffentlichen Verschlüsselungsschlüssel und eine generierte Zufallszahl (Nonce). Geben Sie den abgerufenen öffentlichen Schlüssel und den Nonce als Argumente für
ibmcloud kp import-token nonce-encrypt und
ibmcloud kp import-token key-encrypt.
ibmcloud kp import-token show
-i, --instance-id INSTANCE_ID
Beispiel
In diesem Beispiel wird ein Importtoken erstellt und die Ergebnisse werden angezeigt.
# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10
# show the created token
$ ibmcloud kp import-token show
{
"nonce": "8rf2ldP/zWm1Tjrb",
"payload":
"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo="
}
# extract the nonce that was created by the "kp import-token create" command
$ ibmcloud kp import-token show | jq -r '.["nonce"]'
8rf2ldP/zWm1Tjrb
# extract the public key that was created by the "kp import-token create" command
$ ibmcloud kp import-token show | jq -r '.["payload"]'
LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=
Erforderliche Parameter
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
kp instance policies
Abrufen von Details zu Instanzrichtlinien, wie allowed networks (public-and-private oder private-only), allowed IP Richtlinien, key create import Zugriff, Metriken und Löschen
mit doppelter Berechtigung (das Löschen eines Schlüssels erfordert die Berechtigung von zwei Benutzern).
ibmcloud kp instance policies
[-i, --instance-id INSTANCE_ID]
[-p, --allowed-ip]
[-a, --allowed-network]
[-d, --dual-auth-delete]
[-k, --key-create-import-access]
[-m, --metrics]
[-o, --output OUTPUT]
[-r, --rotation]
Beispiel
Das Beispiel zeigt, wie der Befehl und die Ergebnisse verwendet werden. Wenn der Service keine Ergebnisse für die Abfrage hat, wird ein leeres Array ([]) zurückgegeben.
# update the instance policy and set the allowed network to public-and-private
$ ibmcloud kp instance policy-update allowed-network --enable --network-type public-and-private
Updating instance policy...
OK
# list the instance policies
$ ibmcloud kp instance policies
Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By user id ...<redacted>...
Creation Date 2020-06-22T16:17:52Z
Last Updated 2020-06-22T16:17:52Z
Updated By user id ...<redacted>...
Policy Type allowedNetwork
Enabled true
Network Allowed public-and-private
# disable the instance allowed-network policy
$ ibmcloud kp instance policy-update allowed-network --disable
Updating instance policy...
OK
# list the instance policies - the policy exists and it's disabled
$ ibmcloud kp instance policies
Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By user id ...<redacted>...
Creation Date 2020-06-22T16:17:52Z
Last Updated 2020-06-22T16:20:08Z
Updated By user id ...<redacted>...
Policy Type allowedNetwork
Enabled false
Network Allowed public-and-private
# list the instance policies and show the output as JSON
$ ibmcloud kp instance policies --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-22T16:17:52Z",
"lastUpdated": "2020-06-22T16:20:08Z",
"updatedBy": "user id ...<redacted>...",
"policy_type": "allowedNetwork",
"policy_data": { "enabled": false, "attributes": { "allowed_network": "public-and-private" }
}
}
]
Erforderliche Parameter
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-p, --allowed-ipZeige die Instanzrichtlinie für „zugelassene IP-Adressen“ an.
-
-a, --allowed-networkZeigen Sie die Instanzrichtlinie für das "zulässige Netzwerk" an.
-
-d, --dual-auth-deleteZeige die Instanzrichtlinie für „
dual authorization delete“ an. -
-k, --key-create-import-accessRuft die Details der Importzugriffsrichtlinie für Schlüsselerstellung der Instanz ab.
-
-m, --metricsRuft die Details der Metrikrichtlinie der Instanz ab.
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
-r, --rotationRuft Details zur Rotationsrichtlinie der Instanz ab.
kp instance policy-update allowed-network
Aktualisieren Sie die Richtlinie für eine Instanz und legen Sie das zulässige Netzwerk wie folgt fest:
public-and-private oder private-only.
Die Richtlinie allowed-network blockiert für eine Instanz den Empfang von Anforderungen aus öffentlichen oder privaten Netzen.
Bei bereits vorhandenen Instanzen wird die Richtlinie für Netzzugriff durchgesetzt, nachdem sie festgelegt wurde.
Weitere Informationen finden Sie in Netzzugriffsrichtlinien verwalten.
ibmcloud kp instance policy-update allowed-network
-i, --instance-id INSTANCE_ID
-d, --disable OR
-e, --enable
-t, --network-type NETWORK_TYPE
Beispiel
In diesem Beispiel wird für die Richtlinie 'allowed network' die Einstellung 'public-and-private' festgelegt.
# update the instance policy and set the allowed network to public-and-private
$ ibmcloud kp instance policy-update allowed-network --enable --network-type public-and-private
Updating instance policy...
OK
# list the instance policies
$ ibmcloud kp instance policies
Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By user id ...<redacted>...
Creation Date 2020-06-22T16:17:52Z
Last Updated 2020-06-22T18:17:32Z
Updated By user id ...<redacted>...
Policy Type allowedNetwork
Enabled true
Network Allowed public-and-private
Erforderliche Parameter
-
-d, --disable -
-e, --enableInaktiviert oder aktiviert die Netzzugriffsrichtlinie. Eine Option ist erforderlich.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-t, --network-typeGibt den zulässigen Netzzugriffstyp an. Mögliche Optionen sind
public-and-privateoderprivate-only.
kp instance policy-update dual-auth-delete
Zum sicheren Löschen von Verschlüsselungsschlüsseln wird die Richtlinie dual-auth-delete verwendet. Wenn Sie einen Schlüssel löschen, werden der Schlüsselinhalt und die zugehörigen Daten zerstört. Alle Daten, die mit dem Schlüssel
verschlüsselt wurden, werden unzugänglich.
Für das Löschen eines Schlüssels, für den eine Richtlinie für doppelte Autorisierung gilt, ist die Autorisierung von zwei Benutzern erforderlich.
Für weitere Informationen siehe Verwendung doppelter Autorisierungsrichtlinien für das Löschen von Schlüsseln.
Anmerkungen
Das Löschen mit doppelter Autorisierung für eine Instanz unterscheidet sich vom Löschen mit doppelter Autorisierung für Schlüssel.
Nachdem die Richtlinie zum Löschen mit doppelter Autorisierung (dual-auth-delete) für einen Schlüssel aktiviert wurde, kann sie nicht mehr inaktiviert oder entfernt werden. Es dauert 7 Tage, bis die Richtlinie abläuft.
Für eine Instanz kann das Löschen mit doppelter Autorisierung jederzeit aktiviert oder inaktiviert werden.
Wenn ein Schlüssel über eine Richtlinie dual-auth-delete verfügt, bleibt die Richtlinie für den Schlüssel auch nach dem Ändern Instanzrichtlinie erhalten.
Wenn Sie die Instanzrichtlinie ändern, werden neue Schlüssel mit der Instanzrichtlinie durchgesetzt.
ibmcloud kp instance policy-update dual-auth-delete
-i, --instance-id INSTANCE_ID
-d, --disable OR
-e, --enable
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp instance policy-update dual-auth-delete.
Beispiel 1
In diesem Beispiel wird die Richtlinie zum Löschen mit doppelter Autorisierung aktiviert.
# enable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --enable
Updating instance policy...
OK
# list the instance policies
$ ibmcloud kp instance policies --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-22T18:45:14Z",
"lastUpdated": "2020-06-22T18:45:14Z",
"updatedBy": "user id ...<redacted>...",
"policy_type": "dualAuthDelete",
"policy_data": { "enabled": true
}
}
]
# disable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --disable
Updating instance policy...
OK
# list the instance policies
$ ibmcloud kp instance policies --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-22T18:45:14Z",
"lastUpdated": "2020-06-22T18:51:33Z",
"updatedBy": "user id ...<redacted>...",
"policy_type": "dualAuthDelete",
"policy_data": { "enabled": false
}
}
]
Beispiel 2
In diesem Beispiel wird die Richtlinie zum Löschen mit doppelter Autorisierung aktiviert und ein neuer Schlüssel erstellt, um zu zeigen, dass der neue Schlüssel die Instanzrichtlinie übernimmt.
Wenn die Richtlinie für doppelte Autorisierung für eine Instanz inaktiviert wird, bleibt die Richtlinie für die vorhandenen Schlüssel unverändert. Die Instanzrichtlinie wird auf neue Schlüssel angewendet, die nach der Aktualisierung der Richtlinie erstellt werden.
# enable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --enable
Updating instance policy...
OK
# create a new key
$ ibmcloud kp key create my-protected-key
Creating key: 'my-protected-key', in instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
Key ID Key Name
6a8a129b-0cd4-4667-ba57-b355a125a7ca my-protected-key
# list the policies for the key - dual-auth-delete is
# enabled because the key inherits the instance policy
$ ibmcloud kp key policies 6a8a129b-0cd4-4667-ba57-b355a125a7ca --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-22T19:13:00Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
"lastUpdateDate": "2020-06-22T19:13:00Z",
"updatedBy": "user id ...<redacted>...",
"dualAuthDelete": { "enabled": true
}
}
]
# attempt to delete the key - this fails
$ ibmcloud kp key delete 6a8a129b-0cd4-4667-ba57-b355a125a7ca
Deleting key: 6a8a129b-0cd4-4667-ba57-b355a125a7ca, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
correlation_id='8ad33eb2-7bbf-4b7a-a02e-221959920342',
msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted. Please see "reasons" for more details.',
reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
# disable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --disable
Updating instance policy...
OK
# attempt to delete the key - this fails because the key policy
# does not change when the instance policy is updated
$ ibmcloud kp key delete 6a8a129b-0cd4-4667-ba57-b355a125a7ca
Deleting key: 6a8a129b-0cd4-4667-ba57-b355a125a7ca, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
correlation_id='cbc0d18b-a816-45ab-af6a-b8e18dc3e628',
msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted. Please see "reasons" for more details.',
reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
Erforderliche Parameter
-
-d, --disable -
-e, --enableRichtlinie für doppelte Autorisierung inaktivieren oder inaktivieren. Eine Option ist erforderlich.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
KP-Schlüsselalias-Erstellen
Erstellt einen Alias für einen Schlüssel und zeigt die Ausgabe im JSON-Format an. Aliasnamen können als Referenz in Methoden verwendet werden, die einen Schlüssel akzeptieren ID. Jeder Alias ist nur innerhalb der jeweiligen Instanz
eindeutig und wird nicht dienstübergreifend im „ Key Protect “-Dienst reserviert. Jeder Schlüssel kann bis zu fünf Aliasnamen haben. Die Anzahl der Aliasnamen pro Instanz ist nicht begrenzt. Die Länge des Aliasnamens kann zwischen 2 und 90
Zeichen einschließlich liegen.
Ein Aliasname muss alphanumerisch sein und darf keine Leerzeichen oder Sonderzeichen außer '-' oder ' _' enthalten. Außerdem darf der Aliasname keine UUID der Version 4 sein und darf kein Key Protect reservierter Name sein: allowed_ip,
key, keys, metadata, policy, policies, registration, registrations, ring, rings, rotate, wrap, unwrap,
rewrap, version, versions.
ibmcloud kp key alias-create KEY_ID -a KEY_ALIAS
-i, --instance-id INSTANCE_ID
-a, --alias KEY_ALIAS
[-o, --output OUTPUT]
Beispiele
Dies ist ein Beispiel für kp key alias-create.
Beispiel
Erstellen eines Schlüsselalias.
# create a key alias
$ ibmcloud kp key alias-create 24203f96-b134-440e-981a-a24f2d432256 my-alias
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Alias
24203f96-b134-440e-981a-a24f2d432256 my-alias
Erforderliche Parameter
-
KEY_IDDie ID des Schlüssels, den Sie ändern wollen. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
-
KEY_ALIASDer Aliasname oder die alternative Kennung des Schlüssels, den Sie ändern wollen. Die ID muss alphanumerisch sein und darf keine Leerzeichen oder Sonderzeichen außer '-' oder '_' enthalten und darf keine UUID der Version 4 sein.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json.
kp key cancel-delete
Für einen Schlüssel mit einer Richtlinie dual-auth-delete ist die Autorisierung durch zwei Benutzer mit Verwaltungsaufgaben erforderlich, um den Schlüssel zu löschen.
Dieser Befehl (kp key cancel-delete) bricht eine vorherige Berechtigung ab oder entfernt sie.
Der Befehl kp key schedule-delete ist die "Autorisierung" zum Löschen des Schlüssels.
Führen Sie den folgenden Prozess aus, um einen Schlüssel mit einer Richtlinie dual-auth-delete zu löschen.
-
Erstellen Sie einen Schlüssel und aktivieren Sie die Richtlinie
dual-auth-delete. -
Benutzer 1 plant (autorisiert) eine Schlüssellöschung mit dem
kp key schedule-delete-Befehl -
Benutzer 2 plant (autorisiert) das Löschen eines Schlüssels.
-
Der Schlüssel wird gelöscht, nachdem die zweite Aktion
schedule-deleteausgeführt wurde, die von der Benutzerschnittstelle, API und Befehlszeilenschnittstelle unterstützt wird. -
Wenn innerhalb von 7 Tagen keine zweite Autorisierung erfolgt, wird der Schlüssel in den Standardstatus zurückgesetzt.
Die Richtlinie dual-auth-delete kann auf zwei Arten aktiviert werden:
- Durch Festlegen der Richtlinie für einen einzelnen Schlüssel mit dem Befehl
kp key policy-update dual-auth-delete - Richtlinie für die Instanz festlegen mit
kp instance policy-update dual-auth-delete; alle Schlüssel, die nach der Aktivierung der Instanzrichtlinie erstellt werden, übernehmen die Instanzrichtlinieneinstellung
ibmcloud kp key cancel-delete KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
Beispiel
In diesem Beispiel wird das zuvor geplante Löschen eines Schlüssels abgebrochen.
# this key has a dual-auth-delete policy
$ ibmcloud kp key policies $KEY_ID --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-22T19:13:00Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
"lastUpdateDate": "2020-06-22T21:29:10Z",
"updatedBy": "user id ...<redacted>...",
"dualAuthDelete": { "enabled": true
}
}
]
# cancel a previously scheduled key delete
$ ibmcloud kp key cancel-delete $KEY_ID
Cancelling key for deletion...
OK
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie löschen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
kp key create
Rootschlüssel erstellen in der von Ihnen angegebenen Key Protect-Instanz oder eigenen Schlüssel importieren
Rootschlüssel müssen 16, 24 oder 32 Byte lang sein (dies entspricht 128, 192 oder 256 Bit).
ibmcloud kp key create KEY_NAME
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
[-k, --key-material KEY_MATERIAL]
[-n, --encrypted-nonce NONCE]
[-o, --output OUTPUT]
[-s, --standard-key]
[-v, --iv IV]
[-D, --description DESCRIPTION]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key create.
Beispiel 1
Rootschlüssel erstellen.
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
24203f96-b134-440e-981a-a24f2d432256 my-root-key
Beispiel 2
Rootschlüssel erstellen und JSON-Ausgabe anzeigen
# create a root key
$ ibmcloud kp key create my-root-key --output json
{
"id": "24203f96-b134-440e-981a-a24f2d432256",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:24203f96-b134-440e-981a-a24f2d432256"
}
Beispiel 3
Rootschlüssel aus einem Base64-codierten Wert erstellen
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
# create a root key from a base64-encoded value
$ ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL
Creating key: 'my-base64-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
5f9eef2d-53b4-42e8-8b56-c2970255210a my-base64-root-key
Beispiel 4
Rootschlüssel mithilfe eines Importtokens erstellen
# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')
# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')
# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY
Encrypted Key
qT1pyiS1Sivbmmt4doTtfZC4XuLazk7u ...<redacted>... +a/6EqeAamo/9vo=
# capture the encrypted key material
$ ENCRYPTED_KEY=qT1pyiS1Sivbmmt4doTtfZC4XuLazk7u ...<redacted>... +a/6EqeAamo/9vo=
# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE
Encrypted Nonce IV
fR8uRvbrKIm9y/LCq9p6pwFBXbF864q/bw5meQ== efQgA8xBeyuBy39D
# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=fR8uRvbrKIm9y/LCq9p6pwFBXbF864q/bw5meQ==
$ IV=efQgA8xBeyuBy39D
# create a root key using an import token, provide an encrypted key, nonce, and initialization vector (IV)
$ ibmcloud kp key create my-imported-root-key -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV
Creating key: 'my-imported-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
4241a9b3-0ee0-4cfd-b0f3-fd80505fb675 my-imported-root-key
Beispiel 5
Standardschlüssel erstellen
# create a standard key
$ ibmcloud kp key create my-standard-key -s
Creating key: 'my-standard-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
12d3f3a4-aea5-4832-8339-fa14dbffd935 my-standard-key
Beispiel 6
Standardschlüssel erstellen, der als Vault für Berechtigungsnachweise verwendet wird
Jede Zeichenfolge mit Base64-Codierung kann als Standardschlüssel importiert werden. Dieses Beispiel zeigt, wie Berechtigungsnachweise gespeichert werden, nicht nur Verschlüsselungsschlüssel, in Key Protect.
Standardschlüssel können bis zu 7.500 Byte groß sein, bevor die Base64-Codierung erfolgt.
# create a file with your credentials
$ cat credentials.json
{
"host": "localhost",
"database": "dev-backup",
"username": "my-username",
"password": "my-password"
}
# encode the credentials (or any string) to a base64 string
$ ENCODED=$(base64 -i credentials.json)
$ echo $ENCODED
ewoJImhvc3QiOiAibG9jYWxob3N0IiwK...<redacted>...cGFzc3dvcmQiCn0K
# create a new key that contains the base64-encoded credentials
$ ibmcloud kp key create credentials-key -i $KP_INSTANCE_ID --key-material $ENCODED --standard-key --output json
# OR... CAPTURE THE KEY_ID
$ KEY_ID=$(ibmcloud kp key create credentials-key -i $KP_INSTANCE_ID --key-material $ENCODED --standard-key --output json | jq -r '.["id"]')
{
"id": "8480e26f-3add-4fff-bca7-8cf908894b7c",
"name": "credentials-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": true,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:8480e26f-3add-4fff-bca7-8cf908894b7c",
"deleted": false
}
# retrieve the base64-encoded payload
$ ibmcloud kp key show $KEY_ID --output json
# OR... CAPTURE THE PAYLOAD
$ PAYLOAD=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["payload"]')
{
"id": "8480e26f-3add-4fff-bca7-8cf908894b7c",
"name": "credentials-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-08-18T16:13:08Z",
"lastUpdateDate": "2020-08-18T16:13:08Z",
"extractable": true,
"payload": "ewoJImhvc3QiOiAibG9jYWxob3N0IiwKCSJkYXRhYmFzZSI6ICJkZXYtYmFja3VwIiwKCSJ1c2VybmFtZSI6ICJteS11c2VybmFtZSIsCgkicGFzc3dvcmQiOiAibXktcGFzc3dvcmQiCn0=",
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:8480e26f-3add-4fff-bca7-8cf908894b7c",
"deleted": false,
"dualAuthDelete": {
"enabled": false
}
}
# decode the payload to get the original string (credentials)
$ echo $PAYLOAD | base64 -d
{
"host": "localhost",
"database": "dev-backup",
"username": "my-username",
"password": "my-password"
}
Beispiel 7
Erstellen Sie einen Rootschlüssel mit einem Alias und verwenden Sie diesen Alias, um den Schlüssel zum Anzeigen der Schlüsseldetails anzugeben.
# create a root key with an alias
$ ibmcloud kp key create root-key-with-alias -a example-alias --output json
{
"id": "b3660416-4186-4587-b528-484886a4731b",
"name": "root-key-with-alias",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"aliases": [
"example-alias"
],
"keyRingID": "default",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:b3660416-4186-4587-b528-484886a4731b",
"deleted": false
}
# show key details using the alias as identifier
$ ibmcloud kp key show example-alias --output json
{
"id": "b3660416-4186-4587-b528-484886a4731b",
"name": "root-key-with-alias",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2022-06-09T21:21:55Z",
"lastUpdateDate": "2022-06-09T21:21:55Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2022-06-09T21:21:55Z"
},
"aliases": [
"example-alias"
],
"keyRingID": "default",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:b3660416-4186-4587-b528-484886a4731b",
"deleted": false,
"dualAuthDelete": {
"enabled": false
}
}
Beispiel 8
Fügen Sie einem Schlüssel eine Beschreibung hinzu. Beispiel: Eine kurze Phrase, mit der der beabsichtigte Zweck des Schlüssels beschrieben wird.
ibmcloud kp key create KEY_NAME -i 40f2a13c-780e-4641-bea5-e166e5bb5a9f -D ""description of the key""
Erforderliche Parameter
-
KEY_NAMEEine eindeutige, lesbare Kennung, die Ihrem Schlüssel zugeordnet werden kann.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-k, --key-materialWenn Sie einen Schlüssel generiert haben, sind dies die Base64-codierten Schlüsselinformationen, die Sie im Service speichern und verwalten.
Rootschlüssel müssen 16, 24 oder 32 Byte lang sein (dies entspricht 128, 192 oder 256 Bit). Der Schlüssel muss base64-codiert sein.
Standardschlüssel können bis zu 7.500 Byte groß sein. Der Schlüssel muss base64-codiert sein.
Wenn Sie mithilfe eines Importtokens einen Schlüssel erstellen, ist dies der verschlüsselte Schlüssel aus dem Prozess
kp import-token key-encrypt.Wenn ein neuer Schlüssel generiert werden soll, geben Sie den Parameter
-k, --key-materialnicht an. -
-n, --encrypted-nonceWird mit Importtoken verwendet. Der verschlüsselte Wert der generierten Zufallszahl (Nonce-Wert), von dem Ihre Anforderung zum Importieren des Schlüssels in Key Protect überprüft wird. Dieser Wert muss mithilfe der Schlüsselinformationen verschlüsselt werden, die Sie in den Service importieren. Siehe
ibmcloud kp import-token --help.Verwenden Sie
ibmcloud kp import-token show, um eine Nonce abzurufen. Verschlüsseln Sie den Wert anschließend durch Ausführen des Befehlsibmcloud kp import-token nonce-encrypt. -
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
-s, --standard-keyLegen Sie den Parameter nur fest, wenn Sie einen Standardschlüssel erstellen möchten. Wenn Sie einen Rootschlüssel erstellen möchten, geben Sie den Parameter
--standard-keynicht an. -
-v, --ivWird mit Importtoken verwendet. Der Initialisierungsvektor (IV), der generiert wird, wenn Sie eine generierte Zufallszahl (Nonce) verschlüsseln. Der IV-Wert ist erforderlich, um den verschlüsselten Nonce-Wert zu entschlüsseln, den Sie angeben, wenn Sie einen Schlüsselimport in den Service anfordern.
Um einen IV zu generieren, verschlüsseln Sie den Nonce-Wert durch Ausführen des Befehls
ibmcloud kp import-token nonce-encrypt. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
-
-D, --descriptionErmöglicht das Hinzufügen einer Beschreibung zum Schlüssel. Beispiel: Eine kurze Phrase, mit der der beabsichtigte Zweck des Schlüssels beschrieben wird.
kp-Schlüssel create-key-with-policy-overrides
Erstellen Sie einen Schlüssel mit Richtlinien nur für den benannten Schlüssel, der alle anwendbaren Instanzrichtlinien überschreibt.
ibmcloud kp key create-key-with-policy-overrides KEY_NAME
-i, --instance-id INSTANCE_ID
[-a, --aliases ALIAS]
[-d, --dual-auth-delete-policy-enabled KEY_RING_ID]
[--key-ring KEY_RING_ID]
[-k, --key-material KEY_MATERIAL]
[-m, --rotation-interval-month VALUE]
[-n, --encrypted-nonce NONCE]
[-o, --output OUTPUT]
[-s, --standard-key]
[-v, --iv IV]
Beispiel
Erstellen Sie einen Rootschlüssel, der eine Rotationsrichtlinie mit einem Intervall von 2 Monaten ermöglicht (jeder "Monat" wird mit 30 Tagen bewertet, was zu einem Rotationsintervall von 60 Tagen führt).
% ibmcloud kp key create-key-with-policy-overrides test-key -m 2 -r
Creating key with policy overrides: 'test-key', in instance: '47377f07-8721-2O47-f396-ef1982c1e96e'...
OK
Key ID Key Name
076df396-4c90-e008-bf20-f1bb672d465b test-key
# List policies
% ibmcloud kp key policies 076df396-4c90-e008-bf20-f1bb672d465b
Retrieving policy details for key ID: 076df396-4c90-e008-bf20-f1bb672d465b...
OK
Created By IBMid-xxxxnnnnnxxx
Creation Date 2022-10-27T17:48:20Z
Last Updated 2022-10-27T17:48:20Z
Updated By IBMid-xxxxnnnnnxxx
Policy Type Rotation
Interval 2
Enabled true
Erforderliche Parameter
-
KEY_NAMEEine eindeutige, lesbare Kennung, die Ihrem Schlüssel zugeordnet werden kann.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-a, --aliasesAlphanumerische lesbare Aliasnamen mit 2-90 Zeichen, die Ihrem Schlüssel zugeordnet sind. Der Aliasname darf keine Leerzeichen oder Sonderzeichen außer Unterstreichungszeichen und Gedankenstrichen enthalten. Pro Schlüssel sind maximal 5 Aliasnamen zulässig.
-
-d, --dual-auth-delete-policy-enabled
Aktiviert die Löschrichtlinie mit doppelter Authentifizierung für einen Schlüssel.
-
-k, --key-materialWenn Sie einen Schlüssel generiert haben, sind dies die Base64-codierten Schlüsselinformationen, die Sie im Service speichern und verwalten.
Rootschlüssel müssen 16, 24 oder 32 Byte lang sein (dies entspricht 128, 192 oder 256 Bit). Der Schlüssel muss base64-codiert sein.
Standardschlüssel können bis zu 7.500 Byte lang sein. Der Schlüssel muss base64-codiert sein.
Wenn Sie mithilfe eines Importtokens einen Schlüssel erstellen, ist dies der verschlüsselte Schlüssel aus dem Prozess
kp import-token key-encrypt.Wenn ein neuer Schlüssel generiert werden soll, geben Sie den Parameter
-k, --key-materialnicht an. -
-n, --encrypted-nonceWird mit Importtoken verwendet. Der verschlüsselte Wert der generierten Zufallszahl (Nonce-Wert), von dem Ihre Anforderung zum Importieren des Schlüssels in Key Protect überprüft wird. Dieser Wert muss mithilfe der Schlüsselinformationen verschlüsselt werden, die Sie in den Service importieren. Siehe
ibmcloud kp import-token --help.Verwenden Sie
ibmcloud kp import-token show, um eine Nonce abzurufen. Verschlüsseln Sie den Wert anschließend durch Ausführen des Befehlsibmcloud kp import-token nonce-encrypt. -
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
-m, --rotation-interval-month
Geben Sie das Rotationszeitintervall (in Monaten) für einen Schlüssel an. Der Standardwert ist -1.
-
-s, --standard-keyLegen Sie den Parameter nur fest, wenn Sie einen Standardschlüssel erstellen möchten. Wenn Sie einen Rootschlüssel erstellen möchten, geben Sie den Parameter
--standard-keynicht an. -
-v, --ivWird mit Importtoken verwendet. Der Initialisierungsvektor (IV), der generiert wird, wenn Sie eine generierte Zufallszahl (Nonce) verschlüsseln. Der IV-Wert ist erforderlich, um den verschlüsselten Nonce-Wert zu entschlüsseln, den Sie angeben, wenn Sie einen Schlüsselimport in den Service anfordern.
Um einen IV zu generieren, verschlüsseln Sie den Nonce-Wert durch Ausführen des Befehls
ibmcloud kp import-token nonce-encrypt. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key delete
Löschen Sie einen Schlüssel, der im Key Protect-Service gespeichert ist.
ibmcloud kp key delete KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
[-f, --force]
[-o, --output OUTPUT]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key delete.
Beispiel 1
Rootschlüssel löschen
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
8635b804-9966-4918-a16b-d561fdbf181f my-root-key
# show key details
$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f
Grabbing info for key id: 8635b804-9966-4918-a16b-d561fdbf181f...
OK
Key ID Key Name Description Creation Date Expiration Date
8635b804-9966-4918-a16b-d561fdbf181f my-root-key 2020-05-05 19:58:02 +0000 UTC Key does not expire
# delete the key
$ ibmcloud kp key delete 8635b804-9966-4918-a16b-d561fdbf181f
Deleting key: 8635b804-9966-4918-a16b-d561fdbf181f, from instance: 390086ac-76fa-4094-8cf3-c0829bd69526...
OK
Deleted Key
8635b804-9966-4918-a16b-d561fdbf181f
Beispiel 2
Rootschlüssel löschen und JSON-Ausgabe anzeigen
# create a root key
$ ibmcloud kp key create my-root-key --output json
{
"id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb145:390086ac-76fa-4094-8cf3-c0829bd69526:key:9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}
# show key details
$ ibmcloud kp key show 9cca88c9-019e-4f0a-9e76-8e657c6b9720 --output json
{
"id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-05-05T20:03:00Z",
"lastUpdateDate": "2020-05-05T20:03:00Z",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb145:390086ac-76fa-4094-8cf3-c0829bd69526:key:9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}
# delete the key
$ ibmcloud kp key delete 9cca88c9-019e-4f0a-9e76-8e657c6b9720 --output json
{
"id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}
Beispiel 3
Rootschlüssel löschen, der in einer anderen Cloudressource registriert ist
# create a Cloud Object Storage (COS) instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1
$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global
# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=9d4353d8-6b85-4689-90dd-1ccfb4a275ab
# create a Key Management Service (KMS) instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1
$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south
# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=b0d84b32-09d0-4314-8049-da78e3b9ab6f
# create a policy for COS to read KMS; source is COS, target is KMS (Key Protect)
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
--source-service-instance-id $COS_INSTANCE_ID \
--target-service-instance-id $KP_INSTANCE_ID
# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=79375168-2d74-49df-98aa-3e727410fa71
# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json
{
"id": "52a9d772-8982-4620-bfb4-b070dd812a0c",
"name": "my-cos-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b0d84b32-09d0-4314-8049-da78e3b9ab6f:key:52a9d772-8982-4620-bfb4-b070dd812a0c"
}
# capture the KP root key id
$ MY_COS_KEY_ID=52a9d772-8982-4620-bfb4-b070dd812a0c
# create a COS bucket and set KP encryption
# must be done in the console user interface (UI) because
# there is no API or CLI support at this time
# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket
# view the KP registration; it's a result of creating the COS bucket
$ ibmcloud kp registrations --output json
[
{
"keyId": "52a9d772-8982-4620-bfb4-b070dd812a0c",
"resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:9d4353d8-6b85-4689-90dd-1ccfb4a275ab:bucket:my-cos-kms-bucket",
"createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:9d4353d8-6b85-4689-90dd-1ccfb4a275ab::",
"creationDate": "2020-06-15T20:41:23Z",
"lastUpdated": "2020-06-15T20:41:23Z",
"keyVersion": { "id": "52a9d772-8982-4620-bfb4-b070dd812a0c", "creationDate": "2020-06-15T20:36:46Z"
}
}
]
# delete the authorization policy between COS AND KMS - this breaks everything
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force
# delete the KP root key - this fails because the registration was not deleted
$ ibmcloud kp key delete $MY_COS_KEY_ID
Deleting key: 52a9d772-8982-4620-bfb4-b070dd812a0c, from instance: b0d84b32-09d0-4314-8049-da78e3b9ab6f...
FAILED
kp.Error:
correlation_id='c27b7948-4a1f-4cbd-8770-cb3616888e27',
msg='Conflict: Key could not be deleted. Please see "reasons" for more details.',
reasons='[PROTECTED_RESOURCE_ERR: Key is protecting one or more cloud resources -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/docs/key-protect?topic=key-protect-troubleshooting#unable-to-delete-keys]'
# delete the KP root key; use --force because the registration between COS and KMS still exists
$ ibmcloud kp key delete $MY_COS_KEY_ID --force --output json
{
"id": "52a9d772-8982-4620-bfb4-b070dd812a0c"
}
# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force
# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force
# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances
Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie löschen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-f, --forceDas Löschen eine Schlüssels erzwingen (ermöglicht das Löschen eines Schlüssels, für den eine 'Registrierung' besteht. Registrierungen sind Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen (z. B. Cloud Object Storage-Buckets oder Bereitstellungen von Clouddatenbanken).
Weitere Informationen finden Sie unter kp registrations.
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key disable
Der Befehl kp key disable inaktiviert einen Rootschlüssel und widerruft vorübergehend den Zugriff auf die zugehörigen Daten.
Als Administrator müssen Sie gegebenenfalls vorübergehend einen Rootschlüssel inaktivieren, wenn Sie bei Ihren Daten eine potenzielle Sicherheitslücke, ein Sicherheitsrisiko oder einen Verstoß gegen den Datenschutz vermuten.
Durch das Inaktivieren eines Rootschlüssels werden die zugehörigen Ver- und Entschlüsselungsoperationen ausgesetzt. Sobald feststeht, dass kein aktives Sicherheitsrisiko mehr besteht, können Sie den Zugriff auf Ihre Daten wiederherstellen, indem Sie den inaktivierten Rootschlüssel wieder aktivieren.
Wenn Sie einen zuvor aktivierten Rootschlüssel inaktivieren, wechselt der Schlüssel vom Schlüsselstatus Aktiv (Wert ist 1) in den Schlüsselstatus Ausgesetzt (Wert ist 2).
Zum Inaktivieren eines Rootschlüssels muss Ihnen eine Manager-Servicezugriffsrolle für die Instanz oder den Schlüssel zugewiesen sein. Informationen zur Zuordnung von IAM-Rollen zu Key Protect-Serviceaktionen entnehmen Sie Servicezugriffsrollen.
Wenn Sie einen integrierten Cloud-Service verwenden, der das Widerrufen des Zugriffs auf einen inaktivierten Rootschlüssel unterstützt, kann es bis zu 4 Stunden dauern, bis der Service den Zugriff auf die zugehörigen Daten des Rootschlüssels widerrufen hat.
Nachdem der Zugriff auf die zugehörigen Daten widerrufen wurde, wird ein entsprechendes disable event wird in der Weboberfläche von „ IBM Cloud Logs “ angezeigt. Das Ereignis disable event gibt an, dass der Schlüssel
widerrufen wurde (und jetzt inaktiviert ist) und der Schlüssel nicht für die Verschlüsselung und Entschlüsselung von Operationen verwendet werden kann.
ibmcloud kp key disable KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key disable.
Beispiel 1
Erstellen Sie einen Rootschlüssel, inaktivieren Sie den erstellten Schlüssel, überprüfen Sie den Schlüsselstatus (er muss den Wert 'Ausgesetzt' aufweisen), aktivieren Sie den Rootschlüssel und überprüfen Sie erneut den Schlüsselstatus (er muss den Wert 'Aktiv' aufweisen).
# create a root key
$ ibmcloud kp key create my-root-key --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-09T21:21:55Z",
"lastUpdateDate": "2020-06-09T21:21:55Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2020-06-09T21:21:55Z"
},
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
# disable the root key
$ ibmcloud kp key disable 264fadc3-7667-4b25-916e-5825fe70de0b
Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-09T21:21:55Z",
"lastUpdateDate": "2020-06-09T21:23:26Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2020-06-09T21:21:55Z"
},
"extractable": false,
"state": 2,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
Beispiel 2
Erstellen Sie einen Rootschlüssel, inaktivieren Sie den Schlüssel und versuchen Sie, den Rootschlüssel für das Wrapping eines anderen Schlüssels zu verwenden.
# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')
$ echo $KEY_ID
63d044d9-b38b-4803-85ef-ed9a1e5087c2
# disable the root key
$ ibmcloud kp key disable $KEY_ID
Disabling key: '63d044d9-b38b-4803-85ef-ed9a1e5087c2', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)
$ echo $PLAINTEXT
BNxtU9B4kXOZA45Cnyz3wOh4J77TakTXI1n2rj0ZiMc=
# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
# this should fail (the root key is disables)
$ ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json
FAILED
kp.Error:
correlation_id='c2edbdad-7e62-4690-8fcc-10515ade9913',
msg='Conflict: Action could not be performed on key. Please see "reasons" for more details.',
reasons='[KEY_ACTION_INVALID_STATE_ERR: Key is not in a valid state -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
Beispiel 3
Erstellen Sie einen Rootschlüssel mit einem Alias, verwenden Sie diesen Alias, um den zu inaktivierenden Schlüssel zu identifizieren, überprüfen Sie den Schlüsselstatus (ausgesetzt), aktivieren Sie dann den Rootschlüssel und überprüfen Sie den neuen Schlüsselstatus (aktiv).
# create a root key
$ ibmcloud kp key create root-key-with-alias -a example-alias-1 --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "root-key-with-alias",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"aliases": [
"example-alias"
],
"deleted": false,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
# show key details using the alias as identifier - a state of "1" is "active"
$ ibmcloud kp key show example-alias-1 --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "root-key-with-alias",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-09T21:21:55Z",
"lastUpdateDate": "2020-06-09T21:21:55Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2020-06-09T21:21:55Z"
},
"extractable": false,
"state": 1,
...
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
# disable the root key identified by alias
$ ibmcloud kp key disable example-alias-1
Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show example-alias-1 --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "root-key-with-alias",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-09T21:21:55Z",
"lastUpdateDate": "2020-06-09T21:23:26Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2020-06-09T21:21:55Z"
},
"extractable": false,
"state": 2,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie löschen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key enable
Wenn Sie einen Rootschlüssel aktivieren, der zuvor inaktiviert wurde, wechselt der Schlüssel vom Schlüsselstatus Ausgesetzt (Wert ist 2) in den Schlüsselstatus Aktiv (Wert ist 1). Durch diese Aktion werden die Ver- und Entschlüsselungsoperationen des Schlüssels wieder eingesetzt.
Wenn Sie einen integrierten Cloud-Service verwenden, der die Wiederherstellung des Zugriffs auf einen inaktivierten Rootschlüssel unterstützt, kann der Service bis zu maximal 4 Stunden dauern, bevor der Zugriff auf die zugeordneten Daten des Stammschlüssels wiederhergestellt wird.
Nachdem der Zugriff auf die zugehörigen Daten wiederhergestellt wurde, wird eine entsprechende enable event wird in der Weboberfläche von „ IBM Cloud Logs “ angezeigt. Das Ereignis enable event gibt an, dass der Schlüssel
wiederhergestellt wurde (und jetzt aktiviert ist). Der Schlüssel kann zum Verschlüsseln und Entschlüsseln von Operationen verwendet werden, wie z. B. Wrapping, Unwrap und Rewrap.
ibmcloud kp key enable <KEY_ID_OR_ALIAS> -i <INSTANCE_ID> [ --key-ring KEY_RING_ID]
Beispiele
Dies ist ein Beispiel für kp key enable.
# create a root key
$ ibmcloud kp key create my-root-key --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-09T21:21:55Z",
"lastUpdateDate": "2020-06-09T21:21:55Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2020-06-09T21:21:55Z"
},
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
# disable the root key
$ ibmcloud kp key disable 264fadc3-7667-4b25-916e-5825fe70de0b
Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-09T21:21:55Z",
"lastUpdateDate": "2020-06-09T21:23:26Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2020-06-09T21:21:55Z"
},
"extractable": false,
"state": 2,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
# enable the key
$ ibmcloud kp key enable 264fadc3-7667-4b25-916e-5825fe70de0b
Enabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json
{
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-09T21:21:55Z",
"lastUpdateDate": "2020-06-09T21:31:44Z",
"keyVersion": {
"id": "264fadc3-7667-4b25-916e-5825fe70de0b",
"creationDate": "2020-06-09T21:21:55Z"
},
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie löschen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key policies
Rufen Sie die Details zu einer Schlüsselrichtlinie ab, wie z. B. das automatische Rotationsintervall des Schlüssels.
ibmcloud kp key policies KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
[-d, --dual-auth]
[-o, --output OUTPUT]
[-r, --rotation]
Beispiel
In diesem Beispiel werden die Richtlinien für einen Rootschlüssel aufgelistet.
Die Richtlinien sind dual authorization delete und rotation.
# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')
$ echo $KEY_ID
c024c2b3-2093-46e5-aabb-fdf8cbc14e44
# show key details
$ ibmcloud kp key show $KEY_ID --output json
{
"id": "c024c2b3-2093-46e5-aabb-fdf8cbc14e44",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-18T20:34:39Z",
"lastUpdateDate": "2020-06-18T20:34:39Z",
"keyVersion": {
"id": "c024c2b3-2093-46e5-aabb-fdf8cbc14e44",
"creationDate": "2020-06-18T20:34:39Z"
},
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:c024c2b3-2093-46e5-aabb-fdf8cbc14e44"
}
# update the policy and rotate the key every 2 months
$ ibmcloud kp key policy-update rotation $KEY_ID -m 2 --output json
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-18T20:35:41Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:06a40fd6-6fd7-460a-87d7-8388fc1be057",
"lastUpdateDate": "2020-06-18T20:35:41Z",
"updatedBy": "user id ...<redacted>...",
"rotation": {
"interval_month": 2
}
}
# list the policies
$ ibmcloud kp key policies $KEY_ID --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-18T20:35:41Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:06a40fd6-6fd7-460a-87d7-8388fc1be057",
"lastUpdateDate": "2020-06-18T20:35:41Z",
"updatedBy": "user id ...<redacted>...",
"rotation": { "interval_month": 2
}
}
]
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie abfragen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-d, --dual-authZeigen Sie Richtlinien an, die eine Richtlinie
dual-auth-deleteaufweisen. -
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
-r, --rotationZeigen Sie Richtlinien an, die eine Richtlinie
rotationaufweisen. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key policy-update dual-auth-delete
Sie können Key Protect zum sicheren Löschen von Verschlüsselungsschlüsseln mithilfe eines Prozesses der doppelten Autorisierung verwenden. Wenn Sie einen Schlüssel löschen, werden der Schlüsselinhalt und die zugehörigen Daten zerstört. Alle Daten, die mit dem Schlüssel verschlüsselt wurden, werden unzugänglich.
Für das Löschen eines Schlüssels, für den eine Richtlinie für doppelte Autorisierung gilt, ist eine Autorisierung von zwei Benutzern erforderlich. Mithilfe der Key Protect-API können Sie die erste Autorisierung bereitstellen, indem Sie den Schlüssel zum Löschen festlegen. Anschließend erteilt ein anderer Benutzer über die GUI oder die API eine zweite Autorisierung, um den Schlüssel zu löschen.
ibmcloud kp key policy-update dual-auth-delete KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
-e, --enable
[--key-ring KEY_RING_ID]
[-o, --output OUTPUT]
Beispiel
In diesem Beispiel wird die Richtlinie zum Löschen mit doppelter Autorisierung aktiviert.
# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')
$ echo $KEY_ID
d887bfe8-5166-4dad-af32-7e3055ca1873
# show key details
$ ibmcloud kp key show $KEY_ID --output json
{
"id": "d887bfe8-5166-4dad-af32-7e3055ca1873",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-19T16:07:50Z",
"lastUpdateDate": "2020-06-19T16:07:50Z",
"keyVersion": {
"id": "d887bfe8-5166-4dad-af32-7e3055ca1873",
"creationDate": "2020-06-19T16:07:50Z"
},
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:d887bfe8-5166-4dad-af32-7e3055ca1873"
}
# enable the dual authorization policy
$ ibmcloud kp key policy-update dual-auth-delete $KEY_ID --enable --output json
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-19T16:08:59Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:0aab763d-b650-43a2-86ad-bdfe2c35c94c",
"lastUpdateDate": "2020-06-19T16:08:59Z",
"updatedBy": "user id ...<redacted>...",
"dualAuthDelete": {
"enabled": true
}
}
# list the policies
$ ibmcloud kp key policies $KEY_ID --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-19T16:08:59Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:0aab763d-b650-43a2-86ad-bdfe2c35c94c",
"lastUpdateDate": "2020-06-19T16:08:59Z",
"updatedBy": "user id ...<redacted>...",
"dualAuthDelete": { "enabled": true
}
}
]
# this should fail (the key has a dual authorization policy)
$ ibmcloud kp key delete $KEY_ID_OR_ALIAS
Deleting key: d887bfe8-5166-4dad-af32-7e3055ca1873, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
correlation_id='fe0db627-1726-4827-a9d2-c21d728e1c92',
msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted.
Please see "reasons" for more details.',
reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie abfragen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
-
-e, --enableNachdem die Richtlinie 'dual-auth-delete' aktiviert wurde, kann sie nicht mehr inaktiviert werden. Das Löschen eines Schlüssels ist nur möglich, wenn zwei Autorisierungen vorliegen. Der Löschvorgang muss innerhalb von 7 Tagen abgeschlossen sein. Danach läuft die Richtlinie für doppelte Autorisierung automatisch ab, d. h. der Schlüssel kann von jedem Benutzer mit entsprechender Berechtigung (ohne doppelte Autorisierung) gelöscht werden.
Wenn die Richtlinie für doppelte Autorisierung versehentlich aktiviert wurde und der Schlüssel gelöscht werden soll, können Sie den Schlüssel
disable(mit dem Befehlkp key disable) und abwarten, bis die Richtlinie für doppelte Autorisierung nach 7 Tagen abläuft. Nachdem die Richtlinie abgelaufen ist, können Sie den Schlüssel löschen.Es ist nicht möglich, die Key Protect-Instanz zu löschen, solange aktive Schlüssel vorhanden sind. Ein Schlüssel mit einer Richtlinie für doppelte Autorisierung ist ein aktiver Schlüssel.
Optionale Parameter
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key policy-update rotation
Wenn Sie eine Richtlinie für automatische Schlüsselrotation für einen Rootschlüssel festlegen, verkürzen Sie den Lebenszyklus des Schlüssels in regelmäßigen Intervallen und begrenzen die Menge an Informationen, die durch diesen Schlüssel geschützt werden. Benutzer können auch die Schlüsselrotationsrichtlinie für einen Schlüssel aktivieren oder inaktivieren.
Sie können nur eine Rotationsrichtlinie für Rootschlüssel erstellen, die generiert werden in Key Protect. Wenn der Rootschlüssel ursprünglich importiert wurde, müssen Sie neue verschlüsselte Schlüsselinformationen mit Base64-Codierung für die Schlüsselrotation bereitstellen. Weitere Informationen finden Sie unter Bedarfsgesteuerte Rotation von Rootschlüsseln.
ibmcloud kp key policy-update rotation KEY_ID|KEY_ALIAS
[--enable | --disable] [-m MONTHLY_INTERVAL] [-o FORMAT]
[--key-ring KEY_RING_ID]
Beispiele
Rotationsrichtlinien können bei der Schlüsselerstellung oder nach der Erstellung eines Schlüssels angewendet werden. Im ersten Beispiel wird einfach der Schlüssel ohne Rotationsrichtlinie erstellt:
# create a root key
ibmcloud kp key create rotateKeyEnableDisableDemo
Creating key: 'rotateKeyEnableDisableDemo', in instance: '5ecfe306-d4at-48c0-ab07-b5c5bc751534'...
OK
Key ID Key Name
4d5540bd-3235-4a46-a8af-974f7ed6558a rotateKeyEnableDisableDemo
---------------------------------------------------------------------------------------------------------------------------------------------------
# set a rotation policy of three months
ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -m 3 -e --output json
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2022-12-02T00:50:11Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
"lastUpdateDate": "2022-12-02T00:51:38Z",
"updatedBy": "user id ...<redacted>...",
"rotation": {
"enabled": true,
"interval_month": 3
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# show the rotation policy for this key
ibmcloud kp key policies 4d5540bd-3235-4a46-a8af-974f7ed6558a -r --output json
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2022-12-02T00:50:11Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
"lastUpdateDate": "2022-12-02T00:51:38Z",
"updatedBy": "user id ...<redacted>...",
"rotation": {
"enabled": true,
"interval_month": 2
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# update the policy to three months
ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -m 3 -e --output json
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2022-12-02T00:50:11Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
"lastUpdateDate": "2022-12-02T00:51:38Z",
"updatedBy": "user id ...<redacted>...",
"rotation": {
"enabled": true,
"interval_month": 3
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# disable the policy for this key
ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -d --output json
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2022-12-02T00:50:11Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
"lastUpdateDate": "2022-12-02T00:52:52Z",
"updatedBy": "user id ...<redacted>...",
"rotation": {
"enabled": false,
"interval_month": 3
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# show that the policy has been disabled
ibmcloud kp key policies 4d5540bd-3235-4a46-a8af-974f7ed6558a -r --output json
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2022-12-02T00:50:11Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
"lastUpdateDate": "2022-12-02T00:52:52Z",
"updatedBy": "user id ...<redacted>...",
"rotation": {
"enabled": false,
"interval_month": 3
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie abfragen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
Optionale Parameter
-
-m, --monthly-intervalLegen Sie das Intervall für die Schlüsselrotation in Monaten fest. Das Rotationsintervall muss im Bereich von 1 bis 12 Monat(e) liegen.
-
-e, --enableoder-d, --disableStandardmäßig ist die Richtlinie für Schlüsselrotation aktiviert. Wenn der Benutzer die Richtlinie deaktivieren oder aktivieren möchte, kann er -d(--disable) bzw. -e(--enable) verwenden.
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key restore
Mit Key Protect kann ein zuvor gelöschter Rootschlüssel wiederhergestellt werden, und damit auch der Zugriff auf die zugehörigen Daten in der Cloud.
Als Administrator müssen Sie möglicherweise einen Rootschlüssel wiederherstellen, der in Key Protect für den Zugriff auf Daten, die zuvor vom Schlüssel geschützt wurden, importiert wurde.
Wenn Sie einen Schlüssel wiederherstellen, versetzen Sie den Schlüssel vom Gelöscht- (Wert ist 5) in den Aktiv-Schlüsselstatus (Wert ist 1) und Sie stellen den Zugriff auf alle Daten wieder her, die zuvor mit dem Schlüssel verschlüsselt wurden.
Ein gelöschter Schlüssel kann innerhalb von 30 Tagen nach der Löschung wiederhergestellt werden. Diese Funktion ist nur für Rootschlüssel verfügbar, die mit einem key materialerstellt wurden.
Sie können nur Rootschlüssel wiederherstellen, die mit einem key material erstellt wurden, indem Sie
kp key create mit der Option -k, --key-material. Sie können keinen Rootschlüssel wiederherstellen, wenn die Option --key-material nicht angegeben wurde.
Wenn Sie einen gelöschten Rootschlüssel wiederherstellen möchten, müssen Sie den
key material, die zum Erstellen des Rootschlüssels verwendet wurde Sie können einen gelöschten Schlüssel nicht wiederherstellen, ohne das ursprüngliche key material zur Verfügung zu stellen.
ibmcloud kp key restore KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
-k, --key-material KEY_MATERIAL
[--key-ring KEY_RING_ID]
[-n, --encrypted-nonce ENCRYPTED_NONCE]
[-v, --iv IV]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key restore.
Beispiel 1
In diesem Beispiel wird unter Verwendung der Schlüsselinformationen ein Rootschlüssel erstellt. Der Schlüssel wird anschließend gelöscht und danach wiederhergestellt.
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL
4EZBMBMkZ87z4nvYsQH21DC5+wslgWhHRiU8bmqJ4CY=
# create a root key from a base64-encoded value
$ KEY_ID=$(ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL --output json | jq -r '.["id"]')
$ echo $KEY_ID
62ad0cd5-70a4-4c4d-9d87-5f4db620b120
# delete the root key
$ ibmcloud kp key delete $KEY_ID
Deleting key: 62ad0cd5-70a4-4c4d-9d87-5f4db620b120, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Deleted Key
62ad0cd5-70a4-4c4d-9d87-5f4db620b120
# list keys - verify the key was deleted
$ ibmcloud kp keys
Retrieving keys...
OK
Key ID Key Name
# restore the deleted key
$ ibmcloud kp key restore $KEY_ID -k $KEY_MATERIAL --output json
{
"id": "62ad0cd5-70a4-4c4d-9d87-5f4db620b120",
"name": "my-base64-root-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:62ad0cd5-70a4-4c4d-9d87-5f4db620b120"
}
# list keys - verify the key was restored
$ ibmcloud kp keys
Retrieving keys...
OK
Key ID Key Name
62ad0cd5-70a4-4c4d-9d87-5f4db620b120 my-base64-root-key
Beispiel 2
In diesem Workflow wird ein Rootschlüssel mithilfe eines Importtokens erstellt. Der Schlüssel wird anschließend gelöscht und danach wiederhergestellt.
Dieser Vorgang besteht aus zwei Schritten.
-
Erstellen eines Rootschlüssels mit einem Importtoken und anschließendes Löschen des Schlüssels
-
Erstellen Sie ein Importtoken, das für die Wiederherstellung des Schlüssels erforderlich ist, und stellen Sie den Schlüssel wieder her.
Die Erstellung eines Root-Schlüssels mithilfe eines Import-Tokens ist zeitlich begrenzt (die
-e, --expiration ). Zum Wiederherstellen eines Schlüssels benötigen Sie ein Importtoken. Daher müssen Sie den Prozess zum Erstellen eines Importtokens ausführen, um einen Schlüssel wiederherzustellen.
Schritt 1: Rootschlüssel mithilfe eines Importtokens erstellen und den Schlüssel anschließend löschen
# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10
Created Expires Max Retrievals Remaining Retrievals
2020-06-18 12:21:59 +0000 UTC 2020-06-18 12:26:59 +0000 UTC 10 10
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL
sADDNDE3pcJlbYXu2z5QFORvsxV1PosRiAPERrhYJdk=
# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')
$ echo $NONCE
/QhqOsqlVPC+ZPWz
# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')
$ echo $PUBLIC_KEY
LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=
# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY
Encrypted Key
C+/puHn1v5p7aohitM4r6N4ohiVkCecP ...<redacted>... eWmJRuvsSxDg/OY=
# capture the encrypted key material
$ ENCRYPTED_KEY=C+/puHn1v5p7aohitM4r6N4ohiVkCecP ...<redacted>... eWmJRuvsSxDg/OY=
# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE
Encrypted Nonce IV
TxrgdayWnM5OB3JoYuQR97oulxvREptk8TzciQ== 7BiIpcbGxXBzuXZP
# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=TxrgdayWnM5OB3JoYuQR97oulxvREptk8TzciQ==
$ IV=7BiIpcbGxXBzuXZP
# create a root key using an import token, provide an encrypted key, nonce, and initialization vector (IV)
$ KEY_ID=$(ibmcloud kp key create my-imported-root-key -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV --output json | jq -r '.["id"]')
$ echo $KEY_ID
c42c6f2c-8b67-4016-b2c3-99fba9490f5d
# list keys - verify the key was created
$ ibmcloud kp keys
Retrieving keys...
OK
Key ID Key Name
c42c6f2c-8b67-4016-b2c3-99fba9490f5d my-imported-root-key
# delete the root key
$ ibmcloud kp key delete $KEY_ID
Deleting key: c42c6f2c-8b67-4016-b2c3-99fba9490f5d, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Deleted Key
c42c6f2c-8b67-4016-b2c3-99fba9490f5d
# list keys - verify the key was deleted
$ ibmcloud kp keys
Retrieving keys...
OK
Key ID Key Name
Schritt 2: Importtoken erstellen, das zum Wiederherstellen des Schlüssels erforderlich ist, und den Schlüssel wiederherstellen
# NOTE: "kp key restore" requires an import token to complete the process,
# if you follow this example, the previously created import token may still
# exist and the example works; otherwise, if the import token has expired then
# you need to create a new import token prior to restoring the key
# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10
Created Expires Max Retrievals Remaining Retrievals
2020-06-18 12:30:54 +0000 UTC 2020-06-18 12:35:54 +0000 UTC 10 10
# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')
$ echo $NONCE
N3x8F0ihAZ51nj6M
# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')
$ echo $PUBLIC_KEY
LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=
# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY
Encrypted Key
Ch7hcsT1EOfSdghjOHKAemBZuzDoqJoH ...<redacted>... F4p/mkGT/EQJS5o=
# capture the encrypted key material
$ ENCRYPTED_KEY=Ch7hcsT1EOfSdghjOHKAemBZuzDoqJoH ...<redacted>... F4p/mkGT/EQJS5o=
# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE
Encrypted Nonce IV
nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA== N6oLJnUqaKF3v5Sd
# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA==
$ IV=N6oLJnUqaKF3v5Sd
# restore the deleted key
$ ibmcloud kp key restore $KEY_ID -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV --output json
{
"id": "c42c6f2c-8b67-4016-b2c3-99fba9490f5d",
"name": "my-imported-root-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:c42c6f2c-8b67-4016-b2c3-99fba9490f5d"
}
# list keys - verify the key was restored
$ ibmcloud kp keys
Retrieving keys...
OK
Key ID Key Name
c42c6f2c-8b67-4016-b2c3-99fba9490f5d my-imported-root-key
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie wiederherstellen möchten.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-k, --key-materialDeprecatedDas Schlüsselmaterial aus einem zuvor importierten base64-codierten Schlüssel.Wenn Sie den Rootschlüssel mithilfe eines
import tokenerstellt haben, enthält der Wert der Option-k, --key-materialdie verschlüsselten Schlüsselinformationen. Siehe Beispiel 2, in dem ein Import-Token zur Erstellung des Rootschlüssels und ein Import-Token zur Wiederherstellung des Rootschlüssels verwendet wird. -
-n, --encrypted-nonceDeprecatedÜberprüfen Sie, ob eine Anforderung zum Importieren eines Schlüssels durch Bereitstellung eines verschlüsselten Nonce überprüft werden soll.Weitere Informationen finden Sie unter kp import-token nonce-encrypt.
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
-v, --ivDeprecatedGeben Sie den Initialisierungsvektor (IV) an, der generiert wird, nachdem Sie einen Nonce verschlüsselt haben.Weitere Informationen finden Sie unter kp import-token nonce-encrypt.
-
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
Kp-Schlüsselringe
Listet die Schlüsselringe auf, die der kp-Instanz zugeordnet sind.
Beispiel
Das Beispiel zeigt die Verwendung des CLI-Plug-ins, um Schlüsselringe aufzulisten, die für die angegebene Instanz geeignet sind.
ibmcloud kp key-rings -i <INSTANCE_ID>
Erforderliche Parameter
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
kp key-ring erstellen
Erstellen Sie einen Schlüsselring innerhalb einer kp-Instanz.
Beispiel
Das Beispiel zeigt die Verwendung des CLI-Plug-ins, um einen Schlüsselring in der angegebenen Instanz zu erstellen.
ibmcloud kp key-ring create KEY_RING_ID -i <INSTANCE_ID>
Erforderliche Parameter
-
KEY_RING_IDDie alphanumerische Referenz, die länger als oder gleich 2 Zeichen und kleiner als oder gleich 100 für den Schlüsselring ist.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
kp key-ring löschen
Einen Schlüsselring innerhalb einer kp-Instanz löschen.
Beispiel
Das Beispiel zeigt die Verwendung des CLI-Plug-ins, um einen Schlüsselring in der angegebenen Instanz zu löschen. Beachten Sie, dass die Kraft (-f) hinzugefügt wurde.
ibmcloud kp key-ring delete KEY_RING_ID -i <INSTANCE_ID> -f
Erforderliche Parameter
-
KEY_RING_IDDie alphanumerische Referenz, die länger als oder gleich 2 Zeichen und kleiner als oder gleich 100 für den Schlüsselring ist.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-f, --forceErzwingt das Löschen eines Schlüsselrings, der noch Schlüssel im Status Gelöscht enthält. Löscht keine Schlüsselringe, die Schlüssel in einem anderen Status haben Wenn ein Schlüsselring Schlüssel im Status Gelöscht enthält und dieses Flag nicht hinzugefügt wird, schlägt das Löschen des Schlüsselrings fehl.
kp key rotate
Führen Sie eine Rotation für einen Rootschlüssel durch, der im Key Protect-Service gespeichert ist.
Bei der Rotation des Rootschlüssels wird der Schlüssel durch neue Schlüsselinformationen ersetzt.
Wenn Key Protect den Schlüssel erstellt hat (der Schlüssel wurde nicht mit dem Parameter -k erstellt), dann erstellt Key Protect einen neuen Schlüssel. Sie können kp key rotate nicht mit dem -k Parameter an.
Wenn Sie einen Schlüssel erstellt und das Schlüsselmaterial bereitgestellt haben (
kp key create key-name -k $KEY_MATERIAL), müssen Sie bei der Schlüsselrotation neues Schlüsselmaterial bereitstellen (
kp key rotate $KEY_ID_OR_ALIAS -k $NEW_KEY_MATERIAL)
Ein „ standard “-Schlüssel, d. h. ein Schlüssel, der mit dem Befehl Befehl kp create key-name --standard-key.
ibmcloud kp key rotate KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
[-k, --key-material KEY_MATERIAL]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key rotate.
Beispiel 1
Rotation für Rootschlüssel ausführen
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad my-root-key
# rotate the key
$ ibmcloud kp key rotate 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad
Rotating root key...
OK
# show key details
$ ibmcloud kp key show 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad
Grabbing info for key id: 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad...
OK
Key ID Key Name Description Creation Date Expiration Date
1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad my-root-key 2020-05-06 17:25:22 +0000 UTC Key does not expire
# create a new key material
$ NEW_KEY_MATERIAL=$(openssl rand -base64 32)
# Key Protect created the root key, providing a new key material will fail
$ ibmcloud kp key rotate 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad -k $NEW_KEY_MATERIAL
Rotating root key...
FAILED
Beispiel 2
Rotation für einen Schlüssel mit Base64-Codierung oder einen mit Importtoken erstellten Schlüssel ausführen
Erstellen Sie zuerst einen Rootschlüssel aus einem Base64-codierten Wert oder aus einem importierten Token.
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
# create a root key from a base64-encoded value
$ ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL
Creating key: 'my-base64-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
e55f86ab-6984-4594-ad23-3024f6440a58 my-base64-root-key
# create a new key material
$ NEW_KEY_MATERIAL=$(openssl rand -base64 32)
# rotate the key
$ ibmcloud kp key rotate e55f86ab-6984-4594-ad23-3024f6440a58 -k $NEW_KEY_MATERIAL
Rotating root key...
OK
# the key was created from a key material, NOT providing a new key material will fail
$ ibmcloud kp key rotate e55f86ab-6984-4594-ad23-3024f6440a58
Rotating root key...
FAILED
Beispiel 3
Diese Beispiele veranschaulichen Folgendes:
-
Rootschlüssel erstellen
-
Datenverschlüsselungsschlüssel (Data Encryption Key, DEK) erstellen (dies ist der
plaintext) -
Wrapping für DEK mit Rootschlüssel durchführen (das Ergebnis ist der
ciphertext) -
Schlüsselrotation für Rootschlüssel ausführen
-
Wrapping des verschlüsselten Texts rückgängig machen, um den ursprünglichen DEK (unverschlüsselter Text) sichtbar zu machen, und einen neuen verschlüsselten Text; durch das Wrapping des unverschlüsselten Texts in den neuen (rotierten) Rootschlüssel entsteht der neue verschlüsselte Text
-
Wrapping des neuen verschlüsselten Texts rückgängig machen, um den ursprünglichen DEK (unverschlüsselter Text) sichtbar zu machen
# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')
$ echo $KEY_ID
5b976173-7804-4f82-acfa-bb98098bc528
# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)
$ echo $PLAINTEXT
UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=
# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')
$ echo $CIPHERTEXT
eyJjaXBoZXJ0ZXh0IjoiQkFrTlJrS2Q0 ...<redacted>... ODA5OGJjNTI4In0=
# rotate the root key
$ ibmcloud kp key rotate $KEY_ID
Rotating root key...
OK
# show key details
$ ibmcloud kp key show $KEY_ID --output json
{
"id": "5b976173-7804-4f82-acfa-bb98098bc528",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-10T18:09:27Z",
"lastUpdateDate": "2020-06-10T18:13:31Z",
"lastRotateDate": "2020-06-10T18:13:31Z",
"keyVersion": {
"id": "4330715a-918b-4718-b5ca-9475a214067e",
"creationDate": "2020-06-10T18:13:31Z"
},
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5b976173-7804-4f82-acfa-bb98098bc528"
}
# unwrap the ciphertext, reveal the original DEK (plaintext),
# and see the new ciphertext (the plaintext wrapped with the rotated root key)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT --output json
{
"Plaintext": "UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=",
"Rewrapped Plaintext": "eyJjaXBoZXJ0ZXh0IjoiS0FITEFRWjdh ...<redacted>... NWEyMTQwNjdlIn0="
}
# capture the new (rewrapped) plaintext
$ NEWCIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiS0FITEFRWjdh ...<redacted>... NWEyMTQwNjdlIn0=
# unwrap the ciphertext and reveal the original DEK (plaintext)
$ ibmcloud kp key unwrap $KEY_ID $NEWCIPHERTEXT --output json
{
"Plaintext": "UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=",
"Rewrapped Plaintext": ""
}
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Root-Schlüssels im Format „ v4 “, den Sie rotieren möchten.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-k, --key-materialGeben Sie für die Rotation eines Schlüssels, der ursprünglich ohne den Parameter
--key-materialgeneriert wurde (d. h. mit dem Befehlkp key create my-key) den Parameter--key-materialnicht an.Wenn ein Schlüssel mit dem Parameter
--key-materialerstellt wurde, geben Sie die neuen Schlüsselinformationen mit Base64-Codierung an, die für die Rotation eines vorhandenen Rootschlüssels verwendet werden.Geben Sie für die Rotation eines Schlüssel, der ursprünglich in den Service importiert wurde, einen neuen 32-Byte-Schlüssel (256-Bit-Schlüssel) an.
-
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key schedule-delete
Für einen Schlüssel mit einer Richtlinie dual-auth-delete ist die Autorisierung durch zwei Benutzer mit Verwaltungsaufgaben erforderlich, um den Schlüssel zu löschen.
Führen Sie den folgenden Prozess aus, um einen Schlüssel mit einer Richtlinie dual-auth-delete zu löschen.
-
Erstellen Sie einen Schlüssel und aktivieren Sie die Richtlinie
dual-auth-delete. -
Benutzer 1 plant (autorisiert) eine Schlüssellöschung mit dem
kp key schedule-delete-Befehl -
Benutzer 2 plant (autorisiert) das Löschen eines Schlüssels.
-
Der Schlüssel wird gelöscht, nachdem die zweite Aktion
schedule-deleteausgeführt wurde, die von der Benutzerschnittstelle, API und Befehlszeilenschnittstelle unterstützt wird. -
Wenn innerhalb von 7 Tagen keine zweite Autorisierung erfolgt, wird der Schlüssel in den Standardstatus zurückgesetzt.
Die Richtlinie dual-auth-delete kann auf zwei Arten aktiviert werden:
- Durch Festlegen der Richtlinie für einen einzelnen Schlüssel mit dem Befehl
kp key policy-update dual-auth-delete - Richtlinie für die Instanz festlegen mit
kp instance policy-update dual-auth-delete; alle Schlüssel, die nach der Aktivierung der Instanzrichtlinie erstellt werden, übernehmen die Instanzrichtlinieneinstellung
Der Befehl kp key cancel-delete widerruft eine zuvor autorisierte Löschanforderung oder entfernt sie.
ibmcloud kp key schedule-delete KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
Beispiel
Dies ist ein Beispiel für die Planung der Löschung eines Schlüssels.
# schedule this key to be deleted
$ ibmcloud kp key schedule-delete $KEY_ID_OR_ALIAS
Scheduling key for deletion...
OK
# this key has a dual-auth-delete policy
$ ibmcloud kp key policies $KEY_ID_OR_ALIAS --output json
[
{
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-06-22T19:13:00Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
"lastUpdateDate": "2020-06-22T21:36:16Z",
"updatedBy": "user id ...<redacted>...",
"dualAuthDelete": { "enabled": true
}
}
]
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie löschen möchten. Führen Sie den folgenden Befehl kp keys aus, um eine Liste der verfügbaren Schlüssel abzurufen.
Optionale Parameter
-
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp key show
Rufen Sie die Details zu einem Schlüssel ab, wie z. B. Schlüsselmetadaten und Schlüsselinformationen.
Wenn der Schlüssel als Rootschlüssel bezeichnet wurde, kann das System die Schlüsselinformationen für diesen Schlüssel nicht zurückgeben.
ibmcloud kp key show KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
[-o, --output OUTPUT]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key show.
Beispiel 1
Rootschlüssel erstellen und zugehörige Details anzeigen
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
8635b804-9966-4918-a16b-d561fdbf181f my-root-key
# show key details
$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f
Grabbing info for key id: 8635b804-9966-4918-a16b-d561fdbf181f...
OK
Key ID Key Name Description Creation Date Expiration Date
8635b804-9966-4918-a16b-d561fdbf181f my-root-key 2020-05-05 19:58:02 +0000 UTC Key does not expire
Beispiel 2
Dies ist eine Erläuterung der JSON-Schlüssel und -Werte aus dem kp key show ist. Im vorliegenden Beispiel wurde eine Schlüsselrotation ausgeführt, um sicherzustellen, dass alle Schlüssel/Wert-Paare im JSON-Format angezeigt werden.
$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f --output json
{
"id": "8635b804-9966-4918-a16b-d561fdbf181f",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-05-05T19:58:02Z",
"lastUpdateDate": "2020-05-05T19:58:24Z",
"lastRotateDate": "2020-05-05T19:58:24Z",
"keyVersion": {
"id": "85b65b20-4165-4da3-8ba9-880e72390461",
"creationDate": "2020-05-05T19:58:24Z"
},
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:8635b804-9966-4918-a16b-d561fdbf181f"
}
| Schlüssel | Beschreibung |
|---|---|
| ID | Dieser Parameter (KEY_ID) ist eindeutig und wird immer verwendet, wenn die CLI ein Element KEY_ID angibt. |
| Name | Der beim Erstellen des Schlüssels angegebene Name. |
| Typ | Wird von der API verwendet, um den Inhaltstyp (content-type) in einem REST-Aufruf festzulegen. |
| algorithmType | Mögliche Algorithmustypen sind Advanced Encryption Standard (AES) oder Cipher Block Chaining (CBC). |
| createdBy | Die Benutzer-ID, mit der der Schlüssel erstellt wurde. |
| creationDate | Der Zeitpunkt (Datum und Uhrzeit), an dem der Schlüssel erstellt wurde. |
| lastUpdateDate | Der Zeitpunkt (Datum und Uhrzeit), an dem der Schlüssel zuletzt aktualisiert wurde. |
| lastRotateDate | Der Zeitpunkt (Datum und Uhrzeit), an dem der Schlüssel zuletzt gewechselt wurde. Dieser Eintrag ist nur vorhanden, wenn eine Schlüsselrotation ausgeführt wurde. |
| keyVersion / id | Gibt die neueste Version des Rootschlüssels an. |
| keyVersion / creationDate | Der Zeitpunkt (Datum und Uhrzeit), an dem die Schlüsselinformationen zuletzt aktualisiert wurden. |
| extractable | Ein boolescher Wert, der bestimmt, ob die Schlüsselinformationen den Service verlassen dürfen. Wenn der Wert auf 'false' gesetzt ist, wird der Schlüssel von Key Protect als nicht extrahierbarer Rootschlüssel deklariert, der für Wrap- und Unwrap-Aktionen verwendet werden kann. Ist der Wert auf 'true' gesetzt, wird der Schlüssel von Key Protect als Standardschlüssel deklariert, der in Ihren Apps und Services gespeichert werden kann. Wenn der Wert auf 'false' gesetzt wurde, kann er nicht mehr in 'true' geändert werden. |
| Status | 1 - der Schlüssel ist aktiv, 2 - der Schlüssel ist ausgesetzt (siehe Schlüsselstatus). |
| crn | Der Cloudressourcenname (CRN). |
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie v4-UUID oder der Aliasname des Rootschlüssels, den Sie anzeigen wollen
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
KP-Schlüsselsynchronisation
Dieser Unterbefehl synchronisiert die zugeordneten Ressourcen für einen Schlüssel.
ibmcloud kp key sync KEY_ID
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
[-o, --output FORMAT]
Beispiele
Dies ist ein Beispiel für kp key sync.
Beispiel
Einen Schlüssel synchronisieren und die Ergebnisse anzeigen.
# synchronize the associated resources for a given key
$ ibmcloud kp key sync 94c06f9c-a07a-4961-8548-553cf7431f18
Synchronizing key...
OK
Key's associated resources are synchronized successfully
Erforderliche Parameter
-
KEY_IDDie ID des Schlüssels, den Sie synchronisieren wollen.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp-Schlüsselaktualisierung
Aktualisieren Sie einen Schlüssel mit einem vorhandenen Schlüsselring oder einem neuen Schlüsselring in Ihrer Key Protect-Instanz verhindert.
ibmcloud kp key update KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
-r, --new-key-ring KEY_RING_ID
[-o, --output OUTPUT]
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie v4-UUID oder der Aliasname des Rootschlüssels, den Sie anzeigen wollen
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-r, --new-key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
Optionale Parameter
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json.
Beispiele
Beachten Sie, dass der Schlüsselring bereits erstellt werden muss, und zwar entweder als Teil der Erstellung eines Schlüssels oder für sich selbst.
Dies ist ein Beispiel für kp key update.
ic kp key update 5f2cc155-fe16-492c-845c-4d1f0688c7ba -r TestRing
Die Ausführung des Befehls hat ein typisches Ergebnis:
Updating key...
OK
Key ID Key Name Key Ring ID
5f2cc155-fe16-492c-845c-4d1f0688c7ba TestKey TestRing
kp key unwrap
Heben Sie das Wrapping für einen Datenverschlüsselungsschlüssel auf, indem Sie einen Rootschlüssel verwenden, der gespeichert ist in Ihrer Key Protect-Instanz verhindert.
ibmcloud kp key unwrap KEY_ID_OR_ALIAS CIPHERTEXT_FROM_WRAP
-i, --instance-id INSTANCE_ID
[-a, --aad ADDITIONAL_DATA]
[--key-ring KEY_RING_ID]
[-o, --output OUTPUT]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key unwrap.
Beispiel 1
Wrapping eines verschlüsselten Texts aufheben, um den unverschlüsselten Text des Datenverschlüsselungsschlüssels (DEK) sichtbar zu machen.
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea my-root-key
# create a data encryption key (DEK), wrapped with the root key
$ ibmcloud kp key wrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea
Wrapping key...
OK
Ciphertext
eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
# capture the ciphertext
$ CIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
# unwrap the ciphertext to reveal the plaintext data encryption key (DEK)
$ ibmcloud kp key unwrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea $CIPHERTEXT
Unwrapping key...
OK
Plaintext Rewrapped Plaintext
mXW4GmBhkRG1+Dzkx1D6dMX99a4KyYwtwbghaaLEQZ0=
Beispiel 2
Wrapping eines verschlüsselten Texts aufheben und AAD-Informationen angeben
Ein Anwendungsfall zum Angeben zusätzlicher Authentifizierungsdaten (Additional Authentication Data, AAD) besteht darin, den verschlüsselten Text durch ein Kennwort zu schützen, um das Aufheben des Key-Wrapping zu erschweren.
Der verschlüsselte Text und die AAD-Informationen sind erforderlich, um das Wrapping des verschlüsselten Texts aufzuheben und den unverschlüsselten Text des Datenverschlüsselungsschlüssels (DEK) sichtbar zu machen.
# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')
$ echo $KEY_ID
5f2cc155-fe16-492c-845c-4d1f0688c7ba
# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)
$ echo $PLAINTEXT
H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=
# set the additional authentication data (AAD)
$ AAD1=My-Secret-Password
$ AAD2=My-Verification-Phrase
# wrap the plaintext with the root key and AAD
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -a "$AAD1,$AAD2" -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')
$ echo $CIPHERTEXT
eyJjaXBoZXJ0ZXh0IjoiL1pQUzRLbUxQ ...<redacted>... ZjA2ODhjN2JiIn0=
# unwrap the ciphertext and reveal the original plaintext DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1,$AAD2
Unwrapping key...
OK
Plaintext Rewrapped Plaintext
H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=
# this should fail (missing some of the AAD)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1
Unwrapping key...
FAILED
# this should fail (AAD is in a different order)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD2,$AAD1
Unwrapping key...
FAILED
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Root-Schlüssels „ v4 “, den Sie für die ursprüngliche Wrap-Anfrage verwendet haben.
-
CIPHERTEXT_FROM_WRAPDer verschlüsselte Datenschlüssel, der bei der ursprünglichen Wrapping-Operation zurückgegeben wurde.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-a, --aadDie zusätzlichen Authentifizierungsdaten (AAD), die für den zusätzlichen Schutz eines Schlüssels verwendet wurden. Es können bis zu 255 Zeichenfolgen, jeweils durch Kommas getrennt, angegeben werden. Wenn die AAD beim Wrapping angegeben wurden, müssen Sie dieselben AAD in der gleichen Reihenfolge beim Aufheben des Wrapping angeben.
Der Service 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 auf dieselben AAD zugreifen und diese angeben können.
-o, --output
Set the CLI output format. By default, all commands print in table format. To change the output format to JSON, use `--output json`.
-
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
KP-Schlüsselversionen
Wenn Sie eine Schlüsselrotation für einen Rootschlüssel ausführen, wird von Key Protect eine neue Version des Schlüssel erstellt. Alle Schlüsselversionen auflisten, die für eine KeyID oder einen Schlüsselaliasnamen in Ihrer Key Protect-Instanz verfügbar sind
ibmcloud kp key versions KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[-r, --key-ring KEY_RING_ID]
[-n, --number-of-key-versions VERSION_LIMIT]
[-o, --output OUTPUT]
[-s, --starting-offset OFFSET]
[-t, --total-count TOTAL_COUNT]
[-a, --all-key-states ALL_KEY_STATES]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key versions.
Beispiel 1
Ein Anwendungsfall ist die Prüfung des Rotationsverlaufs eines Rootschlüssels als Sicherheitsadministrator, indem der zugehörige Schlüsselversionsverlauf angezeigt wird.
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea my-root-key
# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea
Rotating root key...
OK
# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea
Retrieving key Versions...
OK
Key Version ID Creation Date
21562e93-8882-420e-90a7-912c70023373 2022-07-08T17:02:10Z
390086ac-76fa-4094-8cf3-c0829bd69526 2022-07-08T17:02:40Z
Beispiel 2
Derselbe Anwendungsfall für die Prüfung eines Rootschlüssels als Sicherheitsadministrator und die Anzeige des Protokolls mit seiner Gesamtzahl in der JSON-Ausgabe.
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea my-root-key
# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea
Rotating root key...
OK
# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -t -o json
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key.version+json",
"collectionTotal": 2,
"totalCount": 2
},
"resources": [
{
"id": "21562e93-8882-420e-90a7-912c70023373",
"creationDate": "2022-07-08T17:02:10Z"
},
{
"id": "390086ac-76fa-4094-8cf3-c0829bd69526",
"creationDate": "2022-07-08T17:02:40Z"
}
]
}
Beispiel 3
Ein weiterer Anwendungsfall listet die ersten 12 Schlüsselversionen für einen Schlüsselsatz in einer monatlichen Rotation für das vergangene Jahr auf.
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea my-root-key
# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea
Rotating root key...
OK
# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -n 12 -o json
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key.version+json",
"collectionTotal": 12
},
"resources": [
{
"id": "21562e93-8882-420e-90a7-912c70023373",
"creationDate": "2021-07-08T17:02:10Z"
},
{
"id": "390086ac-76fa-4094-8cf3-c0829bd69526",
"creationDate": "2021-08-08T17:02:40Z"
},[...10x]
]
}
Beispiel 4
Ein weiterer Anwendungsfall listet die zweiten 12 Schlüsselversionen für einen Schlüsselsatz bei einer monatlichen Rotation für die letzten zwei Jahre auf.
ibmcloud kp Schlüsselversionen $KEY_ID_OR_ALIAS -n 12 -s 12
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea my-root-key
# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea
Rotating root key...
OK
# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -n 12 -s 12 -o json
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key.version+json",
"collectionTotal": 12
},
"resources": [
{
"id": "21562e93-8882-420e-90a7-912c70023373",
"creationDate": "2021-07-08T17:02:10Z"
},
{
"id": "390086ac-76fa-4094-8cf3-c0829bd69526",
"creationDate": "2021-08-08T17:02:40Z"
},[...10x]
]
}
Beispiel 5
Ein optionales Flag, mit dem die Anzahl der Versionen eines momentan nicht aktiven Schlüssels zurückgegeben wird. Zuvor wäre der Befehl fehlgeschlagen, wie im folgenden Beispiel gezeigt:
# Attempt to show version count
$ ibmcloud kp key versions af61298c-d75d-42a8-aa76-e04178cf4685 -i 99980ccc-d482-4cd0-bb41-deb4f7f1eb92 -t
Retrieving key Versions...
FAILED
KEY_ACTION_INVALID_STATE_ERR
Key is not in a valid state
Correlation-ID:a494bf49-be82-426f-88d8-17b58cc8634d
Mit der CLI-Version 0.8.0 und höher ist der Befehl erfolgreich, wenn das Flag -a hinzugefügt wird, wie im folgenden Beispiel:
# Attempt to show version count
$ ibmcloud kp key versions af61298c-d75d-42a8-aa76-e04178cf4685 -i 99980ccc-d482-4cd0-bb41-deb4f7f1eb92 -t -a
Retrieving key Versions...
OK
TotalCount: 2
Key Version ID Creation Date
14dfde20-a751-4c3e-b6b0-e8d00a17d8d1 2023-06-22T15:16:09Z
af61298c-d75d-42a8-aa76-e04178cf4685 2023-06-22T15:10:28Z
Wenn das Flag -a nicht angegeben ist, wird die KEY_ACTION_INVALID_STATE_ERR für einen Schlüssel in einem anderen Status als 'active' (aktiv) zurückgegeben.
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Root-Schlüssels „ v4 “, den Sie für die ursprüngliche Wrap-Anfrage verwendet haben.
-
-i, --instance-IDDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
-
-n --number-of-key-versionsBeschränkt die Anzahl der Schlüsselversionen, die durch den angegebenen ganzzahligen Wert abgerufen werden sollen (Standardwert: 200).
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
-s --starting-offsetEs werden die Schlüsselversionen aus dem Offset abgerufen, wie durch den angegebenen ganzzahligen Wert angegeben.
-
-t --total-countWird verwendet, um die Gesamtzahl der Schlüsselversionen für einen Schlüssel durch den angegebenen ganzzahligen Wert zu reterieve.
-
-a --all-key-statesEin optionales Flag zum Zurückgeben der Anzahl der Versionen für alle Schlüsselstatus, einschließlich Schlüssel, die nicht aktiv sind.
kp key wrap
Schließen Sie einen Datenverschlüsselungsschlüssel ein (DEK), indem Sie einen Rootschlüssel verwenden, der in Ihrer Key Protect-Instanz verhindert. Ein DEK wird in der Regel verwendet, um sonstige Einzelinformationen zu verschlüsseln.
Wenn Sie einen DEK mit einem Rootschlüssel einschließen, Key Protect kombiniert die Stärke mehrerer Algorithmen, um die Privatsphäre und die Integrität Ihrer verschlüsselten Daten zu schützen.
Ein „ standard “-Schlüssel, d. h. ein Schlüssel, der mit dem Befehl -s Parameter (ibmcloud kp key create my-key-name -s).
ibmcloud kp key wrap KEY_ID_OR_ALIAS
-i, --instance-id INSTANCE_ID
[--key-ring KEY_RING_ID]
[-a, --aad ADDITIONAL_DATA]
[-o, --output OUTPUT]
[-p, --plaintext DATA_KEY]
Bewährte Verfahren
Durch das Wrapping eines Datenverschlüsselungsschlüssels (Data Encryption Key, DEK) entsteht ciphertext. Der verschlüsselte Text besteht aus verschlüsselten Informationen, die nach dem Aufheben des Wrappings den ursprünglichen
DEK sichtbar machen.
Der Key Protect-Service speichert Ihren DEK nicht. Speichern Sie den verschlüsselten Text temporär oder dauerhaft, damit Sie den DEK bei Bedarf mit dem Befehl kp key unwrap abrufen können.
Der unverschlüsselte DEK sollte auf keinen Falls temporär oder dauerhaft gespeichert werden. Laden Sie in Ihrer Anwendung den verschlüsselten Text aus dem Speicher und rufen Sie Key Protect auf, um den unverschlüsselten DEK abzurufen, und verwenden Sie den DEK, um "andere" Informationen zu verschlüsseln oder einzuschließen.
Speichern Sie den DEK nicht im permanenten Speicher. Wenn der DEK offengelegt wird, können Ihre Daten von anderen Benutzern entschlüsselt werden.
Bei jedem Key-Wrapping des Rootschlüssels wird ein neuer verschlüsselter Text erstellt.
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp key wrap.
Beispiel 1
Key Protect erstellt einen neuen Datenverschlüsselungsschlüssel (DEK) mit Base64-Codierung und verwendet den Rootschlüssel für das Key-Wrapping des DEK.
# create a root key
$ ibmcloud kp key create my-root-key
Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea my-root-key
# create a new key and wrap it with the root key, creating a DEK (this is the ciphertext)
$ ibmcloud kp key wrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea
Wrapping key...
OK
Ciphertext
eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
# capture the ciphertext
$ CIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
# unwrap the ciphertext to reveal the plaintext (DEK)
$ ibmcloud kp key unwrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea $CIPHERTEXT
Unwrapping key...
OK
Plaintext Rewrapped Plaintext
mXW4GmBhkRG1+Dzkx1D6dMX99a4KyYwtwbghaaLEQZ0=
Beispiel 2
Datenverschlüsselungsschlüssel (DEK) mit Base64-Codierung erstellen und den Rootschlüssel für das Key-Wrapping verwenden
# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')
$ echo $KEY_ID
9052d914-bebe-4177-90e9-6073a167b507
# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)
$ echo $PLAINTEXT
tEqoiCu9CeUsbqRe6yBUkrJg80QKKG/z46OkX0YQMV8=
# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')
$ echo $CIPHERTEXT
eyJjaXBoZXJ0ZXh0IjoiTkdQRlhCb1dT ...<redacted>... M2ExNjdiNTA3In0=
# unwrap the ciphertext and reveal the original DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT
tEqoiCu9CeUsbqRe6yBUkrJg80QKKG/z46OkX0YQMV8=
Beispiel 3
Wrapping für Rootschlüssel durchführen und AAD-Informationen angeben
Ein Anwendungsfall zum Angeben zusätzlicher Authentifizierungsdaten (Additional Authentication Data, AAD) besteht darin, einen 'Bestätigungsausdruck' zu dem verschlüsselten Text hinzuzufügen, um das Aufheben des Key-Wrappings zu erschweren.
Der verschlüsselte Text und die zusätzlichen Authentifizierungsdaten sind erforderlich, um das Wrapping des verschlüsselten Texts aufzuheben und den unverschlüsselten DEK sichtbar zu machen.
# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')
$ echo $KEY_ID
5f2cc155-fe16-492c-845c-4d1f0688c7ba
# set the additional authentication data (AAD)
$ AAD1=My-Secret-Password
$ AAD2=My-Verification-Phrase
# wrap the plaintext DEK with the root key and AAD
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -a "$AAD1,$AAD2" --output json | jq -r '.["Ciphertext"]')
$ echo $CIPHERTEXT
eyJjaXBoZXJ0ZXh0IjoiL1pQUzRLbUxQ ...<redacted>... ZjA2ODhjN2JiIn0=
# unwrap the ciphertext and reveal the original DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1,$AAD2
Unwrapping key...
OK
Plaintext Rewrapped Plaintext
H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=
# this should fail (missing some of the AAD)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1
Unwrapping key...
FAILED
# this should fail (AAD is in a different order)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD2,$AAD1
Unwrapping key...
FAILED
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Stammschlüssels „ v4 “, den Sie für das Wrapping verwenden möchten. Für einen Standardschlüssel kann kein Wrapping durchgeführt werden.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-a, --aadDie zusätzlichen Authentifizierungsdaten (AAD), die für den zusätzlichen Schutz eines Schlüssels verwendet werden. Die AAD sind ein Array aus Zeichenfolgen, das die Integrität der Schlüsselinhalte prüft. Jede Zeichenfolge kann bis zu 255 Zeichen enthalten.
Wenn Sie bei einer Wrapping-Anforderung AAD-Informationen angeben, müssen dieselben AAD-Informationen in gleicher Reihenfolge auch bei der Anforderung zum Aufheben des Wrappings angegeben werden.
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json. -
-p, --plaintextDie Datei „
plaintext“ enthält einen Datenverschlüsselungsschlüssel (DEK) vom Typ „ base64-encoded “, der durch den Stammschlüssel (identifiziert durch die Parameter „KEY_ID“ oder „ALIAS“) umschlossen ist.Der Datenverschlüsselungsschlüssel (DEK) mit Base64-Codierung, den Sie verwalten und schützen möchten. Geben Sie zum Importieren eines vorhandenen Schlüssels einen 32-Byte-Schlüssel (256 Bit) an.
Geben Sie für die Generierung und das Wrapping eines neuen DEK den Parameter
--plaintextnicht an. -
--key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
kp keys
Die Schlüssel auflisten, die in Ihrer Key Protect-Instanz verfügbar sind.
Die Schlüssel werden in der Reihenfolge der key id aufgelistet (siehe Beispiel 5).
ibmcloud kp keys
-i, --instance-id INSTANCE_ID
[-b --sort-by SORT_BY]
[-c, --crn]
[-f, --key-filter FILTERS]
[--key-ring KEY_RING_ID]
[--key-states STATES]
[-l --key-search KEY_SEARCH]
[-n, --number-of-keys NUMBER_OF_KEYS]
[-o, --output OUTPUT]
[-s, --starting-offset STARTING_OFFSET]
[-t, --key-type TYPE]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp keys.
Beispiel 1
Auflisten von Schlüsseln. Beachten Sie, dass standardmäßig nur die ersten 200 Schlüssel in Ihrer Instanz aufgelistet werden. Um mehr oder weniger Schlüssel anzuzeigen, geben Sie einen Wert für den Parameter --number-of-keys an.
# list keys
$ ibmcloud kp keys
Retrieving keys...
OK
Key ID Key Name
5f2cc155-fe16-492c-845c-4d1f0688c7ba my-root-key
c36e9f3a-feaf-4033-8603-687784dc7e51 my-root-key
Beispiel 2
Listen Sie die Schlüssel auf und zeigen Sie den Namen der Cloud-Ressource (CRN) mithilfe des --crn Parameter an.
# list keys and show the cloud resource name (CRN)
$ ibmcloud kp keys -c
Retrieving keys...
OK
Key ID Key Name CRN
5f2cc155-fe16-492c-845c-4d1f0688c7ba my-root-key crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5f2cc155-fe16-492c-845c-4d1f0688c7ba
c36e9f3a-feaf-4033-8603-687784dc7e51 my-root-key crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:c36e9f3a-feaf-4033-8603-687784dc7e51
Beispiel 3
Liste der Schlüssel im JSON-Format.
Der Parameter --output json impliziert den Parameter --crn (Name der Cloudressource) Parameter an.
# list keys
$ ibmcloud kp keys --output json
[
{
"id": "5f2cc155-fe16-492c-845c-4d1f0688c7ba",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-05-10T18:04:01Z",
"lastUpdateDate": "2020-05-10T18:04:01Z",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5f2cc155-fe16-492c-845c-4d1f0688c7ba"
},
{
"id": "c36e9f3a-feaf-4033-8603-687784dc7e51",
"name": "my-root-key",
"type": "application/vnd.ibm.kms.key+json",
"algorithmType": "AES",
"createdBy": "user id ...<redacted>...",
"creationDate": "2020-05-10T17:56:37Z",
"lastUpdateDate": "2020-05-10T17:56:37Z",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:c36e9f3a-feaf-4033-8603-687784dc7e51"
}
]
Beispiel 4
Die Schlüssel auflisten, sie durchlaufen und Details anzeigen.
# list keys and convert to a list
$ KEYS=$(ibmcloud kp keys --output json | jq -r '.[] | .id')
$ for key in $(echo "${KEYS}"); do
ibmcloud kp key show ${key}
done
Grabbing info for key id: 5f2cc155-fe16-492c-845c-4d1f0688c7ba...
OK
Key ID Key Name Description Creation Date Expiration Date
5f2cc155-fe16-492c-845c-4d1f0688c7ba my-root-key 2020-05-10 18:04:01 +0000 UTC Key does not expire
Grabbing info for key id: c36e9f3a-feaf-4033-8603-687784dc7e51...
OK
Key ID Key Name Description Creation Date Expiration Date
c36e9f3a-feaf-4033-8603-687784dc7e51 my-root-key 2020-05-10 17:56:37 +0000 UTC Key does not expire
Beispiel 5
20 Schlüssel erstellen und in Gruppen mit jeweils 5 Schlüsseln anzeigen (mithilfe der Optionen kp keys -n -s)
# create 20 test keys
$ for I in {1..20}; do
KEY_ID=$(ibmcloud kp key create my-test-key-$I --output json | jq -r '.["id"]')
KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
echo $KEY_ID $KEY_NAME
done
b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20
# this is the same list sorted in KEY_ID order
# this is the order we expect when listing keys
10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13
3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4
87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11
cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5
# define a function for listing keys
$ list_keys () {
N=$1
S=$2
KEYS=$(ibmcloud kp keys --number-of-keys $N --starting-offset $S --output json | jq -r '.[] | .id')
for KEY_ID in $(echo "${KEYS}"); do
KEY_ID=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["id"]')
KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
echo $KEY_ID $KEY_NAME
done
}
# list the first group of keys
$ list_keys 5 0
10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13
# list the second group of keys
$ list_keys 5 5
3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4
# list the third group of keys
$ list_keys 5 10
87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11
# list the last group of keys
$ list_keys 5 15
cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5
# delete the test keys
$ KEYS=$(ibmcloud kp keys --output json | jq -r '.[] | .id')
$ for KEY_ID in $(echo "${KEYS}"); do
KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
if [[ $KEY_NAME == *"my-test-key-"* ]]; then
echo "Deleting... $KEY_NAME $KEY_ID"
ibmcloud kp key delete $KEY_ID
fi
done
(output not shown)
Beispiel 6
Listet die Schlüssel auf der Basis der Schlüsselstatus (Active, Suspended) in der Instanz Key Protect auf.
# list active and suspended keys
$ ibmcloud kp keys --key-states active,suspended
Retrieving keys...
OK
Key ID Key Name
ef2cc155-fe56-492c-845c-4d1f0688c7ba my-active-key
636e9f3a-feaf-4033-8603-687754dc7e51 my-suspended-key
Beispiel 7
Listet die Schlüssel auf der Basis des Schlüsseltyps (Root) in der Instanz Key Protect auf.
# list root keys
$ ibmcloud kp keys -t root
Retrieving keys...
OK
Key ID Key Name
2f1cb135-fa16-40dc-815c-4d1f0ee8c7ba my-root-key
Beispiel 8
Listet die Schlüssel in der Key Protect-Instanz mit dem Schlüsselnamen oder Alias auf, der exakt mit den Zeichen in der Zeichenfolge "TEST" ohne Anführungszeichen übereinstimmt.
# list keys with identifiers exactly matching TEST
$ ibmcloud kp keys -l exact:TEST
Retrieving keys...
OK
Key ID Key Name
636e9f3a-feaf-4033-8603-687754dc7e51 TEST
Beispiel 9
Listet die Schlüssel in der Key Protect-Instanz auf und sortiert die Schlüssel basierend auf ihrer ID und dem Datum, an dem der Schlüssel erstellt wurde, beginnend mit dem neuesten (der Bindestrich '-' gibt die Sortierung in absteigender Reihenfolge an).
# sort keys by id and descending creationDate
$ ibmcloud kp keys -b id,-creationDate
Retrieving keys...
OK
Key ID Key Name
ef2cc155-fe56-492c-845c-4d1f0688c7ba my-last-key
2f1cb135-fa16-40dc-815c-4d1f0ee8c7ba my-first-key
Erforderliche Parameter
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-b, --sort-bySortieren Sie die Schlüssel basierend auf den Parametern. Die Standardeigenschaft für die Sortierung von Ergebnissen ist "id". '-' vor dem Parameter gibt die Sortierung in absteigender Reihenfolge an. Folgende Sortierparameter werden derzeit unterstützt:
- ID
- Status
- extractable
- importiert
- creationDate
- lastUpdateDate
- lastRotateDate
- deletionDate
- expirationDate
-
-c, --crnFügt den Cloudressourcennamen (CRN) in die Ausgabe ein.
-
-f, --key-filterFiltern Sie die Schlüssel anhand der Parameter. Die unterstützten Schlüsselfilterparameter sind:
- creationDate
- deletionDate
- expirationDate
- extractable
- lastUpdateDate
- lastRotateDate
- Status
Die unterstützenden Operatoren für Datumsangaben sind:
- GT (größer als)
- gte (größer als oder gleich)
- LT (kleiner als)
- lte (kleiner oder gleich)
Die Ergebnisse sind eine exakte Übereinstimmung, falls einer dieser Operatoren fehlt.
-
--key-statesDer Status der abzurufenden Schlüssel. Liste der Zeichenfolgen mit gültigen Status-
Active,Suspended,Deactivated,Destroyed. (Standardwert:active,suspended,deactivated) -
-l, --key-searchListet Schlüssel auf der Basis eines Suchbegriffs mit vorangestellten Qualifikationsmerkmalen auf (z. B.
exact,not,alias,name). Weitere Details finden Sie in der API-Dokumentation. -
-n, --number-of-keysBegrenzt die Anzahl der abzurufenden Schlüssel. Der Standardwert ist 200 und der Maximalwert ist 5000.
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json.Wenn das JSON-Format (
--output json) für die Ausgabe festgelegt wird, ist der Cloudressourcenname (CRN) in der Ausgabe enthalten. -
-r, --key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, wenn der Benutzer keine Berechtigungen für den Standardschlüsselring hat.
-
-s, --starting-offsetRuft die Schlüssel ab der angegebenen relativen Position (Offset) ab. Für den Offset wird die Basis null verwendet, d. h. die Position 0 (null) ist der erste Schlüssel.
-
-t, --key-typeDer Typ der Schlüssel, die abgerufen werden sollen. Bei der Einstellung „
standard-key“ werden die Standardtasten abgerufen. Wenn die Einstellung auf „root-key“ gesetzt ist, werden die Root-Schlüssel abgerufen.
kp region-set
Anderen regionalen Key Protect-Endpunkt als Ziel angeben.
ibmcloud kp region-set REGION
-i, --instance-id INSTANCE_ID
[-u, --unset]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp region-set.
Beispiel 1
Wenn der Parameter REGION nicht angegeben ist, werden Sie aufgefordert, eine Region auszuwählen.
# set the region endpoint
$ ibmcloud kp region-set
Select a Region:
1. au-syd
2. ca-tor
3. eu-de
4. eu-gb
5. jp-osa
6. jp-tok
7. us-east
8. us-south
9. br-sao
10. staging (us-south)
Enter a number:
5
OK
Beispiel 2
Region explizit festlegen
# set the region endpoint to "us-south"
$ ibmcloud kp region-set us-south
OK
Im Parameter REGION muss ein gültiger regionaler Endpunkt angegeben werden.
# this should fail (not a valid regional endpoint)
$ ibmcloud kp region-set not-a-region
FAILED
Beispiel 3
Festlegung des regionalen Endpunkts aufheben (entfernen)
# remove the regional endpoint
$ ibmcloud kp region-set -u
OK
Erforderliche Parameter
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
REGIONEinen regionalen Endpunkt angeben. Wenn dieser optionale Parameter nicht angegeben ist, werden Sie aufgefordert, einen regionalen Endpunkt aus einer Liste auszuwählen.
-
-u, --unsetFestlegung des regionalen Endpunkts aufheben (entfernen).
kp registrations
Registrierungen sind Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen (z. B. Cloud Object Storage-Buckets oder Bereitstellungen von Clouddatenbanken).
Beispiel: In Key Protect erstellen Sie einen Stammschlüssel, der von COS verwendet wird, um Daten im Ruhezustand zu schützen.
Die Beziehung zwischen anderen Cloudressourcen und Key Protect wird als registration bezeichnet.
Ein Rootschlüssel darf nicht gelöscht werden, wenn Ressourcen wie COS-Buckets und Objekte von dem Rootschlüssel abhängig sind. Wenn Sie den Rootschlüssel löschen, können Sie diese Ressourcen nicht wiederherstellen. Dieser Vorgang wird als "Krypto-Shredding" bezeichnet und kann nicht rückgängig gemacht werden.
ibmcloud kp registrations
-i, --instance-id INSTANCE_ID
[-r, --key-ring KEY_RING_ID]
[-c, --crn-query CRN_PATTERN]
[-k, --key-id KEY_ID_OR_ALIAS]
[-o, --output OUTPUT]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp registrations.
In Registrierungsbeispielen werden viele Cloudressourcennamen (CRNs) angezeigt. CRNs folgen diesem Format:
crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource
Siehe „Cloud Resource Names“ für eine ausführliche Erläuterung der CRN-Felder.
Beispiel 1
Alle Registrierungen auflisten (dazu können Cloudressourden wie Datenbanken, Speicher, Rechenressourcen, Container oder Messaging gehören)
Dieses Beispiel zeigt die Registrierung zwischen Cloud Object Storage (COS) und Key Protect.
# view all registrations
$ ibmcloud kp registrations --output json
[
{
"keyId": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
"resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:bucket:my-cos-kms-bucket",
"createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::",
"creationDate": "2020-06-15T16:07:37Z",
"lastUpdated": "2020-06-15T16:07:37Z",
"keyVersion": { "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f", "creationDate": "2020-06-15T16:05:53Z"
}
}
]
Beispiel 2
Dieses Beispiel zeigt den vollständigen Lebenszyklus von zwei Cloudressourcen (Cloud Object Storage und Key Protect – durch die Erstellung von Key Protect-Instanzen und die Erstellung einer Richtlinie zwischen ihnen zum Löschen der Instanzen.
Übersicht der einzelnen Schritte
| Schritt | Wo | Beschreibung |
|---|---|---|
| 1 | Befehlszeilenschnittstelle | Instanzen von Cloud Obobject Storage (COS) und Key Protect (KP) erstellen |
| 2 | Befehlszeilenschnittstelle | Richtlinie für den Zugriff von COS auf KP-Verschlüsselungsschlüssel erstellen |
| 3 | Befehlszeilenschnittstelle | KP-Rootschlüssel erstellen, der von COS zum Verschlüsseln von Daten verwendet wird |
| 4 | Konsolenbenutzerschnittstelle | COS-Bucket erstellen und KP-Verschlüsselung angeben (dieser Schritt erfolgt in der Konsolenbenutzerschnittstelle, da derzeit keine API- oder CLI-Unterstützung verfügbar ist) |
| 5 | Befehlszeilenschnittstelle | KP-Registrierung anzeigen |
| 6 | Befehlszeilenschnittstelle | Objekt hoch- oder herunterladen, um die Zusammenarbeit zwischen COS und KP zu überprüfen |
| 7 | Befehlszeilenschnittstelle | COS-Bucket und KP-Rootschlüssel löschen |
| 8 | Befehlszeilenschnittstelle | Autorisierungsrichtlinie zwischen COS und KP löschen |
| 9 | Befehlszeilenschnittstelle | COS- und KP-Instanzen löschen |
Diese Befehle zeigen COS und Key Protect Servicepläne an. Im Befehl ibmcloud resource service-instance-create muss der Namen eines Serviceplans (service plan name) und ein Standort (location) angegeben
werden, der im Katalog enthalten ist.
# show the catalog offerings for cloud object storage (COS) and Key Protect
$ ibmcloud catalog service cloud-object-storage
$ ibmcloud catalog service kms
Das Beispiel umfasst mehrere Schritte und sollte in Absprache mit der bereitgestellten Zusammenfassung durchgeführt werden.
# create a Cloud Object Storage (COS) instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1
$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global
Creating service instance my-cos-1 in resource group Default of account <account name> as <email address>...
OK
Service instance my-cos-1 was created.
Name: my-cos-1
ID: crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::
GUID: 4b636e74-f3ca-40bb-80b8-3bd21801ccb8
Location: global
State: active
Type: service_instance
Sub Type:
Allow Cleanup: false
Locked: false
Created at: 2020-06-15T16:03:39Z
Updated at: 2020-06-15T16:03:39Z
Last Operation: Status create succeeded Message Completed create instance operation
# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=4b636e74-f3ca-40bb-80b8-3bd21801ccb8
# create a Key Management Service (KMS) service instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1
$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south
Creating service instance my-kms-1 in resource group Default of account <account name> as <email address>...
OK
Service instance my-kms-1 was created.
Name: my-kms-1
ID: crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a::
GUID: b3933ab0-d579-46fc-8ed5-351aea657b9a
Location: us-south
State: active
Type: service_instance
Sub Type: kms
Allow Cleanup: false
Locked: false
Created at: 2020-06-15T16:04:40Z
Updated at: 2020-06-15T16:04:40Z
Last Operation: Status create succeeded Message Completed create instance operation
# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=b3933ab0-d579-46fc-8ed5-351aea657b9a
# create a policy for COS to read KMS; source is COS, target is KMS
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
--source-service-instance-id $COS_INSTANCE_ID \
--target-service-instance-id $KP_INSTANCE_ID
Creating authorization policy under account ea998d3389c3473aa0987652b46fb146 as <email address>...
OK
Authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 was created.
ID: 18cfc980-4458-4313-972e-93f312cdcd81
Source service name: cloud-object-storage
Source service instance: 4b636e74-f3ca-40bb-80b8-3bd21801ccb8
Target service name: kms
Target service instance: b3933ab0-d579-46fc-8ed5-351aea657b9a
Roles: Reader
# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=18cfc980-4458-4313-972e-93f312cdcd81
# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json
{
"id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
"name": "my-cos-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": false,
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a:key:2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f"
}
# capture the KP root key id
$ MY_COS_KEY_ID=2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f
# create a COS bucket and set KP encryption
# must be done in the console user interface (UI) because
# there is no API or CLI support at this time
# 1 - In the UI, go to... Resource list -> Storage -> my-cos-1
# 2 - Create bucket -> custom bucket
# 3 - Properties of a custom bucket
# a - bucket name: my-cos-kms-bucket
# b - location: us-south (same region as KP)
# c - checkbox: Key Protect
# d - instance: my-kms-1
# e - key name: my-cos-key
# f - button: Create bucket
# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket
# view the KP registration; it's a result of creating the COS bucket
$ ibmcloud kp registrations --output json
[
{
"keyId": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
"resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:bucket:my-cos-kms-bucket",
"createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::",
"creationDate": "2020-06-15T16:07:37Z",
"lastUpdated": "2020-06-15T16:07:37Z",
"keyVersion": { "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f", "creationDate": "2020-06-15T16:05:53Z"
}
}
]
# list the bucket
$ ibmcloud cos list-buckets --ibm-service-instance-id $COS_INSTANCE_ID
OK
1 bucket found in your account:
Name Date Created
my-cos-kms-bucket Jun 15, 2020 at 16:07:38
# upload an object to COS
$ ibmcloud cos put-object --bucket $COS_BUCKET --key '/cos-file.txt' --body cos-file-upload.txt
OK
Successfully uploaded object '/cos-file.txt' to bucket 'my-cos-kms-bucket'.
# get the object from COS
$ ibmcloud cos get-object --bucket $COS_BUCKET --key '/cos-file.txt' cos-file-download.txt
OK
Successfully downloaded '/cos-file.txt' from bucket 'my-cos-kms-bucket'
20 B downloaded.
# verify that the upload and download files are the same
$ cat cos-file-upload.txt
This is a test file
$ cat cos-file-download.txt
This is a test file
# delete the object
$ ibmcloud cos delete-object --bucket $COS_BUCKET --key '/cos-file.txt' --force
OK
Delete '/cos-file.txt' from bucket 'my-cos-kms-bucket' ran successfully.
# delete the bucket
$ ibmcloud cos delete-bucket --bucket $COS_BUCKET --force
OK
Successfully deleted bucket 'my-cos-kms-bucket'. The bucket 'my-cos-kms-bucket' will be available for reuse after 15 minutes.
# list the bucket (it should no longer exist)
$ ibmcloud cos list-buckets --ibm-service-instance-id $COS_INSTANCE_ID
OK
No buckets found in your account.
# view the KP registration (it should no longer exist)
$ ibmcloud kp registrations --output json
# delete the KP root key; COS no longer uses it
$ ibmcloud kp key delete $MY_COS_KEY_ID --output json
{
"id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f"
}
# delete the authorization policy between COS AND KMS
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force
Deleting authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 under account ea998d3389c3473aa0987652b46fb146...
OK
Authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 is deleted successfully
# view the authorization policy (it should no longer exist)
$ ibmcloud iam authorization-policies
Getting authorization policies under account ea998d3389c3473aa0987652b46fb146 as <email address>...
OK
No policy found
# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force
Deleting service instance my-kms-1 in resource group Default under account <account name> as <email address>...
OK
Service instance my-kms-1 with ID crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a:: is deleted successfully
# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force
Deleting service instance my-cos-1 in resource group Default under account <account name> as <email address>...
OK
Service instance my-cos-1 with ID crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:: is deleted successfully
# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances
Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.
Beispiel 3
Dieses Beispiel zeigt, was passiert, wenn eine der folgenden Situationen zwischen COS und Key Protect eintritt (KP) – COS ist nicht in der Lage, auf den Key Protect-Rootschlüssel zuzugreifen.
- KP-Rootschlüssel löschen
- CMS/KP-Berechtigungsrichtlinie entfernen
Im vorliegenden Beispiel werden nur relevante Ausgabedaten des Befehls angezeigt.
# create a Cloud Object Storage (COS) service instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1
$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global
# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=c488e11a-c8a0-4688-b002-9327266ea55f
# create a Key Management Service (KMS) service instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1
$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south
# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=26f4b198-952a-47ab-9f44-ef69c038b3c5
# create a policy for COS to read KMS; source is COS, target is KMS (Key Protect)
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
--source-service-instance-id $COS_INSTANCE_ID \
--target-service-instance-id $KP_INSTANCE_ID
# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=594b946e-0e90-44ea-ac62-6cbb42450cd5
# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json
# capture the KP root key id
$ MY_COS_KEY_ID=464d78c3-57dc-49a5-b932-8ebf8f8c7771
# create a COS bucket and set KP encryption
# must be done in the console user interface (UI) because
# there is no API or CLI support at this time
# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket
# upload an object to COS
$ ibmcloud cos put-object --bucket $COS_BUCKET --key '/cos-file.txt' --body cos-file-upload.txt
# delete the authorization policy between COS AND KMS - this breaks everything
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force
# get the object from COS - this fails because COS no longer has access to KMS
$ ibmcloud cos get-object --bucket $COS_BUCKET --key '/cos-file.txt' cos-file-download.txt
FAILED
ServiceNotAuthorized: The specified COS Service Instance does not have sufficient
permissions to access the resource provided in the ibm-sse-kp-customer-root-key-crn request header
status code: 401,
request id: a51e1da3-9bf7-4cc9-9eb0-0d074c7f9093,
host id:
# delete the object
$ ibmcloud cos delete-object --bucket $COS_BUCKET --key '/cos-file.txt' --force
# delete the bucket
$ ibmcloud cos delete-bucket --bucket $COS_BUCKET --force
# delete the KP root key - this fails because the registration was not deleted
$ ibmcloud kp key delete $MY_COS_KEY_ID --output json
FAILED
kp.Error:
correlation_id='fffdd8a9-405a-4a91-a5a7-52c30d11424d',
msg='Conflict: Key could not be deleted. Please see "reasons" for more details.',
reasons='[PROTECTED_RESOURCE_ERR: Key is protecting one or more cloud resources -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/docs/key-protect?topic=key-protect-troubleshooting#unable-to-delete-keys]'
# delete the KP root key; use --force because the registration between COS and KMS still exists
$ ibmcloud kp key delete $MY_COS_KEY_ID --force --output json
# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force
# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force
# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances
Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.
Erforderliche Parameter
-
KEY_ID_OR_ALIASDie UUID oder der Alias des Schlüssels im Format „ v4 “, den Sie abfragen möchten.
-
-i, --instance-idDie IBM Cloud-Instanz-ID, die Ihre Key Protect-Instanz identifiziert.
Sie können eine Umgebungsvariable festlegen, anstatt
-imit dem folgenden Befehl anzugeben:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Optionale Parameter
-
-c, --crn-queryGibt die CRN-Abfrage an, deren Registrierungen aufgelistet werden sollen.
-
-k, --key-idGibt die Schlüssel-ID an, deren Registrierungen aufgelistet werden sollen.
-
-o, --outputLegen Sie das CLI-Ausgabeformat fest. Standardmäßig werden alle Befehle im Tabellenformat ausgegeben. Zum Ändern des Ausgabeformats in JSON verwenden Sie
--output json.Wenn das JSON-Format (
--output json) für die Ausgabe festgelegt wird, ist der Cloudressourcenname (CRN) in der Ausgabe enthalten. -
-r, --key-ringEin eindeutiger, lesbarer Name für den Schlüsselring. Erforderlich, um Registrierungen auf dem angegebenen Schlüsselring anzuzeigen.
Befehl 'ibmcloud kp kmip'
Die KMIP-Befehle ermöglichen API-Zugriff auf KMIP-Adapter und -Objekte.
| Unterbefehl | Status v0.10 | Beschreibung |
|---|---|---|
| adapter-Erstellen | KMIP-Adapter erstellen | |
| Adapter | KMIP-Adapter abrufen | |
| Adapter | KMIP-Adapter in einer Instanz auflisten | |
| Adapter-Löschen | KMIP-Adapter löschen | |
| cert-create | Einem Adapter zugeordnetes KMIP-Clientzertifikat erstellen | |
| cert | KMIP-Clientzertifikat abrufen | |
| Zertifikate | Einem KMIP-Adapter zugeordnetes KMIP-Clientzertifikat auflisten | |
| cert-delete | KMIP-Clientzertifikat löschen | |
| Objekt | KMIP-Objekt abrufen | |
| Objekte | KMIP-Objekte in einem KMIP-Adapter auflisten | |
| Objekt-Löschen | KMIP-Objekt löschen |
kp kmip adapter-erstellen
Verwenden Sie kmip adapter-create, um einen KMIP-Adapter unter einer Key Protect-Instanz zu erstellen. Adapter werden zum Gruppieren und Verwalten von KMIP-Objekten verwendet. KMIP-Adapter unter derselben Key Protect-Instanz müssen
einen eindeutigen Namen haben, da Adapter über den Namen oder die ID abgerufen werden können. Für alle KMIP-bezogenen CLI-Befehle kann jedes Argument oder Flag, das eine Adapter-ID verwendet, auch einen Adapternamen verwenden.
Je nach Profil müssen möglicherweise unterschiedliche Informationen angegeben werden, um den Adapter zu erstellen. Derzeit wird nur ein Profil des KMIP-Adapters unterstützt: native_1.0.
Das Profil native_1.0 benötigt nur die ID eines Rootschlüssels, der im Flag -k angegeben werden muss.
$ ibmcloud kp kmip adapter-create
-i, --instance-id INSTANCE_ID
-p, --profile PROFILE
[-k, --crk-id CRK_ID]
[-n, --name NAME]
[-d, --description DESC]
[-o, --output OUTPUT]
Beispiel
Die folgenden Beispiele veranschaulichen den Befehl kp kmip adapter-create.
Beispiel 1
In diesem Beispiel wird der KMIP-Adapter mit dem Profil native_1.0 erstellt.
$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0 -d "my description"
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID Adapter Profile Adapter Name Adapter Description
d6a00af1-277f-40e8-b33e-da3a68752209 native_1.0 myadapter my description
$ ibmcloud kp kmip adapters
Targeting endpoint: not shown
Listing KMIP Adapters...
OK
Adapter ID Adapter Profile Adapter Name Created At Updated At
d6a00af1-277f-40e8-b33e-da3a68752209 native_1.0 myadapter 2024-03-20 22:06:43 +0000 UTC 2024-03-20 22:06:43 +0000 UTC
kp-kmip-Adapter
Rufen Sie Details zu einem KMIP-Adapter ab, einschließlich Erstellungs-und Aktualisierungsdatum. Sie können die Adapter-ID oder den Adapternamen verwenden.
$ ibmcloud kp kmip adapter ADAPTER_NAME_OR_ID
-i, --instance-id INSTANCE_ID
[-o, --output OUTPUT]
Beispiel
Die folgenden Beispiele veranschaulichen den Befehl kp kmip adapter.
Beispiel 1
Beachten Sie, dass einige Attribute für den Adapter nur im JSON-Ausgabeformat sichtbar sind.
$ ibmcloud kp key create rootKmip
Targeting endpoint: not shown
Creating key: 'rootKmip', in instance: '8944cc2d-7e00-46b2-baa4-787051e0f7b3'...
OK
Key ID Key Name
47a0ad90-204d-4e45-aa5b-68ed40a05fa2 rootKmip
$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID Adapter Profile Adapter Name Adapter Description
d6a00af1-277f-40e8-b33e-da3a68752209 native_1.0 myadapter -
# retreiving adapter by name
$ ibmcloud kp kmip adapter myadapter
Targeting endpoint: not shown
Getting KMIP Adapter...
OK
Adapter ID Adapter Profile Adapter Name Created At Updated At Adapter Description
d6a00af1-277f-40e8-b33e-da3a68752209 native_1.0 myadapter 2024-03-20 22:06:43 +0000 UTC 2024-03-20 22:06:43 +0000 UTC -
# retrieving adapter by ID
$ ibmcloud kp kmip adapter d6a00af1-277f-40e8-b33e-da3a68752209 -o json
{
"id": "d6a00af1-277f-40e8-b33e-da3a68752209",
"profile": "native_1.0",
"profile_data": {
"crk_id": "47a0ad90-204d-4e45-aa5b-68ed40a05fa2"
},
"name": "myadapter",
"description": "",
"created_by": "IBMid-664003LB2T",
"created_at": "2024-03-20T22:06:43Z",
"updated_by": "IBMid-664003LB2T",
"updated_at": "2024-03-20T22:06:43Z"
}
kp-kmip-Adapter
Listen Sie die KMIP-Adapter auf, die in Ihrer Key Protect-Instanz verfügbar sind.
$ ibmcloud kp kmip adapters
-i, --instance-id INSTANCE_ID
[-o, --output OUTPUT]
[-n, --limit LIMIT]
[-s, --starting-offset OFFSET]
[-t, --total-count]
[-k, --crk-id CRK_ID]
Beispiel
Die folgenden Beispiele veranschaulichen den Befehl kp kmip adapters. Verwenden Sie die -k Flag, um nur Adapter anzuzeigen, die eine bestimmte CRK-ID verwenden.
Beispiel 1
$ ibmcloud kp kmip adapters -n 100 -s 0
Targeting endpoint: not shown
Listing KMIP Adapters...
OK
Adapter ID Adapter Profile Adapter Name Created At Updated At
d6a00af1-277f-40e8-b33e-da3a68752209 native_1.0 myadapter 2024-03-20 22:06:43 +0000 UTC 2024-03-20 22:06:43 +0000 UTC
kp-kmip-adapter-delete
Löscht einen KMIP-Adapter. Dadurch werden alle Objekte und Zertifikate gelöscht, die dem Adapter zugeordnet sind.
$ ibmcloud kp kmip adapter-delete ADAPTER_NAME_OR_ID
-i, --instance-id INSTANCE_ID
[-f, --force]
[-y, --skip-confirm]
Beispiel
Die folgenden Beispiele veranschaulichen den Befehl kp kmip adapter-delete.
Beispiel 1
$ ibmcloud kp kmip adapter-create -n adap -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID Adapter Profile Adapter Name Adapter Description
e97e4297-4a6f-41c9-ae67-0920715964fd native_1.0 adap -
$ ibmcloud kp kmip adapter-delete e97e4297-4a6f-41c9-ae67-0920715964fd
Targeting endpoint: not shown
Deleting KMIP Adapter...
OK
kp kmip cert-create
Verwenden Sie kp kmip cert-create, um ein KMIP-Clientzertifikat zu erstellen, das einem bestimmten KMIP-Adapter zugeordnet werden kann. Das im -c-Flag angegebene Zertifikat sollte das Format x509 PEM haben. Die Zertifikatsdatei
kann mit dem Präfix @ hochgeladen werden, um einen Dateipfad anzugeben, oder indem der Inhalt der Zertifikatsdatei direkt für das Flag bereitgestellt wird.
KMIP-Client-Zertifikate werden verwendet, um eine Verbindung mit dem KMIP-Server herzustellen und sich durch gegenseitige TLS ( mTLS ) zu authentifizieren. Ein Zertifikat muss registriert werden, bevor KMIP-Protokolloperationen mit einem KMIP-Adapter ausgeführt werden können. Es kann bis zu 5 Minuten dauern, bis das Zertifikat in KMIP-Operationen verwendbar ist.
Zertifikate müssen innerhalb desselben KMIP-Adapters einen eindeutigen Namen haben und der Inhalt des Zertifikats muss selbst zwischen mehreren Adaptern eindeutig sein.
Siehe auch: KMIP-Protokollspezifikationen
$ ibmcloud kp kmip cert-create
-a, --adapter ADAPTER_NAME_OR_ID
-c, --cert-string {@path/to/cert | CERTIFICATE_STRING}
[-n, --name NAME]
-i, --instance-id INSTANCE_ID
[-o, --output OUTPUT]
Beispiel
Die folgenden Beispiele veranschaulichen den Befehl kp kmip cert-create.
Beispiel 1
Dieses Beispiel zeigt zwei Möglichkeiten zum Hochladen derselben Zertifikatsdatei.
$ ibmcloud kp key create rootKmip
Targeting endpoint: not shown
Creating key: 'rootKmip', in instance: '8944cc2d-7e00-46b2-baa4-787051e0f7b3'...
OK
Key ID Key Name
47a0ad90-204d-4e45-aa5b-68ed40a05fa2 rootKmip
$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID Adapter Profile Adapter Name Adapter Description
d6a00af1-277f-40e8-b33e-da3a68752209 native_1.0 myadapter -
$ export CERT=$(cat ./cert.pem)
$ ibmcloud kp kmip cert-create -n mycert -c "$CERT" -a myadapter
Targeting endpoint: not shown
Creating KMIP Client Certificate...
OK
Certificate ID Certificate Name Created At
3f550b96-86bc-44fe-8d1d-113e57067219 mycert 2024-03-20 22:08:03 +0000 UTC
## Alternatively, you can also provide the filepath of the certificate
$ ibmcloud kp kmip cert-delete mycert -a myadapter
Targeting endpoint: not shown
Deleting KMIP Client Certificate...
OK
$ ibmcloud kp kmip cert-create -n mycert -c @./cert.pem -a myadapter
Targeting endpoint: not shown
Creating KMIP Client Certificate...
OK
Certificate ID Certificate Name Created At
a279fded-06d1-45a1-8a95-901f194fb937 mycert 2024-03-20 22:11:34 +0000 UTC
kp-kmip-zertifikat
Ruft ein bestimmtes KMIP-Clientzertifikat ab. Ein Zertifikat kann anhand der ID oder des Namens abgerufen werden.
$ ibmcloud kp kmip cert CERTIFICATE_ID
-a, --adapter ADAPTER_NAME_OR_ID
-i, --instance-id INSTANCE_ID
[-o, --output OUTPUT]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp kmip cert.
Beispiel 1
Zertifikat nach Namen abrufen:
$ ibmcloud kp kmip cert mycert -a myadapter
Targeting endpoint: not shown
Getting KMIP Client Certificate...
OK
Certificate ID Certificate Name Created At
a279fded-06d1-45a1-8a95-901f194fb937 mycert 2024-03-20 22:11:34 +0000 UTC
Beispiel 2
Zertifikat nach UUID im JSON-Format abrufen Der Inhalt des Zertifikats im PEM-Format wird im JSON-Body zurückgegeben.
$ ibmcloud kp kmip cert a279fded-06d1-45a1-8a95-901f194fb937 -a myadapter -o json
{
"id": "a279fded-06d1-45a1-8a95-901f194fb937",
"name": "mycert",
"certificate": "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIUNXqfJMkAHOBHz6+ekETDlCqIEqUwDQYJKoZIhvcNAQEL\nBQAw
... CERTIFICATE CONTENTS ABBREVIATED ...
Y6uFtHuQSpud0C\n-----END CERTIFICATE-----\n",
"created_by": "IBMid-12345678",
"created_at": "2024-03-20T22:11:34Z"
}
kp-kmip-Zertifikate
Auflisten aller KMIP-Clientzertifikate, die einem bestimmten KMIP-Adapter zugeordnet sind.
$ ibmcloud kp kmip certs
-a, --adapter ADAPTER_NAME_OR_ID
[-n, --limit LIMIT]
[-s, --starting-offset OFFSET]
[-t, --total-count]
-i, --instance-id INSTANCE_ID
[-o, --output OUTPUT]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp kmip certs.
Beispiel 1
$ ibmcloud kp kmip certs -a myadapter
Targeting endpoint: not shown
Listing KMIP Client Certificates...
OK
Certificate ID Certificate Name Created At
a279fded-06d1-45a1-8a95-901f194fb937 mycert 2024-03-20 22:11:34 +0000 UTC
kp kmip cert-löschen
Löscht ein KMIP-Clientzertifikat.
$ ibmcloud kp kmip cert-delete CERTIFICATE_ID
-a, --adapter ADAPTER_NAME_OR_ID
-i, --instance-id INSTANCE_ID
Beispiele
Dies sind Beispiele für kp kmip cert-delete
Beispiel 1
$ ibmcloud kp kmip cert-delete -a myadapter mycert
Targeting endpoint: not shown
Deleting KMIP Client Certificate...
OK
kp-kmip-Objekt
KMIP-Objekte werden durch Operationen erstellt, die über einen KMIP-Client mit dem KMIP-Protokoll ausgeführt werden. Sie können nicht über die API erstellt, aber gelesen und gelöscht werden. Objekte gehören zu einem einzelnen Adapter.
Objekte haben keinen Namen und müssen nach ID abgerufen werden.
$ ibmcloud kp kmip object OBJECT_ID
-a, --adapter ADAPTER_NAME_OR_ID
-i, --instance-id INSTANCE_ID
[-o, --output OUTPUT]
Beispiele
Dies sind Beispiele für kp kmip object
Beispiel 1
$ ibmcloud kp kmip object 12365a82-5404-4bd9-a4c7-2b628ee18304 -a testadapter
Targeting endpoint: not shown
Getting KMIP Object...
OK
Object ID Object Type Object State Created At Updated At
12365a82-5404-4bd9-a4c7-2b628ee18304 Symmetric Key Active 2024-03-14 21:01:45 +0000 UTC 2024-03-14 21:01:45 +0000 UTC
Beispiel 2
Beim Abrufen eines KMIP-Objekts als JSON werden einige zusätzliche Attribute angezeigt, die in der normalen Tabellenansicht nicht sichtbar sind.
$ ibmcloud kp kmip object 12365a82-5404-4bd9-a4c7-2b628ee18304 -a testadapter -o json
{
"id": "12365a82-5404-4bd9-a4c7-2b628ee18304",
"kmip_object_type": 2,
"state": 2,
"created_by_kmip_client_cert_id": "531c18f3-4e37-447e-a7e0-e8676407bb75",
"created_by": "IBMid-123456",
"created_at": "2024-03-14T21:01:45Z",
"updated_by_kmip_client_cert_id": "531c18f3-4e37-447e-a7e0-e8676407bb75",
"updated_by": "IBMid-123456",
"updated_at": "2024-03-14T21:01:45Z"
}
kp-kmip-Objekte
Listet KMIP-Objekte auf und zeigt Informationen zu ihrem Objekttyp und Objektstatus unter anderen Metadaten an. Verwenden Sie das Flag -f, um nur nach Objekten mit einem bestimmten Status zu filtern. Standardmäßig ist der Statusfilter
auf 1,2,3,4 gesetzt.
Die Zahlen entsprechen den Objektstatus wie folgt:
- Voraktiv = 1
- Aktiv = 2
- Inaktiviert = 3
- Gefährdet = 4
- Gelöscht = 5
- Zerstört kompromittiert = 6
Siehe KMIP State Enumeration.
ibmcloud kp kmip objects
-a, --adapter ADAPTER_NAME_OR_ID
[-n, --limit LIMIT]
[-s, --starting-offset OFFSET]
[-t, --total-count]
-i, --instance-id INSTANCE_ID
[-o, --output OUTPUT]
Beispiele
Die folgenden Beispiele veranschaulichen den Befehl kp kmip objects.
Beispiel 1
$ ibmcloud kp kmip objects -a myadapter
Targeting endpoint: not shown
Listing KMIP Objects...
OK
Object ID Object Type Object State Created At Updated At
00196c59-c5c2-42d8-9729-703cd0389f60 Symmetric Key Compromised 2024-03-14 20:47:54 +0000 UTC 2024-03-14 20:47:54 +0000 UTC
02f1043c-0494-4399-82af-5395a14b019f Symmetric Key Pre-Active 2024-03-14 20:58:06 +0000 UTC 2024-03-14 20:58:06 +0000 UTC
08082ff4-821b-4689-83ec-15cac5bd1939 Symmetric Key Pre-Active 2024-02-22 00:10:46 +0000 UTC 2024-02-22 00:11:23 +0000 UTC
0c1ea28d-dfaa-404a-b9c4-fcdc3f5d8b02 Symmetric Key Deactivated 2024-03-14 21:05:48 +0000 UTC 2024-03-14 21:05:48 +0000 UTC
10b49b05-0101-4234-927b-20a3356da291 Symmetric Key Pre-Active 2024-03-14 21:26:54 +0000 UTC 2024-03-14 21:26:54 +0000 UTC
12365a82-5404-4bd9-a4c7-2b628ee18304 Symmetric Key Active 2024-03-14 21:01:45 +0000 UTC 2024-03-14 21:01:45 +0000 UTC
Beispiel 2
Mit dem Flag -f können Sie nach Objekten mit einem bestimmten Status filtern. Verwenden Sie Kommas, um mehrere Status anzugeben.
$ ibmcloud kp kmip objects -a testadapter -f 5,6
Targeting endpoint: not shown
Listing KMIP Objects...
OK
Object ID Object Type Object State Created At Updated At
03d38805-2bb2-4aa0-bbf3-dc4a6d5d0475 Symmetric Key Destroyed 2024-03-14 20:47:58 +0000 UTC 2024-03-14 20:47:58 +0000 UTC
08c94f34-0100-4331-b759-5937ed5b1228 Symmetric Key Destroyed 2024-03-14 20:46:38 +0000 UTC 2024-03-14 20:46:38 +0000 UTC
1a13e112-41f8-4d52-be08-a0946b8c22fa Symmetric Key Destroyed Compromised 2024-03-14 20:58:20 +0000 UTC 2024-03-14 20:58:20 +0000 UTC
kp kmip objekt-löschen
Löschen Sie ein KMIP-Objekt. Nur Objekte mit dem Status "Aktiv" oder "Nicht gelöscht" können erfolgreich gelöscht werden.
$ ibmcloud kp kmip object-delete OBJECT_ID
-a, --adapter ADAPTER_NAME_OR_ID
-i, --instance-id INSTANCE_ID
[-f, --force]
[-y, --skip-confirm]
Beispiele
Dies sind Beispiele für kp kmip object-delete
Beispiel 1
$ ibmcloud kp kmip object-delete 9b2f5af5-3534-4f02-8836-f89af37c4351 -a testadapter
Targeting endpoint: not shown
Deleting KMIP Object...
OK
kp-Krypto-Einheit
Mit dem Befehl kp crypto-unit können Sie Ihre Kryptoeinheiten verwalten. Beachten Sie, dass dieser Befehl für sich genommen nichts bewirkt. Sie müssen einen der Unterbefehle zusammen mit ihm verwenden.
NAME:
-ibmcloud key-protect crypto-unit - Manage crypto units
USAGE:
ibmcloud key-protect crypto-unit command [arguments...] [command options]
COMMANDS:
claim Claim crypto unit(s)
master-key Commands to manage Master Keys (MKs) of crypto unit(s)
master-keys List the MKs uploaded to crypto unit(s)
sig-key Generate a signature key file compatible for use as a crypto unit user credential
user Manage users in crypto unit(s)
users List users in crypto unit(s)
zeroize Zeroize a crypto unit
help, h Show help
Enter 'ibmcloud key-protect crypto-unit help [command]' for more information about a command.
Wenn Sie Probleme mit dem Befehl kp crypto-unit haben, lesen Sie den Abschnitt Fehlerbehebung.
zeroize
Es wird dringend davon abgeraten, Ihre Kryptoeinheiten auf Null zu setzen, sobald Sie Schlüssel erstellt oder Schlüsseloperationen durchgeführt haben. Wenn nach diesem Zeitpunkt eine Nullsetzung erforderlich ist, müssen alle Schlüssel gelöscht und bereinigt werden. Beachten Sie, dass es eine vierstündige Wartezeit gibt, bevor ein gelöschter Schlüssel bereinigt werden kann.
NAME:
zeroize - Zeroize a crypto unit
USAGE:
zeroize --id CRYPTO_UNIT_ID
OPTIONS:
--id value Required. The ID of the crypto unit to zeroize
claim
ibmcloud kp krypto-unit anspruch
NAME:
claim - Claim crypto unit(s)
USAGE:
claim --credential ADMIN_KEY_FILE
OPTIONS:
--credential value Required. Path to file containing signature key that will be associated with the user. Must be between 1 and 255 characters. Do not include file passphrase
--ids strings Optional. List of crypto unit IDs to target, can be provided as a comma-separated list, or repeating the flag. If omitted, all crypto units will be targeted
master-key
NAME:
ibmcloud key-protect crypto-unit master-key - Commands to manage Master Keys (MKs) of crypto unit(s)
USAGE:
ibmcloud key-protect crypto-unit master-key command [arguments...] [command options]
COMMANDS:
generate Generate Master Key (MK) material. This command does not store the MK material in crypto unit used to generate it. Use `crypto-unit master-key import` to upload an MK to a crypto unit
import Import a Master Key (MK) to crypto unit(s)
help, h Show help
master-key generate
NAME:
generate - Generate Master Key (MK) material. This command does not store the MK material in crypto unit used to generate it. Use `crypto-unit master-key import` to upload an MK to a crypto unit
USAGE:
generate --keyshare-files KEYSHARE_FILES --keyshare-minimum KEYSHARE_MINIMUM --algo ALGO --key-name KEYNAME --cu CRYPTO_UNITS
OPTIONS:
--algo value Required. Algorithm that generated MK will be compatible with. Only AES-256 is supported
--auth value Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
--cu value Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
--key-name value Required. MK name. Must be between 1 and 8 characters
--keyshare-files value Required. Array specifying file paths to write MK key share files to. Format: '["file1.key#filepwd1", "file2.key#filepwd2"]'. File path must be 1-255 characters. Passphrase must be between 6 and 255 characters. Omit # to be prompted to enter file passphrase.
--keyshare-minimum value Required. Number of key shares needed to reconstruct the MK. Must be between 2 and 255 and less than or equal to the number of keyshare files
master-key import
NAME:
import - Import a Master Key (MK) to crypto unit(s)
USAGE:
import --keyshare-files KEYSHARE_FILES --auth AUTH
OPTIONS:
--auth value Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
--cu value Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
--keyshare-files value Required. Array specifying file paths to MK key share files. Format: '["file1.key#filepwd1", "file2.key#filepwd2"]'. File path must be 1-255 characters. Passphrase must be between 6 and 255 characters. Omit # to be prompted to enter file passphrase.
master-keys
NAME:
master-keys - List the MKs uploaded to crypto unit(s)
USAGE:
master-keys [--cu CRYPTO_UNITS]
OPTIONS:
--cu value Optional. Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive. If omitted, lists MKs in all crypto units of the instance.
sig-key
NAME:
ibmcloud key-protect crypto-unit sig-key - Generate a signature key file compatible for use as a crypto unit user credential
USAGE:
ibmcloud key-protect crypto-unit sig-key command [arguments...] [command options]
COMMANDS:
generate Generate a signature key file compatible for use as a crypto unit user credential
help, h Show help
Enter 'ibmcloud key-protect crypto-unit sig-key help [command]' for more information about a command.
sig-key generate
NAME:
generate - Generate a signature key file compatible for use as a crypto unit user credential
USAGE:
generate --file FILE --passphrase PASSWORD --algo RSA-2048
OPTIONS:
--algo value The algorithm type used to generate the signature key. Only RSA-2048 is supported
--file value Required. The file path to write the signature key to. Must be between 1 and 255 characters
--passphrase value --passphrase string Optional passphrase used to encrypt the signature key file. Provide "-" to prompt for password
user
NAME:
ibmcloud key-protect crypto-unit user - Manage users in crypto unit(s)
USAGE:
ibmcloud key-protect crypto-unit user command [arguments...] [command options]
COMMANDS:
add Add new user to crypto unit(s)
remove Remove user from crypto unit
help, h Show help
Enter 'ibmcloud key-protect crypto-unit user help [command]' for more information about a command.
user-add
NAME:
add - Add new user to crypto unit(s)
USAGE:
add --type TYPE --name NAME --credential CREDENTIAL --auth AUTH
OPTIONS:
--auth value Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
--credential value Required. Path to file containing signature key that will be associated with the user. Must be between 1 and 255 characters. Do not include file passphrase
--cu value Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
--name value Required. Name of the user to add. Must be between 1 and 255 characters
--type value Required. Type of user to add. Allowable values are: admin, kmsCryptoUser
user-remove
NAME:
remove - Remove user from crypto unit
USAGE:
remove -u USER --cu CRYPTO_UNITS
OPTIONS:
--cu value Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
-u value, --user value Required. The username of the user to remove from crypto-unit(s)
users
NAME:
users - List users in crypto unit(s)
USAGE:
users [--cu CRYPTO_UNITS]
OPTIONS:
--cu value Optional. Crypto unit(s) for the request to target. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab"}]' or '@/path/to/cu.json'. If omitted, lists users in all crypto units of the instance.
kp crypto-units
Mit dem Befehl kp crypto-units können Sie Ihre Kryptoeinheiten auflisten.
NAME:
ibmcloud kp - List crypto units allocated to instance
USAGE:
ibmcloud crypto-units
COMMANDS:
Additional help topics:
Use "export KP_INSTANCE_ID=TARGET_INSTANCE_ID" or "ibmcloud kp command [arguments...] [command options] -i TARGET_INSTANCE_ID" to set a target instance ID.
Nächste Schritte
Suchen Sie nach zugehörigen Operationen in der API-Dokumentation.