Fehlernachrichten
Diese Fehlernachrichten werden von Key Protect erstellt und in der Benutzeroberfläche angezeigt.
Die meisten Fehlernachrichten weisen ein oder mehrere Beispiele auf, in der Regel curl
, die die Anforderung und die Antwort anzeigen.
Dies ist keine vollständige Liste aller Fehlernachrichten. Einige Nachrichten werden von anderen Systemen erstellt, wie z. B. Identity and Access Management (IAM), wobei die Fehlermeldung von einem anderen System, wie z. B. IAM, an Key Protect an den Benutzer weitergegeben wird.
Inhaltsverzeichnis
Das Inhaltsverzeichnis ist nach den Fehlernachrichten geordnet.
-
Die erste Liste sortiert die Fehlernachrichten nach HTTP-Statuscode
-
Eine weitere Liste sortiert die Fehlernachrichten nach Ursachencode
Bei Fehlernachrichten, die mehr als einmal vorkommen, wird der HTTP-Statuscode am Ende der Fehlernachricht angegeben.
- Summe der Erfassung entspricht nicht der Anzahl ... Details
- Daten im Hauptteil stimmen nicht mit Daten überein ... Details
- Extrahieren des Subjekts aus Träger ... Details
- Ungültige Hauptteildaten wurden übergeben ... Details
- Ungültiger Feldfehler ... Details
- Schlüssel konnte nicht gelöscht werden ... Details
- Schlüssel wurde bereits gelöscht ... Details
- Der Schlüssel besitzt keinen gültigen Status (409) Details
- Der Schlüssel besitzt keinen gültigen Status (422) Details
- Schlüssel schützt eine oder mehrere Cloud- ... Details
- Schlüsselmetadaten wurden beschädigt ... Details
- Die Schlüsselwiederherstellung ist abgelaufen ... Details
- KeyCreateImportAccess-Instanzrichtlinie ... Details
- Der Hauptteil fehlt in Anforderung ... Details
- Anzahl der erforderlichen Autorisierungen zum ... Details
- Es darf nur eine einzelne Instanzrichtlinie ... Details
- Nur importierte Schlüssel können wiederhergestellt werden Details
- Die angeforderte Aktion kann nur mit einem Rootschlüssel durchgeführt werden (400) Details
- Die angeforderte Aktion kann nur mit einem Rootschlüssel durchgeführt werden (422) Details
- Die angeforderte Änderung ist nicht mit einer Konfigurationsregel kompatibel ... Details
- Signatur ist ungültig ... Details
- Die Aktion konnte nicht durchgeführt werden für ... Details
- Die angegebene verschlüsselte Nonce stimmt nicht mit dem ... Details
- Das Importtoken ist abgelaufen ... Details
- Der Schlüssel kann nicht gelöscht werden, da er ... Details
- Der Schlüssel ist nicht für doppelte Authentifizierung aktiviert und ... Details
- Der Schlüssel wurde kürzlich aktualisiert ... Details
- Der angegebene verschlüsselte Text ist ungültig oder ... Details
- Die angegebene verschlüsselte Nonce wurde nicht ... Details
- Die angeforderten Ressourcen gehören nicht zum Service. Details
- Diese Aktion kann nur von einem Service durchgeführt werden ... Details
- Diese Aktion ist nicht zulässig auf dieser ... Details
- Für diese Anforderung muss die Version dieses Schlüssels ... Details
- Dieser Rootschlüssel wurde innerhalb von ... Details
- Dieser Rootschlüssel wurde mit vom Benutzer bereitgestellten ... Details
- Nicht berechtigt: Der Benutzer verfügt über keinen ... Details
1 - Die Summe der Erfassung stimmt nicht mit der Anzahl ...
Nachricht
Die Summe der Erfassung stimmt nicht mit der Anzahl der Ressourcen überein.
Ursachencode: COLLECTION_TOTAL_MISMATCH_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler tritt auf, wenn eine Instanzrichtlinie erstellt wird.
Der Wert des Felds metadata.collectionTotal
stimmt nicht mit der Anzahl der Ressourcen im Array resources
überein.
Die Anforderung create instance policy
schlägt fehl, weil die
metadata.collectionTotal
ist 2, während 1 (eine) Ressource in der
resources
-Array.
# this request fails because the collectionTotal is 2 and there is 1 (one) resource
$ curl -X PUT \
"https://us-south.kms.cloud.ibm.com/api/v2/instance/policies?policy=dualAuthDelete" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.policy+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.policy+json",
"collectionTotal": 2
},
"resources": [
{
"policy_type": "dualAuthDelete",
"policy_data": {
"enabled": false
}
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources":[
{
"errorMsg": "Bad Request: Instance policy could not be created. Please see `reasons` for more details.",
"reasons": [
{
"code": "COLLECTION_TOTAL_MISMATCH_ERR",
"message": "Collection total does not match number of resources",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
2 - Daten im Hauptteil entsprechen nicht den...
Nachricht
Die Daten im Hauptteil stimmen nicht mit den für den Abfrageparameter erforderlichen Daten überein - Details
Ursachencode: BODY_QUERY_PARAM_MISMATCH_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler tritt auf, wenn eine Instanzrichtlinie erstellt wird.
Der Abfrageparameter, der die Richtlinie angibt dualAuthDelete,, allowedNetwork, oder allowedIP ), stimmt nicht mit dem ersten policy_type
in der resources
Array.
Die Anforderung create instance policy
schlägt fehl, da der Abfrageparameter policy
(dualAuthDelete) nicht mit resources.policy_type
(badName) übereinstimmt.
# this request fails because the query parameter does not match the resource
$ curl -X PUT \
"https://us-south.kms.cloud.ibm.com/api/v2/instance/policies?policy=dualAuthDelete" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.policy+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.policy+json",
"collectionTotal": 1
},
"resources": [
{
"policy_type": "badName",
"policy_data": {
"enabled": false
}
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Instance policy could not be created. Please see `reasons` for more details.",
"reasons": [
{
"code": "BODY_QUERY_PARAM_MISMATCH_ERR",
"message": "Data in body does not match data required by query parameter",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
3 - Das Extrahieren des Betreffs aus dem Trägertoken ...
Nachricht
Das Extrahieren des Betreffs aus dem Trägertoken ist fehlgeschlagen: Stellen Sie sicher, dass es sich bei dem übergebenen Trägertoken um das richtige (und das richtige Format) handelt und dass es die Berechtigungen zum Durchführen der angeforderten Aktionen besitzt.
Ursachencode: BEARER_SUB_EXTRACTION_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Das IAM-Zugriffstoken (IAM = Identify and Access Management) oder das zugehörige Format war ungültig. Wenn es sich um eine curl-Anforderung handelt, muss der Autorisierungsheader im folgenden Format festgelegt werden:
-H "authorization: Bearer $ACCESS_TOKEN"
Je nach verwendeter Plattform (Linux, Mac, Windows) bzw. verwendeter Shell (bash, sh, zsh) müssen entweder einzelne oder doppelte Anführungszeichen verwendet werden. Auf manchen Systemen werden Variablen in einfachen Anführungszeichen nicht korrekt interpretiert. Beispiel: ('Bearer $ACCESS_TOKEN
') ersetzt möglicherweise nicht $ACCESS_TOKEN
durch den Wert.
Stellen Sie sicher, dass ein gültiges IAM-Token angegeben wird. Gegebenenfalls müssen Sie sich (erneut) anmelden, wenn Ihr Token abgelaufen ist. Mit den folgenden Codezeilen in der Befehlszeilenschnittstelle (CLI) kann die Anmeldung ausgeführt und das Zugriffstoken festgelegt werden.
# login with single sign on (sso)
$ ibmcloud login --sso
# set the region (-r) and resource group (-g)
$ ibmcloud target -r us-south -g Default
# set the ACCESS_TOKEN environment variable (with Bearer)
$ export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | grep IAM | cut -d \: -f 2 | sed 's/^ *//'`
# show the access token
$ echo $ACCESS_TOKEN
Bearer eyJraWQiOiIyMDIwMDcyNDE4MzEiLCJh...<redacted>...o4qlcKjl9sVqLa8Q
# set the ACCESS_TOKEN environment variable (without Bearer)
$ export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | grep IAM | cut -d ' ' -f 5 | sed 's/^ *//'`
eyJraWQiOiIyMDIwMDcyNDE4MzEiLCJh...<redacted>...o4qlcKjl9sVqLa8Q
4 - Ungültige Hauptteildaten wurden übergeben...
Nachricht
Ungültige Hauptteildaten wurden übergeben: Stellen Sie sicher, dass die übergebenen Daten eine gültige Formatierung und keine ungültigen Zeichen aufweist.
Ursachencode: BAD_BODY_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Beispiele für diesen Fehler:
-
Instanzrichtlinie erstellen
- Es kann jeweils nur eine für jede Richtlinie erstellt werden
- Es wurde kein Abschnitt
resources
angegeben - Der Abschnitt
resources
enthält fremde Felder (siehe Beispiel 1)
-
Schlüssel erstellen
- Eine Ressource ist erforderlich (siehe Beispiel 2)
- Leere Metadaten (siehe Beispiel 3)
- Schlüssel mit Nullwert oder leerer Schlüssel
Beispiel 1
Die Anforderung create instance policy
schlägt fehl, da die Ressource ein zusätzliches Feld (extra_field
) enthält.
# this request fails because there is an extra field in the body
$ curl -X PUT \
"https://us-south.kms.cloud.ibm.com/api/v2/instance/policies?policy=dualAuthDelete" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.policy+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.policy+json",
"collectionTotal": 1
},
"resources": [
{
"policy_type": "dualAuthDelete",
"policy_data": {
"enabled": false
},
"extra_field": "junk data"
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Instance policy could not be created. Please see `reasons` for more details.",
"reasons":[
{
"code": "BAD_BODY_ERR",
"message": "Invalid body data was passed. Please ensure the data passed had valid formatting with no invalid characters: json: unknown field \"extra_field\"",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Beispiel 2
Die Anforderung create key
schlägt fehl, da mehr als eine (1) Ressource vorhanden ist.
# this request fails because there is more than 1 (one) resource
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"name": "Root-key-1",
"description": "example-key",
"extractable": false
},
{
"type": "application/vnd.ibm.kms.key+json",
"name": "Root-key-2",
"description": "example-key",
"extractable": false
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Key could not be created. Please see `reasons` for more details.",
"reasons": [
{
"code": "BAD_BODY_ERR",
"message": "Invalid body data was passed. Please ensure the data passed had valid formatting with no invalid characters: Only creation of one key per request is supported",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Beispiel 3
Diese Anforderung zum Erstellen eines Schlüssels schlägt fehl, da die Metadaten (metadata
) leer sind.
# this request fails because the metadata is empty
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json" \
-d '{
"metadata": {},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"name": "Root-key-1",
"description": "example-key",
"extractable": false
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Key could not be created. Please see `reasons` for more details.",
"reasons": [
{
"code": "BAD_BODY_ERR",
"message": "Invalid body data was passed. Please ensure the data passed had valid formatting with no invalid characters: CollectionMetadata is empty",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
5 - Fehler bei ungültigem Schlüssel...
Nachricht
Wenn Sie einen Schlüssel umschließen, wird die Nachricht The field 'plaintext' must be: a base64 encoded key material
angezeigt werden, wenn ein ungültiger Klartext in der Anforderung übergeben wird.
Beim Entpacken eines Schlüssels muss die Nachricht The field 'ciphertext' must be: the original base64 encoded ciphertext from the wrap operation
(Der ursprüngliche Base64-codierte Verschlüsselungstext aus der Umwicklungsoperation)
sein, wenn ein ungültiger Verschlüsselungstext übergeben wird.
HTTP-Statuscode
400
Kontext
Ein Beispiel für eine fehlgeschlagene Anfrage zum Einschließen eines Schlüssels:
curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/wrap" \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H "bluemix-instance: <KP_INSTANCE_ID>" \
-H "application/vnd.ibm.kms.key_action+json" \
-d '{
"plaintext": "q+x3Qi.../BVb8bPj....vVD;",
}'
Die Antwort:
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Wrap with key could not be performed: Please see `reasons` for more details (INVALID_FIELD_ERR)",
"reasons": [
{
"code": "INVALID_FIELD_ERR",
"message": "The field `plaintext` must be: a base64 encoded key material: illegal base64 data at input byte 38",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect",
"target": {
"type": "field",
"name": "plaintext"
}
}
]
}
]
}
Eine Beispielanforderung zum Auspacken eines Schlüssels, die fehlschlägt:
request:
curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/unwrap" \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H "bluemix-instance: <KP_INSTANCE_ID>" \
-H "application/vnd.ibm.kms.key_action+json" \
-d '{
"ciphertext": "eyJjaXBoZXJ0ZXh0IjoiUnl...hYTUtNDNmMi05NTc5LWM2NjAzN2EwNjhkNyJ"
}'
Die Antwort:
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Unwrap with key could not be performed: Please see 'reasons' for more details (INVALID_FIELD_ERR)",
"reasons": [
{
"code": "INVALID_FIELD_ERR",
"message": "The field 'ciphertext' must be: the original base64 encoded ciphertext from the wrap operation: illegal base64 data at input byte 208",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect",
"target": {
"type": "field",
"name": "ciphertext"
}
}
]
}
]
}
6-Schlüssel konnte nicht gelöscht werden ...
HTTP-Statuscode
409 - Conflict
Der HTTP 409 Conflict
-Clientfehlerantwortcode zeigt an, dass ein Fehler in der Clientanforderung pro zurückgegebener Ursachencode aufgelöst werden kann.
Kontext
Die Nachricht gibt einen Grund in der Nachricht zurück, die den spezifischen Kontext bereitstellt.
Nachricht
Ursachencode: AUTHORIZATIONS_NOT_MET
Der Schlüssel kann nicht gelöscht werden, da er die doppelte Autorisierungsanfrage nicht bestanden hat. Bevor Sie diesen Schlüssel löschen, vergewissern Sie sich, dass das Verfahren der doppelten Autorisierung eingehalten wird. Informationen hierzu finden Sie im Abschnitt Schlüssel mit doppelter Berechtigung löschen.
Ursachencode: PROTECTED_RESOURCE_ERR
Der Schlüssel kann nicht gelöscht werden, weil der Schlüssel über eine oder mehrere zugehörige Ressourcen verfügt. Informationen hierzu finden Sie im Abschnitt Hinweise vor dem Löschen und Löschen eines Schlüssels.
Ursachencode: PREV_KEY_DEL_ERR
Der Schlüssel kann nicht gelöscht werden, weil er eine Cloud-Ressource schützt, die eine Aufbewahrungsrichtlinie hat. Bevor Sie diesen Schlüssel löschen, wenden Sie sich an einen Accounteigentümer, um die Aufbewahrungsrichtlinie für jede Ressource zu entfernen, die dem Schlüssel zugeordnet ist. Informationen hierzu finden Sie im Abschnitt Hinweise vor dem Löschen und Löschen eines Schlüssels.
Beispiel- Antwort 1
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Key could not be deleted. Please 'reasons' for more details.",
"reasons": [
{
"code": "AUTHORIZATIONS_NOT_MET",
"message": "The key cannot be deleted because it failed the dual authorization request.",
"status": 409,
"moreInfo":"https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Beispiel-Antwort 2
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Key could not be deleted. Please 'reasons' for more details.",
"reasons": [
{
"code": "PROTECTED_RESOURCE_ERR",
"message": "The key cannot be deleted because the key has one or more associated resources.",
"status": 409,
"moreInfo":"https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Beispiel- Antwort 3
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Key could not be deleted. Please 'reasons' for more details.",
"reasons": [
{
"code": "PREV_KEY_DEL_ERR",
"message": "The key cannot be deleted because it's protecting a cloud resource that has a retention policy.",
"status": 409,
"moreInfo":"https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
7 - Der Schlüssel wurde bereits gelöscht ...
Nachricht
Der Schlüssel wurde bereits gelöscht: Löschen Sie Verweise auf diesen Schlüssel.
Ursachencode: KEY_DELETED_ERR
HTTP-Statuscode
410 - Gone
Der HTTP-Clientfehlerantwortcode 410 Gone
gibt an, dass auf dem Ursprungsserver kein Zugriff auf die Zielressource mehr besteht und dass dieser Zustand voraussichtlich dauerhaft bestehen bleibt.
Wenn nicht bekannt ist, ob dieser Zustand temporär oder permanent ist, sollte stattdessen ein Statuscode 404 verwendet werden.
Ein Antwortcode 410
ist standardmäßig zwischenspeicherbar.
Kontext
Die Anforderung delete key
schlägt fehl, da der Schlüssel bereits gelöscht wurde. Ein Schlüssel kann nicht mehrmals gelöscht werden.
Beispiel
# delete an existing key
$ ibmcloud kp key delete $KEY_ID -i $KP_INSTANCE_ID
Deleting key: '0c17...<redacted>...5c34', from instance: 'a192...<redacted>...7411'...
OK
Deleted Key
0c17...<redeacted>...5c34
# this request fails because the key was previously deleted
$ curl -X DELETE \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Gone: Key could not be deleted. Please see `reasons` for more details.",
"reasons": [
{
"code": "KEY_DELETED_ERR",
"message": "Key has already been deleted. Please delete references to this key.",
"status": 410,
"moreInfo":"https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
7 - Der Schlüssel besitzt keinen gültigen Status.
Nachricht
Der Schlüssel befindet sich nicht in einem gültigen Status.
Ursachencode: KEY_ACTION_INVALID_STATE_ERR
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Dieser Fehler tritt auf, wenn eine Aktion für einen Schlüssel ausgeführt wird und der Schlüsselstatus nicht gültig ist.
Folgende Aktionen sind zu berücksichtigen:
-
Beim Wrapping, beim Aufheben des Wrappings, bei der Schlüsselrotation, beim Vorbereiten der Löschanforderung für einen Schlüssel (doppelte Autorisierung), beim Stornieren der Löschanforderung für einen Schlüssel oder beim Inaktivieren eines Schlüssels muss der Schlüssel einen aktiven Status (Statuswert 1) aufweisen.
-
Dieser Fehler tritt auf, wenn Sie versuchen, einen abgelaufenen Schlüssel (Statuswert 3) zu aktivieren oder einen gelöschten Schlüssel (Statuswert 5) wiederherzustellen.
Beispiel 1
Die Anforderung key disable
schlägt fehl, da ein Schlüssel, der bereits inaktiviert ist, nicht erneut inaktiviert werden kann.
# disable a key the first time
$ ibmcloud kp key disable $KEY_ID -i $KP_INSTANCE_ID
Disabling key: '6933...<redacted>...5dbf', in instance: 'a192...<redacted>...7411'...
OK
# this CLI request fails because the key is deleted a second time
$ ibmcloud key disable $KEY_ID -i $KP_INSTANCE_ID
Disabling key: '69332...<redacted>...5dbf', in instance: 'a192...<redacted>...7411'...
FAILED
kp.Error:
correlation_id='aca1...<redacted>...66e9',
msg='Conflict:
Key is not in active state:
Key could not be disabled.
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]'
# this API request fails because the key is deleted a third time
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/disable" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Conflict: Key is not in active state: Key could not be disabled. Please see `reasons` for more details.",
"reasons": [
{
"code": "KEY_ACTION_INVALID_STATE_ERR",
"message": "Key is not in a valid state",
"status": 409,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Beispiel 2
Die Anforderung key disable
schlägt fehl, da Sie versuchen, den Status eines abgelaufenen Schlüssels von 'Inaktiviert' (Statuswert 3) in 'Aktiviert' (Statuswert 1) zu ändern.
Die folgenden Schritte geben den Fehler key has been disabled
(Schlüssel wurde inaktiviert) zurück.
-
Schlüssel mit Ablaufdatum erstellen
-
Warten, bis das Ablaufdatum überschritten ist
-
Schlüssel aktivieren
# on a Mac, add 1 (one) minute to the current time
$ EXPIRE=$(date -u -v+1M "+%Y-%m-%dT%H:%M:%SZ")
$ echo $EXPIRE
# step 1 - create a key with an expiration date
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"name": "Root-key-1",
"description": "example-key",
"expirationDate": "'$EXPIRE'",
"extractable": false
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"id": "88d649f8-41b8-4426-b52b-45c88953d5b8",
"name": "Root-key-1",
"description": "example-key",
"state": 1,
"expirationDate": "2020-08-12T23:38:09Z",
"extractable": false,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:88d649f8-41b8-4426-b52b-45c88953d5b8",
"imported": false,
"deleted": false
}
]
}
# capture the key id
$ KEY_ID=88d649f8-41b8-4426-b52b-45c88953d5b8
# step 2 - allow the expiration date to pass by sleeping for 1 (one) minute
$ sleep 60
# step 3 - fails because you cannot enable a key after the expiration date
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/enable" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Conflict: Key is not in suspended state: Key could not be enabled. Please see `reasons` for more details.",
"reasons": [
{
"code":" KEY_ACTION_INVALID_STATE_ERR",
"message": "Key is not in a valid state",
"status": 409,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
8 - Der Schlüssel befindet sich nicht in einem gültigen Status.
Nachricht
Der Schlüssel befindet sich nicht in einem gültigen Status.
Ursachencode: KEY_INVALID_STATE_ERR
HTTP-Statuscode
422 - Unprocessable Entity
Der HTTP-Antwortstatuscode 422 Unprocessable Entity
gibt an, dass der Inhaltstyp der Anforderungsentität vom Server erkannt wird und die Syntax der Anforderungsentität korrekt ist, die darin enthaltenen Anweisungen jedoch nicht
verarbeitet werden können.
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler kommt bei Schlüsseln vor, die für 'Registrierungen' verwendet werden.
Der Schlüssel muss einen aktiven Status (Statuswert 1) aufweisen, wenn er bei einer Cloudressource registriert wird.
Registrierungen sind Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen (z. B. Cloud Object Storage-Buckets oder Bereitstellungen von Clouddatenbanken).
Weitere Informationen zu Registrierungen finden Sie im Abschnitt zum Anzeigen von Zuordnungen zwischen Rootschlüsseln und verschlüsselten IBM Cloud-Ressourcen.
9 - Der Schlüssel schützt eine oder mehrere Clouds ...
Nachricht
Der Schlüssel schützt mindestens eine Cloudressource.
Ursachencode: PROTECTED_RESOURCE_ERR
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Dieser Fehler kommt bei Schlüsseln vor, die für 'Registrierungen' verwendet werden.
Ein Schlüssel, der für eine Cloud-Ressource registriert ist, kann nicht gelöscht werden, es sei denn, der
force
option ist angegeben.
Sie müssen die Option force
verwenden, um einen Rootschlüssel zu löschen, der für eine andere Cloudressource registriert ist.
Registrierungen sind Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen (z. B. Cloud Object Storage-Buckets oder Bereitstellungen von Clouddatenbanken).
Weitere Informationen zu Registrierungen finden Sie im Abschnitt zum Anzeigen von Zuordnungen zwischen Rootschlüsseln und verschlüsselten IBM Cloud-Ressourcen.
Siehe diese Erklärung
zum Löschen von Schlüsseln, die bei einer anderen Cloud-Ressource registriert sind (siehe
force
).
# this CLI request fails because the registration was not deleted
$ ibmcloud kp key delete $KEY_ID -i $KP_INSTANCE_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]'
# this CLI request succeeds when using the --force option
# the registration between Key Protect and the cloud resource exists
$ ibmcloud kp key delete $KEY_ID -i $KP_INSTANCE_ID --force --output json
{
"id": "52a9d772-8982-4620-bfb4-b070dd812a0c"
}
10 - Schlüsselmetadaten wurden beschädigt ...
Nachricht
Die Schlüsselmetadaten wurden beschädigt: Löschen Sie diesen Schlüssel.
Ursachencode: INCOMPLETE_METADATA_ERR
HTTP-Statuscode
500 - Internal Server Error
Der HTTP-Antwortcode für Serverfehler 500 Internal Server
gibt an, dass vom Server eine unerwartete Bedingung erkannt wurde, die das Ausführen der Anforderung verhindert hat.
Diese Fehlerantwort ist eine generische Antwort zum Abfangen beliebiger Fehler. Sie wird in der Regel ausgegeben, wenn der Server keinen bestimmten Fehlercode des Typs 5xx als Antwort finden kann. In manchen Fällen protokollieren Serveradministratoren Fehlerantworten wie den Statuscode 500 zusammen mit weiteren Details der Anforderung, damit dieser Fehler künftig vermieden werden kann.
Kontext
Dieser Fehler wird zurückgegeben, wenn ein interner Fehler aufgetreten ist.
Wenn Sie diese Fehlermeldung erhalten, wenden Sie sich bitte an IBM
11 - Die Schlüsselwiederherstellung ist abgelaufen
Nachricht
Die Schlüsselwiederherstellung ist abgelaufen
Ursachencode: KEY_RESTORE_EXPIRED
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler tritt auf, wenn Sie versuchen, einen Schlüssel wiederherzustellen, der vor mehr als 30 Tagen gelöscht wurde.
12-KeyCreateImportAccess-Instanzrichtlinie ...
Nachricht
Die Instanzrichtlinie 'KeyCreateImportAccess' lässt diese Aktion nicht zu.
Ursachencode: KEY_CREATE_IMPORT_ACCESS_ERR
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Die Instanzrichtlinie KeyCreateImportAccess
wurde aktiviert und eine Anforderung zum Erstellen oder Importieren eines Schlüssels war nicht zulässig.
Die Instanzrichtlinie lässt beispielsweise nicht zu, dass ein Standardschlüssel erstellt wird und eine Anforderung zum Erstellen eines Standardschlüssels zurückgewiesen wurde.
Beispiel
Die folgenden Schritte führen zu diesem Fehler.
-
Aktivieren Sie die Instanzrichtlinie und verhindern Sie die Erstellung von Standardschlüsseln
-
Versuch, einen Standardschlüssel zu erstellen, der fehlschlägt
-
Entfernen (inaktivieren) der Instanzrichtlinie, die das Erstellen von Standardschlüsseln zulässt
-
Einen Standardschlüssel erstellen, der erfolgreich ist
# step 1 - enable an instance policy, which prevents creating standard keys
$ curl -X PUT \
"https://us-south.kms.cloud.ibm.com/api/v2/instance/policies?policy=keyCreateImportAccess" \
-H "accept: application/vnd.ibm.kms.policy+json" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.policy+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.policy+json",
"collectionTotal": 1
},
"resources": [
{
"policy_type": "keyCreateImportAccess",
"policy_data": {
"enabled": true,
"attributes": {
"create_root_key": true,
"create_standard_key": false,
"import_root_key": true,
"import_standard_key": true,
"enforce_token": true
}
}
}
]
}'
# step 2a - fails when using the ibmcloud CLI
# because the instance policy prevents creating standard keys
$ ibmcloud kp key create my-standard-key --standard-key
FAILED
kp.Error:
correlation_id='43c45c85-7a1f-478c-b235-49decec8c88f',
msg='Conflict:
Key could not be created:
Please see `reasons` for more details (KEY_CREATE_IMPORT_ACCESS_ERR)',
reasons='[KEY_CREATE_IMPORT_ACCESS_ERR:
KeyCreateImportAccess instance policy does not allow this action -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
# step 2b - fails when using the the ibmcloud API
# because the instance policy prevents creating standard keys
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"name": "my-standard-key",
"description": "my-standard-key",
"extractable": true
}
]
}'
JSON-Antwort von der ibmcloud-API
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Conflict: Key could not be created: Please see `reasons` for more details (KEY_CREATE_IMPORT_ACCESS_ERR)",
"reasons": [
{
"code": "KEY_CREATE_IMPORT_ACCESS_ERR",
"message": "KeyCreateImportAccess instance policy does not allow this action",
"status": 409,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
In den Schritten 3 - 4 wird die Richtlinie keyCreateImportAccess
inaktiviert und erfolgreich ein Standardschlüssel erstellt.
# step 3 - disable the policy, that is, enable creating standard keys
$ curl -X PUT \
"https://us-south.kms.cloud.ibm.com/api/v2/instance/policies?policy=keyCreateImportAccess" \
-H "accept: application/vnd.ibm.kms.policy+json" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.policy+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.policy+json",
"collectionTotal": 1
},
"resources": [
{
"policy_type": "keyCreateImportAccess",
"policy_data": {
"enabled": false
}
}
]
}'
# step 4a - create a standard key using the ibmcloud CLI
$ ibmcloud kp key create my-standard-key --standard-key -o json
{
"id": "3511e0bc-e32d-40b8-b6c2-96cd651858a4",
"name": "my-standard-key",
"type": "application/vnd.ibm.kms.key+json",
"extractable": true,
"state": 1,
"crn": "crn:v1:bluemic:public:kms:us-south:a/819bdf4436ef4c198fdf4f0b81d53116:87fa68d0-fa10-47d0-a201-603949808530:key:3511e0bc-e32d-40b8-b6c2-96cd651858a4",
"deleted": false
}
# step 4b - create a standard key using the ibmcloud API
curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"name": "my-standard-key",
"description": "my-standard-key",
"extractable": true
}
]
}'
JSON-Antwort von der ibmcloud-API
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"id": "60d72058-ec53-4d77-b7ef-ba56443e76d5",
"name": "my-standard-key",
"description": "my-standard-key",
"state": 1,
"extractable": true,
"crn":"crn:v1:bluemix:public:kms:us-south:a/819bdf4436ef4c198fdf4f0b81d53116:87fa68d0-fa10-47d0-a201-603949808530:key:60d72058-ec53-4d77-b7ef-ba56443e76d5",
"imported": false,
"deleted": false
}
]
}
13 - Fehlender Text in der Anfrage
Nachricht
Fehlender Text in der Anfrage
Ursachencode: NO_BODY_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler tritt auf, wenn beim erneuten Wrapping oder beim Aufheben des Wrappings für einen Schlüssel kein Anforderungshauptteil vorhanden ist.
Beispiel
Die folgenden Schritte geben den Fehler missing body in request
(Schlüssel wurde inaktiviert) zurück.
-
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
) -
Anforderung zum Aufheben des Key-Wrappings für neuen verschlüsselten Text schlägt fehl (da der Hauptteil fehlt) und der ursprüngliche DEK (unverschlüsselter Text) wird nicht sichtbar gemacht
-
Anforderung zum Aufheben des Key-Wrappings für den neuen verschlüsselten Text ist erfolgreich (da der Hauptteil vorhanden ist) und der ursprüngliche DEK (unverschlüsselter Text) wird sichtbar gemacht
# step 1 - create a root key
$ KEY_ID=$(ibmcloud kp key create example-key -i $KP_INSTANCE_ID --output json | jq -r '.["id"]')
$ echo $KEY_ID
66ffaf5b-86c8-4a50-8a2a-920ae71f86dc
# step 2 - create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)
$ echo $PLAINTEXT
2eLAD3LyD3H2bq8dIDAy0A/lN9DSE/Ne3bwu40CdErs=
# step 3 - wrap the DEK (plaintext key) with the root key, creating the ciphertext
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -i $KP_INSTANCE_ID -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')
$ echo $CIPHERTEXT
eyJjaXBoZXJ0ZXh0IjoiR0VnTFZGSmpK...<redacted>...YWU3MWY4NmRjIn0=
# step 4 - fails to unwrap the ciphertext, which reveals the original DEK
# (plaintext), because there is no body (the -d option)
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/unwrap" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Action could not be performed on key. Please see `reasons` for more details.",
"reasons": [
{
"code": "NO_BODY_ERR",
"message": "Missing body in request",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
# step 5 - succeeds to unwrap the ciphertext because the request is complete
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/unwrap" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json" \
-d '{
"ciphertext": "'$CIPHERTEXT'"
}'
JSON-Antwort
{
"plaintext": "2eLAD3LyD3H2bq8dIDAy0A/lN9DSE/Ne3bwu40CdErs=",
"keyVersion": {
"id": "66ffaf5b-86c8-4a50-8a2a-920ae71f86dc"
}
}
15 - Es kann nur eine einzelne Instanzrichtlinie ...
Nachricht
Es kann nur eine einzige Instanzrichtlinie pro Abfrageparameter erstellt werden: Übergeben Sie nur ein einzelnes Ressourcenobjekt
Ursachencode: NUM_COLLECTION_RESOURCE_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Die Anforderung create instance policy
schlägt fehl, da die gleiche Richtlinie mehrmals angegeben wurde.
In der Anforderung können mehrere Richtlinien übergeben werden, wenn jede Richtlinie eindeutig ist. Sie können beispielsweise Instanzrichtlinien für dualAuthDelete
und
allowedIP
in derselben Anforderung.
Beispiel
Diese Anforderung schlägt fehl, da mehr als eine Instanzrichtlinie angegeben wurde.
# this request fails because the dualAuthDelete policy was specified more than once
$ curl -X PUT \
"https://us-south.kms.cloud.ibm.com/api/v2/instance/policies?policy=dualAuthDelete" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.policy+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.policy+json",
"collectionTotal": 2
},
"resources": [
{
"policy_type": "dualAuthDelete",
"policy_data": {
"enabled": false
}
},
{
"policy_type": "dualAuthDelete",
"policy_data": {
"enabled": false
}
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Instance policy could not be created. Please see `reasons` for more details.",
"reasons": [
{
"code": "NUM_COLLECTION_RESOURCE_ERR",
"message": "Only a single instance policy may be created per query parameter. Please pass single resource object",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
16 - Nur importierte Schlüssel können wiederhergestellt werden
Nachricht
Nur importierte Schlüssel können wiederhergestellt werden
Ursachencode: KEY_IMPT_REQ_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
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.
Beim Wiederherstellen eines Schlüssels wird der Schlüssel vom Status Gelöscht (Statuswert 5) in den Status Aktiv (Statuswert 1) versetzt und der Zugriff auf alle Daten wiederhergestellt, die zuvor mithilfe des Schlüssels 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 den Schlüsselinformationen (key material
, auch als 'Nutzdaten' bezeichnet)
erstellt wurden.
Es können nur Rootschlüssel wiederhergestellt werden, die mithilfe von Schlüsselinformationen (key material
) unter Verwendung des Befehls kp key create
mit der Option -k, --key-material
erstellt wurden.
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.
Beispiel
Führen Sie die folgenden Schritte aus, um den Fehler only imported keys may be restored
auszulösen.
-
Rootschlüssel ohne Schlüsselinformationen (Nutzdaten) erstellen
-
Schlüssel löschen
-
Ruhemodus für 30 Sekunden aktivieren
-
Schlüsselinformationen erstellen
-
Schlüssel wiederherstellen und dabei Schlüsselinformationen (Nutzdaten) angeben
# step 1 - create a root key without a key material (payload)
$ KEY_ID=$(ibmcloud kp key create example-key -i $KP_INSTANCE_ID --output json | jq -r '.["id"]')
$ echo $KEY_ID
e631925f-affb-457e-886d-57cb2a5f565b
# step 2 - delete the key
$ ibmcloud kp key delete $KEY_ID -i $KP_INSTANCE_ID
Deleting key: 'e631925f-affb-457e-886d-57cb2a5f565b', from instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
Deleted Key
e631925f-affb-457e-886d-57cb2a5f565b
# step 3 - sleep 30 seconds
$ sleep 30
# step 4 - create a key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL
lZM/guRnn/VklwRBoNOP/AUdCtpDNSo3+xXXhwrnO7c=
# step 5 - this CLI request fails because you can only restore keys
# that were imported (created with a key material or an import token)
$ ibmcloud kp key restore $KEY_ID -i $KP_INSTANCE_ID --key-material $KEY_MATERIAL
Restoring key: 'e631925f-affb-457e-886d-57cb2a5f565b', in instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
FAILED
kp.Error:
correlation_id='6d000f60-47f2-4a49-ba72-f02a8efa2945',
msg='Bad Request:
Key could not be restored.
Please see `reasons` for more details.',
reasons='[KEY_IMPT_REQ_ERR:
Only imported keys may be restored. -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
# step 5 - this API request fails because you can only restore keys
# that were imported (created with a key material or an import token)
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/restore" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"payload": "'$KEY_MATERIAL'"
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Key could not be restored. Please see `reasons` for more details.",
"reasons": [
{
"code": "KEY_IMPT_REQ_ERR",
"message": "Only imported keys may be restored.",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
17 - Angeforderte Aktion kann nur abgeschlossen werden ...
Nachricht
Die angeforderte Aktion kann nur mit einem Rootschlüssel durchgeführt werden
Ursachencode: KEY_ROOT_REQ_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Viele Aktionen für Schlüssel können nur mit Rootschlüsseln ausgeführt werden. Die folgenden Befehle können nur für Rootschlüssel ausgeführt werden.
- Schlüssel inaktivieren
- Schlüssel aktivieren
- Schlüssel wiederherstellen
- Schlüssel turnusmäßig wechseln
- Wrapping von Schlüssel aufheben
- Wrapping für Schlüssel durchführen
Beispiel
In diesem Beispiel wird ein Standardschlüssel erstellt. Anschließend wird versucht, den erstellten Schlüssel zu inaktivieren. Der Versuch schlägt fehl, da nur Rootschlüssel inaktiviert werden können.
# create a standard key
$ KEY_ID=$(ibmcloud kp key create example-key -i $KP_INSTANCE_ID --output json --standard-key | jq -r '.["id"]')
$ echo $KEY_ID
b2dae7bb-2da5-493e-99d2-a6379e35e58c
# this request fails because a standard key cannot be disabled
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/disable" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Key could not be disabled. Please see `reasons` for more details.",
"reasons": [
{
"code": "KEY_ROOT_REQ_ERR",
"message": "Requested action can only be completed with a root key.",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
18 - Angeforderte Aktion kann nur abgeschlossen werden ...
Nachricht
Die angeforderte Aktion kann nur mit einem Rootschlüssel durchgeführt werden
Ursachencode: KEY_ROOT_REQ_REG_ERR
HTTP-Statuscode
422 - Unprocessable Entity
Der HTTP-Antwortstatuscode 422 Unprocessable Entity
gibt an, dass der Inhaltstyp der Anforderungsentität vom Server erkannt wird und die Syntax der Anforderungsentität korrekt ist, die darin enthaltenen Anweisungen jedoch nicht
verarbeitet werden können.
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler kommt bei Schlüsseln vor, die für 'Registrierungen' verwendet werden. Zum Erstellen einer Registrierung ist ein Rootschlüssel erforderlich. Dieser Fehler wird zurückgegeben, wenn eine API-Anfrage zur Erstellung einer Registrierung gestellt wird.
Registrierungen sind Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen (z. B. Cloud Object Storage-Buckets oder Bereitstellungen von Clouddatenbanken).
Weitere Informationen zu Registrierungen finden Sie im Abschnitt zum Anzeigen von Zuordnungen zwischen Rootschlüsseln und verschlüsselten IBM Cloud-Ressourcen.
19 - Angeforderte Änderung ist nicht konform ...
Nachricht
Die angeforderte Änderung ist nicht mit den Konfigurationsregeln konform.
Ursachencode: CONFIG_RULE_CONFLICT_ERR
HTTP-Statuscode
403 - Forbidden
Der HTTP-Statusantwortcode 403 Forbidden
für Clientfehler gibt an, dass die Anforderung vom Server zwar verstanden wurde, jedoch nicht autorisiert wird.
Dieser Status ähnelt dem Statuscode 401
; im vorliegenden Fall bleibt die erneute Authentifizierung jedoch wirkungslos. Der Zugriff wird dauerhaft verweigert und an die Anwendungslogik gebunden (z. B. unzureichende Berechtigungen
für eine Ressource).
Kontext
Diese Fehlermeldung tritt auf, wenn eine Instanzrichtlinie den Zugriff auf eine Ressource verhindert. Wenn die Anforderung beispielsweise aus einer öffentlichen IP-Adresse stammt und die Instanzrichtlinie den Zugriff von einer öffentlichen IP-Adresse verbietet, erhalten Sie diese Fehlernachricht.
20 - Signatur ist ungültig
Nachricht
Signatur ist ungültig
Ursachencode: INVALID_SIG_EXP_ERR
HTTP-Statuscode
422 - Unprocessable Entity
Der HTTP-Antwortstatuscode 422 Unprocessable Entity
gibt an, dass der Inhaltstyp der Anforderungsentität vom Server erkannt wird und die Syntax der Anforderungsentität korrekt ist, die darin enthaltenen Anweisungen jedoch nicht
verarbeitet werden können.
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Ein Fehler ist aufgetreten, als für einen Schlüssel ein erneutes Wrapping durchgeführt wurde.
Wenn Sie diese Fehlermeldung erhalten, wenden Sie sich bitte an IBM
21 - Die Aktion konnte nicht durchgeführt werden auf ...
Nachricht
Die Aktion konnte nicht für den Schlüssel durchgeführt werden, da der Schlüssel abgelaufen ist
Ursachencode: KEY_EXPIRED_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler tritt beim Wiederherstellen eines Schlüssels auf, wenn der Schlüssel abgelaufen ist.
Beispiel
Eine Anforderung key restore
schlägt fehl, da der Schlüssel gelöscht wurde und abgelaufen ist.
Dieser Fehler kann mit den folgenden Schritten ausgelöst werden.
-
Schlüsselinformationen (Nutzdaten) und ein Ablaufdatum erstellen
-
Mithilfe der Schlüsselinformationen einen Rootschlüssel und das Ablaufdatum erstellen
-
Schlüssel-ID erfassen
-
Warten, bis das Ablaufdatum überschritten ist
-
Schlüssel löschen
-
Schlüssel wiederherstellen (dieser Vorgang schlägt fehl, da ein gelöschter Schlüssel nach dem Ablaufdatum nicht mehr wiederhergestellt werden kann)
# step 1 - create a key material (payload) and an expiration date
# create an expiration date, on a Mac, add 1 (one) minute to the current time
$ KEY_MATERIAL=$(openssl rand -base64 32)
$ EXPIRE=$(date -u -v+1M "+%Y-%m-%dT%H:%M:%SZ")
# step 2 - Create a root key using the key material and the expiration date
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"name": "Root-key-1",
"payload": "'$KEY_MATERIAL'",
"description": "example-key",
"expirationDate": "'$EXPIRE'",
"extractable": false
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"id": "aa713df1-857c-4c46-be80-3051756280c9",
"name": "Root-key-1",
"description": "example-key",
"state": 1,
"expirationDate": "2020-08-14T19:33:47Z",
"extractable": false,
"crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:aa713df1-857c-4c46-be80-3051756280c9",
"imported": true,
"deleted": false
}
]
}
# step 3 - capture the key id
$ KEY_ID=aa713df1-857c-4c46-be80-3051756280c9
# step 4 - allow the expiration date to pass by sleeping for 1 (one) minute
$ sleep 60
# step 5 - delete the key
$ ibmcloud kp key delete $KEY_ID
Deleting key: 'aa713df1-857c-4c46-be80-3051756280c9', from instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
Deleted Key
aa713df1-857c-4c46-be80-3051756280c9
# step 6 - fails because you cannot restore a deleted key after the expiration date
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/restore" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"payload": "'$KEY_MATERIAL'"
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: The key expired on 2020-08-14 19:33:47 +0000 UTC: Key could not be restored. Please see `reasons` for more details.",
"reasons": [
{
"code": "KEY_EXPIRED_ERR",
"message": "The action could not be performed on the key because the key is expired.",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
22 - Die angegebene verschlüsselte Nonce stimmt nicht überein...
Nachricht
Die verschlüsselte Nonce stimmt mit keinem vorhandenen Datensatz überein. Stellen Sie sicher, dass in der Anforderung die richtige Nonce angegeben wurde
Ursachencode: INCORRECT_NONCE_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Diese Fehlernachricht bezieht sich auf die Aktionen restore
und rotate
für Schlüssel.
Dieses Beispiel basiert auf dem Schlüsselbefehl restore
und verwendet die
CLI, da die Ausgabe einfacher zu verfolgen ist als die
API.
Schritt 1 - Fehler auslösen, indem mithilfe eines Importtokens ein Rootschlüssel erstellt und anschließend gelöscht wird
# create an import token that expires in 15 minutes (900 seconds) and allows 10 retrievals
$ ibmcloud kp import-token create -e 900 -m 10
Created Expires Max Retrievals Remaining Retrievals
2020-08-18 19:05:51 +0000 UTC 2020-08-18 19:20:51 +0000 UTC 10 10
# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL
DL4Avc1yL7DhclfV9Uksvzy8VkYIKWZA9InYQv/iiro=
# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')
$ echo $NONCE
6SB0nQ8ROUCPUiyF
# 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
rATe0oyYy+793MDlxQi2kJxf5BqLbmVY ...<redacted>... gNVJ5oxm7KX94iE=
# capture the encrypted key material
$ ENCRYPTED_KEY=rATe0oyYy+793MDlxQi2kJxf5BqLbmVY ...<redacted>... gNVJ5oxm7KX94iE=
# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE
Encrypted Nonce IV
+KjUDFD38r8zlXKJkn+dOR4/xNYN5ozpvKCiIQ== CSPZwm2qJ5mL00oP
# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=+KjUDFD38r8zlXKJkn+dOR4/xNYN5ozpvKCiIQ==
$ IV=CSPZwm2qJ5mL00oP
# 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
fa0a7d81-a947-4bac-883d-952f6288f0a9
# delete the root key
$ ibmcloud kp key delete $KEY_ID
Deleting key: 'fa0a7d81-a947-4bac-883d-952f6288f0a9', from instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
Deleted Key
fa0a7d81-a947-4bac-883d-952f6288f0a9
Schritt 2 - Fehler auslösen, indem ein Importtoken erstellt wird, das für die Wiederherstellung des Schlüssels erforderlich ist, dann den Schlüssel löschen und anschließend wiederherstellen
# NOTE: the "kp key restore" requires an import token to complete the process,
# if you follow this example, the import token created above 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 15 minutes (900 seconds) and allows 10 retrievals
$ ibmcloud kp import-token create -e 900 -m 10
Created Expires Max Retrievals Remaining Retrievals
2020-08-18 19:12:35 +0000 UTC 2020-08-18 19:27:35 +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
qkhpyERrqgU+q6M0ulCyFLP4/uAyTRNJ ...<redacted>... RvVRAyhPP9civbU=
# capture the encrypted key material
$ ENCRYPTED_KEY=qkhpyERrqgU+q6M0ulCyFLP4/uAyTRNJ ...<redacted>... RvVRAyhPP9civbU=
# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE
Encrypted Nonce IV
nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA== N6oLJnUqaKF3v5Sd
# Normally, you would capture the last encrypted nonce and the initialization
# vector (IV) (from the import token). Then use those new values with the
# "key restore" command.
# To force an error we are using the old (original) encrypted nonce and IV to
# restore the key, which fails because the ENCRYPTED_NONCE does not match the
# value in the import token
# we skipped these steps to force an error
# $ ENCRYPTED_NONCE=nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA==
# $ IV=N6oLJnUqaKF3v5Sd
# use the CLI to restore the deleted key
# this fails because the ENCRYPTED_NONCE does not match the value in the import token
$ ibmcloud kp key restore $KEY_ID -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV --output json
FAILED
kp.Error:
correlation_id='a9412941-7986-421d-a67f-b22892e7634d',
msg='Bad Request:
Key could not be restored.
Please see `reasons` for more details.',
reasons='[INCORRECT_NONCE_ERR:
The encrypted nonce given does not match existing record,
please ensure the correct nonce was given in the request -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
23 - Das Importtoken ist abgelaufen.
Nachricht
Das Importtoken ist abgelaufen
Ursachencode: IMPORT_TOKEN_EXPIRED_ERR
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Beispiel 1
Mithilfe der API ein Importtoken erstellen, die Ablaufzeit des Tokens überschreiten und anschließend versuchen, das Token abzurufen.
# create an import token
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/import_token" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/json" \
-d '{
"expiration": 300,
"maxAllowedRetrievals": 2
}'
JSON-Antwort
{
"maxAllowedRetrievals": 2,
"creationDate": "2020-08-18T19:54:57Z",
"expirationDate": "2020-08-18T19:59:57Z",
"remainingRetrievals":2
}
# retrieve the import token after it expires
$ curl -X GET \
"https://us-south.kms.cloud.ibm.com/api/v2/import_token" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.import_token+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Conflict: Import Token could not be retrieved. Please see `reasons` for more details.",
"reasons":[
{
"code": "IMPORT_TOKEN_EXPIRED_ERR",
"message": "The import token has expired.",
"status": 409,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Beispiel 2
Mithilfe der CLI ein Importtoken erstellen, das Ablaufdatum des Tokens überschreiten und anschließend versuchen, das Token abzurufen.
# create an import token that expires in 5 minutes (300 seconds) and allows 2 retrievals
$ ibmcloud kp import-token create -e 300 -m 2
Created Expires Max Retrievals Remaining Retrievals
2020-08-18 19:39:06 +0000 UTC 2020-08-18 19:44:06 +0000 UTC 2 2
# sleep 300 seconds, which allows the import token to expire
$ sleep 300
# show the import token
$ ibmcloud kp import-token show
FAILED
kp.Error:
correlation_id='fb677c6e-9bfa-422e-a14b-0e221bbad32b',
msg='Conflict:
Import Token could not be retrieved.
Please see `reasons` for more details.',
reasons='[IMPORT_TOKEN_EXPIRED_ERR:
The import token has expired. -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
24 - Der Schlüssel kann nicht gelöscht werden, weil er ...
Nachricht
Der Schlüssel kann nicht gelöscht werden, da er eine Cloudressource mit einer Aufbewahrungsrichtlinie schützt: Bevor Sie diesen Schlüssel löschen, wenden Sie sich an einen Kontoeigner, damit dieser die Aufbewahrungsrichtlinie für jede diesem Schlüssel zugeordnete Ressource entfernt
Ursachencode: PREV_KEY_DEL_ERR
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Dieser Fehler tritt auf, wenn ein für Registrierungen verwendeter Schlüssel gelöscht wird.
In den meisten Fällen kann ein Schlüssel mit Registrierungen über die --force
Option an.
Wenn für die registrierte Ressource der Parameter preventKeyDeletion
auf true
gesetzt ist, schlägt das Löschen mit der Option 'force' fehl und diese Fehlernachricht wird angezeigt.
Mit anderen Worten: Für alle Registrierungen muss der Parameter preventKeyDeletion
auf false
gesetzt sein.
Registrierungen sind Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen (z. B. Cloud Object Storage-Buckets oder Bereitstellungen von Clouddatenbanken).
Weitere Informationen zu Registrierungen finden Sie im Abschnitt zum Anzeigen von Zuordnungen zwischen Rootschlüsseln und verschlüsselten IBM Cloud-Ressourcen.
25 - Der Schlüssel ist nicht doppelt autorisiert und...
Nachricht
Der Schlüssel ist nicht für die doppelte Authentifizierung aktiviert und seine Löschung kann nicht festgelegt werden
Ursachencode: NOT_DUAL_AUTH_ERR
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Dieser Fehler tritt auf, wenn Sie versuchen, einen Löschvorgang zu autorisieren oder eine Autorisierung zu entfernen und der Schlüssel nicht über eine Richtlinie für doppelte Autorisierung (dual authorization
)
verfügt.
In diesen Beispielen wird das Auslösen des Fehlers über die API und die CLI veranschaulicht.
Beispiel 1
In diesem Beispiel wird versucht, über die API einen Löschvorgang zu autorisieren und eine Autorisierung zu entfernen.
# create a root key
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key+json" \
-d '{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"name": "root-example-key",
"description": "root-example-key",
"extractable": false
}
]
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"id": "eb086d96-3b2c-48b5-bf31-c8f0305eea77",
"name": "root-example-key",
"description": "root-example-key",
"state": 1,
"extractable": false,
"crn":"crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:eb086d96-3b2c-48b5-bf31-c8f0305eea77",
"imported": false,
"deleted": false
}
]
}
Autorisieren der Löschung für einen Schlüssel mit einer Richtlinie für doppelte Autorisierung.
# set the KEY_ID
$ KEY_ID=eb086d96-3b2c-48b5-bf31-c8f0305eea77
# this request fails because the key DOES NOT have a dual authorization policy
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/setKeyForDeletion" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Conflict: Action could not be performed on key. Please see `reasons` for more details.",
"reasons": [
{
"code": "NOT_DUAL_AUTH_ERR",
"message":"The key is not dual auth enabled and cannot be set for deletion",
"status": 409,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Entfernen einer Autorisierung für einen Schlüssel mit einer Richtlinie für doppelte Autorisierung.
# this request fails because the key DOES NOT have a dual authorization policy
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/unsetKeyForDeletion" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Conflict: Action could not be performed on key. Please see `reasons` for more details.",
"reasons": [
{
"code": "NOT_DUAL_AUTH_ERR",
"message": "The key is not dual auth enabled and cannot be set for deletion",
"status": 409,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
Beispiel 2
In diesem Beispiel wird versucht, über die CLI einen Löschvorgang zu autorisieren und eine Autorisierung zu entfernen.
Hinweis: Die Schlüssel-ID ($KEY_ID
) wurde bereits in einem vorherigen Beispiel festgelegt.
# this request fails because the key DOES NOT have a dual authorization policy
$ ibmcloud kp key schedule-delete $KEY_ID
Scheduling key for deletion...
FAILED
kp.Error:
correlation_id='3d941968-c599-43b3-b681-306422079412',
msg='Conflict:
Action could not be performed on key.
Please see `reasons` for more details.',
reasons='[NOT_DUAL_AUTH_ERR:
The key is not dual auth enabled and cannot be set for deletion -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
# this request fails because the key DOES NOT have a dual authorization policy
$ ibmcloud kp key cancel-delete $KEY_ID
Cancelling key for deletion...
FAILED
kp.Error:
correlation_id='5b04a667-573c-44d1-82d5-39730af56a75',
msg='Conflict:
Action could not be performed on key.
Please see `reasons` for more details.',
reasons='[NOT_DUAL_AUTH_ERR:
The key is not dual auth enabled and cannot be set for deletion -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
26 - Der Schlüssel wurde kürzlich aktualisiert
Nachricht
Der Schlüssel wurde kürzlich aktualisiert: Warten Sie und wiederholen Sie den Vorgang
Ursachencode: REQ_TOO_EARLY_ERR
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Dieser Fehler tritt auf, wenn die Aktion enable
(aktivieren) oder restore
(wiederherstellen) innerhalb von 30 Sekunden nach der vorherigen Aktion ausgeführt wird.
Seit der vorherigen Aktion für einen Schlüssel müssen mindestens 30 Sekunden vergangen sein, bevor der Schlüssel aktiviert oder wiederhergestellt wird.
Der Vorgang in diesem Beispiel schlägt fehl, da das Aktivieren des Schlüssels kurz nach dem Inaktivieren des Schlüssels eingeleitet wurde.
# create a root key
$ KEY_ID=$(ibmcloud kp key create example-key -i $KP_INSTANCE_ID --output json | jq -r '.["id"]')
$ echo $KEY_ID
54f53384-b563-4466-860a-c42ce42f7ac9
# disable the key
$ ibmcloud kp key disable $KEY_ID -i $KP_INSTANCE_ID
Disabling key: '54f53384-b563-4466-860a-c42ce42f7ac9', in instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
# this request fails because the key was enabled too soon
$ ibmcloud kp key enable $KEY_ID -i $KP_INSTANCE_ID
Enabling key: '54f53384-b563-4466-860a-c42ce42f7ac9', in instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
FAILED
kp.Error:
correlation_id='59c343a7-c20f-43ea-9e50-da45cecbc8a6',
msg='Conflict:
Key could not be enabled.
Please see `reasons` for more details.',
reasons='[REQ_TOO_EARLY_ERR:
The key was updated recently.
Please wait and try again. -
FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'
# this request succeeds because the key was disabled at least 30 seconds ago
$ ibmcloud kp key enable $KEY_ID -i $KP_INSTANCE_ID
Enabling key: '54f53384-b563-4466-860a-c42ce42f7ac9', in instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
27 - Der angegebene verschlüsselte Text ist ungültig oder...
Nachricht
Der angegebene verschlüsselte Text ist ungültig oder beschädigt
Ursachencode: UNPROCESSABLE_CIPHERTEXT_ERR
HTTP-Statuscode
422 - Unprocessable Entity
Der HTTP-Antwortstatuscode 422 Unprocessable Entity
gibt an, dass der Inhaltstyp der Anforderungsentität vom Server erkannt wird und die Syntax der Anforderungsentität korrekt ist, die darin enthaltenen Anweisungen jedoch nicht
verarbeitet werden können.
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dies bedeutet in der Regel, dass das Hardwaresicherheitsmodul (HSM) die Daten nicht verarbeiten konnte, da die Eingabe ungültig war.
Dieser Fehler wird zurückgegeben, wenn ein interner Fehler aufgetreten ist.
Wenn Sie diese Fehlermeldung erhalten, wenden Sie sich bitte an IBM
28 - Die bereitgestellte verschlüsselte Nonce war nicht ...
Nachricht
Die angegebene verschlüsselte Nonce wurde nicht mit den angegebenen Schlüsselinformationen verschlüsselt oder der angegebene ursprüngliche Wert stimmt nicht mit der verschlüsselten Nonce überein
Ursachencode: INCORRECT_NONCE_IV_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dies bedeutet in der Regel, dass das Hardwaresicherheitsmodul (HSM) die Daten nicht verarbeiten konnte, da die Eingabe ungültig war.
Dieser Fehler wird zurückgegeben, wenn ein interner Fehler aufgetreten ist.
Wenn Sie diese Fehlermeldung erhalten, wenden Sie sich bitte an IBM
29 - Die abgefragte Ressource (n) gehört nicht zum Service
Nachricht
Die angeforderten Ressourcen gehören nicht zum Service.
Ursachencode: RESOURCE_OWNER_ERR
HTTP-Statuscode
403 - Forbidden
Der HTTP-Statusantwortcode 403 Forbidden
für Clientfehler gibt an, dass die Anforderung vom Server zwar verstanden wurde, jedoch nicht autorisiert wird.
Dieser Status ähnelt dem Statuscode 401
; im vorliegenden Fall bleibt die erneute Authentifizierung jedoch wirkungslos. Der Zugriff wird dauerhaft verweigert und an die Anwendungslogik gebunden (z. B. unzureichende Berechtigungen
für eine Ressource).
Kontext
Diese Fehlernachricht tritt in einer Service-zu-Service-Anforderung auf. Der Service versucht, einen Schlüssel zu löschen, obwohl dies nicht zulässig ist. Das heißt, ein anderer Service kann einen Key Protect-Schlüssel zugeordnet sind.
Ein Beispiel für die Verwendung des Service-zu-Service-Zugriffs ist ein Benutzer, der ein Cloud Object Storage-Bucket (COS) konfiguriert, um dessen Daten mit einem Key Protect-Schlüssel zugeordnet sind.
In diesem COS-Beispiel kann der verwendete Verschlüsselungsschlüssel von COS nicht gelöscht werden.
30 - Diese Aktion kann nur durch einen Service durchgeführt werden ...
Nachricht
Diese Aktion kann nur von einem Service durchgeführt werden (Service zu Service)
Ursachencode: SERVICE_ONLY_ERR
HTTP-Statuscode
403 - Forbidden
Der HTTP-Statusantwortcode 403 Forbidden
für Clientfehler gibt an, dass die Anforderung vom Server zwar verstanden wurde, jedoch nicht autorisiert wird.
Dieser Status ähnelt dem Statuscode 401
; im vorliegenden Fall bleibt die erneute Authentifizierung jedoch wirkungslos. Der Zugriff wird dauerhaft verweigert und an die Anwendungslogik gebunden (z. B. unzureichende Berechtigungen
für eine Ressource).
Kontext
Manche Aktionen (z. B. das Erstellen einer Registrierung) können nur von einem anderen Service mithilfe einer sogenannten Service-zu-Service-Anforderung ausgeführt werden.
Wenn Sie zum Beispiel ein Cloud Object Storage-Bucket (COS-Bucket) konfigurieren, um Daten mit einem Key Protect-Schlüssel zu verschlüsseln, muss die Registrierung vom COS-Service erstellt werden.
Eine Service-zu-Service-Anforderung ist erforderlich, um eine Registrierung zu erstellen, zu löschen, zu ersetzen oder zu aktualisieren.
Weitere Informationen zu Registrierungen finden Sie in den folgenden Ressourcen.
31 - Diese Aktion ist nicht erlaubt auf dieser...
Nachricht
Diese Aktion ist für diese Ressource nicht zulässig: Wenden Sie sich an IBM Key Protect oder öffnen Sie ein Service-Ticket, um diese Funktion zu aktivieren
Ursachencode: FEATURE_RESTRICTED_ERR
HTTP-Statuscode
403 - Forbidden
Der HTTP-Statusantwortcode 403 Forbidden
für Clientfehler gibt an, dass die Anforderung vom Server zwar verstanden wurde, jedoch nicht autorisiert wird.
Dieser Status ähnelt dem Statuscode 401
; im vorliegenden Fall bleibt die erneute Authentifizierung jedoch wirkungslos. Der Zugriff wird dauerhaft verweigert und an die Anwendungslogik gebunden (z. B. unzureichende Berechtigungen
für eine Ressource).
Kontext
Sie versuchen, eine Instanzrichtlinie mit einer nicht unterstützten Funktion zu erstellen, zu aktualisieren oder zu verwenden.
Beispiel: Die Instanzrichtlinie wurde für einen Adressbereich allowedIp
erstellt, der nur IPv4-Adressen unterstützt. Sie haben eine Anforderung mit einer IPv6-Adresse an die Instanz abgesetzt und dieser Fehler wurde zurückgegeben.
32 - Diese Anforderung erfordert, dass die Schlüsselversion ...
Nachricht
Für diese Anforderung muss die Version dieses Schlüssels neuer als die aktuelle Version des Registrierungsschlüssels sein
Ursachencode: KEY_VERSION_INVALID
HTTP-Statuscode
422 - Unprocessable Entity
Der HTTP-Antwortstatuscode 422 Unprocessable Entity
gibt an, dass der Inhaltstyp der Anforderungsentität vom Server erkannt wird und die Syntax der Anforderungsentität korrekt ist, die darin enthaltenen Anweisungen jedoch nicht
verarbeitet werden können.
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Dieser Fehler kommt bei Schlüsseln vor, die für 'Registrierungen' verwendet werden.
Wenn ein Service wie Cloud Object Storage (COS) versucht, einen Schlüssel zu ersetzen oder wiederherzustellen, wird die Zeitmarke des Schlüssels überprüft.
Wenn die Zeitmarke des Schlüssels älter ist als die Zeitmarke des in der Registrierung verwendeten Schlüssels, tritt dieser Fehler auf.
Die Zeitmarke des vom Service verwendeten Schlüssels muss größer-gleich der Zeitmarke des Schlüssels in der Registrierung sein.
Registrierungen sind Zuordnungen zwischen Rootschlüsseln und anderen Cloudressourcen (z. B. Cloud Object Storage-Buckets oder Bereitstellungen von Clouddatenbanken).
Weitere Informationen zu Registrierungen finden Sie im Abschnitt zum Anzeigen von Zuordnungen zwischen Rootschlüsseln und verschlüsselten IBM Cloud-Ressourcen.
33 - Dieser Rootschlüssel wurde innerhalb von ...
Nachricht
Dieser Rootschlüssel wurde innerhalb der letzten Stunde rotiert: Nur eine 'rotate'- Aktion pro Stunde ist zulässig
Ursachencode: KEY_ROTATION_NOT_PERMITTED
HTTP-Statuscode
409 - Conflict
Der HTTP-Antwortstatuscode 409 Conflict
weist auf einen Konflikt zwischen der Anforderung und dem aktuellen Status des Servers hin.
Konflikte treten meist als Folge einer Anforderung PUT
auf. Beispielsweise kann eine Antwort mit dem Code 409
beim Hochladen einer Datei ausgegeben werden, die älter ist als die bereits auf dem Server vorhandene Datei
(dies führt zu einem Konflikt bei der Versionssteuerung).
Kontext
Für einen Rootschlüssel kann nur eine Rotation pro Stunde durchgeführt werden. Der Versuch, einen Rootschlüssel vor Ablauf einer Stunde zu rotieren, führt zu dieser Fehlernachricht.
# step 1 - create a root key and provide a key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL
dlYulSKD5cEG/XoAV8vv4QiQe/s3SlBzPY+PKgq92/0=
$ KEY_ID=$(ibmcloud kp key create rotate-example-key -i $KP_INSTANCE_ID --key-material $KEY_MATERIAL --output json | jq -r '.["id"]')
$ echo $KEY_ID
1604b4f3-6ba0-459c-8f65-400ed981a5eb
# step 2 - this request succeeds because there is no time
# restriction when rotating the key the first time
$ KEY_MATERIAL_NEW_1=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL_NEW_1
rK9CCRHxr8RpVvKQSEvud1zHAPnXl3PvhaPwx2aRxGE=
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/rotate" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json" \
-d '{
"payload": "'$KEY_MATERIAL_NEW_1'"
}'
# step 3 - this request fails because the key was
# last rotated less than one hour ago
$ KEY_MATERIAL_NEW_2=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL_NEW_2
pQX+ghaaH/r/s54ICWuwq3jQDPWlHQMDhAV0mwpBf2w=
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/rotate" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json" \
-d '{
"payload": "'$KEY_MATERIAL_NEW_2'"
}'
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Conflict: Action could not be performed on key: Please see `reasons` for more details (KEY_ROTATION_NOT_PERMITTED)",
"reasons": [
{
"code": "KEY_ROTATION_NOT_PERMITTED",
"message": "This root key has been rotated within the last hour: Only one 'rotate' action per hour is permitted",
"status": 409,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
}
]
}
]
}
34 - Dieser Rootschlüssel wurde mit vom Benutzer bereitgestellten...
Nachricht
Dieser Rootschlüssel wurde mit vom Benutzer bereitgestellten Schlüsselinformationen erstellt: Zum Durchführen der Aktion 'rotate' sind Schlüsselinformationen erforderlich
Ursachencode: KEY_PAYLOAD_REQ_ERR
HTTP-Statuscode
400 - Bad Request
Der HTTP-Antwortstatuscode 400 Bad Request
gibt an, dass der Server die Anforderung nicht verarbeiten kann oder wird, da ein Clientfehler erkannt wurde (z. B. fehlerhafte Anforderungssyntax, ungültiges Framing der Anforderungsnachricht
oder irreführendes Routing der Anforderung).
Der Client sollte diese Anforderung nicht ohne Änderung wiederholen.
Kontext
Wenn ein Rootschlüssel mithilfe von Schlüsselinformationen (Nutzdaten) erstellt wurde, müssen bei der Schlüsselrotation Schlüsselinformationen angegeben werden.
# step 1 - create a root key and provide a key material
$ KEY_MATERIAL=$(openssl rand -base64 32)
$ echo $KEY_MATERIAL
HpHM2YG9PMLBo4fZmV2WODZTTWlwaKmy496MoCE7w7U=
$ KEY_ID=$(ibmcloud kp key create rotate-example-key -i $KP_INSTANCE_ID --key-material $KEY_MATERIAL --output json | jq -r '.["id"]')
$ echo $KEY_ID
e52ee578-af71-4cd7-ba19-f1a8020d6a10
# step 2 - rotate the key without a new key material
$ curl -X POST \
"https://us-south.kms.cloud.ibm.com/api/v2/keys/$KEY_ID/actions/rotate" \
-H "authorization: Bearer $ACCESS_TOKEN" \
-H "bluemix-instance: $KP_INSTANCE_ID" \
-H "content-type: application/vnd.ibm.kms.key_action+json"
JSON-Antwort
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.error+json",
"collectionTotal": 1
},
"resources": [
{
"errorMsg": "Bad Request: Action could not be performed on key: Please see `reasons` for more details (KEY_PAYLOAD_REQ_ERR)",
"reasons": [
{
"code": "KEY_PAYLOAD_REQ_ERR",
"message": "This root key was created with user-supplied key material: Key material is required to perform a 'rotate' action",
"status": 400,
"moreInfo": "https://cloud.ibm.com/apidocs/key-protect",
"target": {
"type": "field",
"name": "payload"
}
}
]
}
]
}
Geordnet nach HTTP-Statuscode
In der folgenden Auflistung sind die Fehlernachrichten nach dem HTTP-Statuscode geordnet.
HTTP 400 - Bad Request
-
Summe der Erfassung entspricht nicht der Anzahl der Ressourcen - Details
-
Daten im Hauptteil stimmen nicht mit Daten überein, die für den Abfrageparameter erforderlich sind - Details
-
Extrahieren des Subjekts aus Trägertoken fehlgeschlagen: Stellen Sie sicher, dass das übergebene Trägertoken das richtige (und korrekt formatierte) ist und zum Ausführen der angeforderten Aktionen berechtigt ist - Details
-
Ungültige Hauptteildaten wurden übergeben: Bitte stellen Sie sicher, dass die übergebenen Daten eine gültige Formatierung mit keinen ungültigen Zeichen haben - Details
-
Ungültiger Feldfehler: für wrap
The field 'plaintext' must be: a base64 encoded key material
, wenn ungültiger Klartext in der Anfrage übergeben wird; undThe field 'ciphertext' must be: the original base64 encoded ciphertext from the wrap operation
für unwrap, wenn ungültiger Chiffriertext übergeben wird. - Details -
Schlüsselwiederherstellung ist abgelaufen - Details
-
Fehlender Hauptteil in Anforderung - Details
-
Pro Abfrageparameter kann nur eine einzelne Instanzrichtlinie erstellt werden: Übergeben Sie ein einzelnes Ressourcenobjekt - Details
-
Nur importierte Schlüssel können wiederhergestellt werden - Details
-
Die angeforderte Aktion kann nur mit einem Rootschlüssel ausgeführt werden - Details
-
Die Aktion konnte für den Schlüssel nicht ausgeführt werden, da der Schlüssel abgelaufen ist - Details
-
Die angegebene verschlüsselte Nonce stimmt nicht mit dem vorhandenen Datensatz überein: Stellen Sie sicher, dass die richtige Nonce in der Anforderung angegeben wurde - Details
-
Die angegebene verschlüsselte Nonce wurde nicht mit dem angegebenen Schlüsselmaterial verschlüsselt ODER der angegebene IV stimmt nicht mit der verschlüsselten Nonce überein - Details
-
Dieser Rootschlüssel wurde mit vom Benutzer bereitgestellten Schlüsselinformationen erstellt: Zum Durchführen der Aktion 'rotate' sind Schlüsselinformationen erforderlich - Details
HTTP 401 - Unauthorized
- Nicht berechtigt: Der Benutzer verfügt über keinen Zugriff auf die angegebene Ressource - Details
HTTP 403 - Forbidden
-
Die angeforderte Änderung ist nicht mit den Konfigurationsregeln konform - Details
-
Die abgefragte(n) Ressource(n) gehört/gehören nicht zum Service - Details
-
Diese Aktion kann nur von einem Service durchgeführt werden (Service-zu-Service) - Details
-
Diese Aktion ist nicht zulässig auf dieser Ressource: Wenden Sie sich bitte an IBM Key Protect oder öffnen Sie ein Service-Ticket, um diese Funktion zu aktivieren - Details
HTTP 409 - Conflict
-
Der Schlüssel besitzt keinen gültigen Status - Details
-
Der Schlüssel schützt eine oder mehrere Cloud-Ressourcen - Details
-
KeyCreateImportAccess-Instanzrichtlinie lässt diese Aktion nicht zu - Details
-
Anzahl der erforderlichen Autorisierungen zum Löschen ist nicht erfüllt - Details
-
Das Importtoken ist abgelaufen - Details
-
Der Schlüssel kann nicht gelöscht werden, da er eine Cloudressource mit einer Aufbewahrungsrichtlinie schützt: Bevor Sie diesen Schlüssel löschen, wenden Sie sich an einen Kontoeigner, damit dieser die Aufbewahrungsrichtlinie für jede diesem Schlüssel zugeordnete Ressource entfernt - Details
-
Der Schlüssel ist nicht für die doppelte Authentifizierung aktiviert und dessen Löschung kann nicht festgelegt werden - Details
-
Der Schlüssel wurde kürzlich aktualisiert: Bitte warten Sie und versuchen Sie es erneut - Details
-
Dieser Rootschlüssel wurde innerhalb der letzten Stunde rotiert: Die Aktion 'rotate' ist nur einmal pro Stunde zulässig - Details
HTTP 410 - Gone
- Schlüssel wurde bereits gelöscht: Löschen Sie Verweise auf diesen Schlüssel - Details
HTTP 422 - Unprocessable Entity
-
Der Schlüssel besitzt keinen gültigen Status - Details
-
Die angeforderte Aktion kann nur mit einem Rootschlüssel ausgeführt werden - Details
-
Signatur ist ungültig ... Details
-
Der angegebene verschlüsselte Text ist ungültig oder beschädigt - Details
-
Für diese Anforderung muss die Version dieses Schlüssels neuer als die aktuelle Version des Registrierungsschlüssels sein - Details
HTTP 500 - Internal Server Error
- Schlüsselmetadaten wurden beschädigt: Bitte löschen Sie diesen Schlüssel - Details
Sortiert nach Ursachencode
In diesem Abschnitt werden Fehlermeldungen nach dem Grundcode sortiert.
- AUTHORIZATIONS_NOT_MET - Details
- BAD_BODY_ERR - Details
- BEARER_SUB_EXTRACTION_ERR - Details
- BODY_QUERY_PARAM_MISMATCH_ERR - Details
- COLLECTION_TOTAL_MISMATCH_ERR - Details
- CONFIG_RULE_CONFLICT_ERR - Details
- FEATURE_RESTRICTED_ERR - Details
- IMPORT_TOKEN_EXPIRED_ERR - Details
- INCOMPLETE_METADATA_ERR - Details
- INCORRECT_NONCE_ERR - Details
- INCORRECT_NONCE_IV_ERR - Details
- INVALID_FIELD_ERR - Details
- INVALID_SIG_EXP_ERR - Details
- KEY_ACTION_INVALID_STATE_ERR - Details
- KEY_CREATE_IMPORT_ACCESS_ERR - Details
- KEY_DELETED_ERR - Details
- KEY_EXPIRED_ERR - Details
- KEY_IMPT_REQ_ERR - Details
- KEY_INVALID_STATE_ERR - Details
- KEY_PAYLOAD_REQ_ERR - Details
- KEY_RESTORE_EXPIRED - Details
- KEY_ROOT_REQ_ERR - Details
- KEY_ROOT_REQ_REG_ERR - Details
- KEY_ROTATION_NOT_PERMITTED - Details
- KEY_VERSION_INVALID - Details
- NO_BODY_ERR - Details
- NOT_DUAL_AUTH_ERR - Details
- NUM_COLLECTION_RESOURCE_ERR - Details
- PREV_KEY_DEL_ERR - Details
- PROTECTED_RESOURCE_ERR - Details
- REQ_TOO_EARLY_ERR - Details
- RESOURCE_OWNER_ERR - Details
- SERVICE_ONLY_ERR - Details
- UNAUTHORIZED_ERR - Details
- UNPROCESSABLE_CIPHERTEXT_ERR - Details