IBM Cloud Docs
エラー・メッセージ

エラー・メッセージ

これらのエラー・メッセージは Key Protect によって作成され、ユーザー・インターフェース (UI) に表示されます。

ほとんどのエラー・メッセージには、要求と応答が表示される 1 つ以上の例があります (通常は curl)。

これはエラー・メッセージの全リストではありません。 一部のメッセージは、ID およびアクセス管理 (IAM) などの他のシステムによって作成され、エラー・メッセージは IAM などの別のシステムから Key Protect にユーザーに渡されます。

目次

目次は、エラー・メッセージによってソートされます。

エラー・メッセージの中には、エラー・メッセージの末尾に HTTP 状況コードが含まれている場合に、複数回発生するエラー・メッセージがあります。

  1. コレクションの合計が数値と一致しません... 詳細
  2. 本体のデータが必要なデータと一致しません... 詳細
  3. ベアラーからサブジェクトを抽出しています... 詳細
  4. 無効な本文データが渡されました... 詳細
  5. 無効なフィールド・エラー... 詳細
  6. 鍵を削除できませんでした... 詳細
  7. 鍵は既に削除されています... 詳細
  8. 鍵が有効な状態ではありません (409) 詳細
  9. 鍵が有効な状態ではありません (422) 詳細
  10. 鍵は 1 つ以上のクラウドを保護しています... 詳細
  11. 鍵メタデータが破損しました... 詳細
  12. 鍵回復の有効期限が切れました 詳細
  13. KeyCreateImportAccess インスタンス・ポリシー... 詳細
  14. 要求に本体がありません 詳細
  15. 必要な権限の数... 詳細
  16. 単一のインスタンス・ポリシーは 1 つのみが... 詳細
  17. インポートされた鍵のみを復元できます 詳細
  18. 要求されたアクションは、ルート鍵を使用してのみ完了できます (400) 詳細
  19. 要求されたアクションは、ルート鍵を使用してのみ完了できます (422) 詳細
  20. 要求された変更は構成ルールに従っていません 詳細
  21. 署名が無効です 詳細
  22. アクションを実行できませんでした... 詳細
  23. 指定された暗号化された nonce が一致しません... 詳細
  24. インポート・トークンの有効期限が切れました 詳細
  25. 鍵は削除できません... 詳細
  26. 鍵の二重認証が有効になっていません... 詳細
  27. 鍵は更新されたばかりでした 詳細
  28. 指定された暗号文が無効であるか、または... 詳細
  29. 指定された暗号化された nonce が... 詳細
  30. 照会されたリソースはサービスに属していません。 詳細
  31. このアクションはサービスによってのみ実行できます... 詳細
  32. このアクションはこれでは許可されていません... 詳細
  33. この要求には鍵のバージョンが必要です... 詳細
  34. このルート鍵は内でローテートされています... 詳細
  35. このルート鍵はユーザー指定で作成されました... 詳細
  36. 無許可: ユーザーには... 詳細

1 - コレクションの合計が...

メッセージ

コレクションの合計がリソースの数と一致しません

理由コード: COLLECTION_TOTAL_MISMATCH_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、 インスタンスポリシー が作成された際に発生します。

metadata.collectionTotal フィールドの値が、resources 配列内のリソースの数と一致していません。

create instance policy 要求は、以下の理由で失敗します。 metadata.collectionTotal は 2 ですが、1 つのリソースが提供されました。 resources 配列。

# 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 応答

{
    "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 - 本体のデータが...

メッセージ

本体のデータが照会パラメーターに必要なデータと一致しません

理由コード: BODY_QUERY_PARAM_MISMATCH_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、 インスタンスポリシー が作成された際に発生します。

ポリシー dualAuthDelete, allowedNetwork,、または allowedIP )を指定するクエリパラメータが、最初の policy_type に一致しない。 resources アレイ。

create instance policy 照会パラメーター (dualAuthDelete) が policy (badName) と一致しないため、resources.policy_type 要求は失敗します。

# 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 応答

{
    "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 - ベアラー・トークンからのサブジェクトの抽出に...

メッセージ

ベアラー・トークンからのサブジェクトの抽出に失敗しました。渡されたベアラー・トークンが正しいものであり (形式も問題ないものであり)、要求されたアクションの実行を許可されていることを確認してください

理由コード: BEARER_SUB_EXTRACTION_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

ID およびアクセス管理 (IAM) アクセス・トークンまたは形式が無効でした。 これが curl 要求の場合は、以下の形式を使用して authorization ヘッダーを設定する必要があります。

-H "authorization: Bearer $ACCESS_TOKEN"

使用しているプラットフォーム (Linux、Mac、Windows) またはシェル (bash、sh、zsh) によっては、単一引用符と二重引用符の使用を認識する必要があります。 一部のシステムでは、単一引用符で囲まれた変数が解釈されません。 例えば、('Bearer $ACCESS_TOKEN') では、$ACCESS_TOKEN を値に置き換えることができません。

有効な IAM トークンを指定していることを確認してください。 トークンの有効期限が切れている場合は、(再) ログインが必要になることがあります。 ここでは、ログインしてアクセス・トークンを設定するためのコマンド・ライン・インターフェース (CLI) コードの数行を示します。

# 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 - 無効な本体データが渡されました...

メッセージ

無効な本体データが渡されました。渡されたデータが無効文字を含まない、正しい形式のものであることを確認してください

理由コード: BAD_BODY_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーの例を以下に示します。

  • インスタンス・ポリシーを作成します

    • 各ポリシーを 1 つのみ作成できます
    • resources セクションが指定されていません
    • resources セクション内の関係のないフィールド (例 1 を参照)
  • 鍵の作成

    • 1 つのリソースが必要です (例 2 を参照)
    • メタデータが空です (例 3 を参照)
    • 鍵の値がゼロであるか、鍵が空です

例 1

リソースに余分なフィールド (create instance policy) が含まれているため、extra_field 要求は失敗します。

# 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 応答
{
    "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"
                }
            ]
        }
    ]
}

例 2

複数のリソースが存在するため、この create key 要求は失敗します。

# 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 応答
{
    "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"
                }
            ]
        }
    ]
}

例 3

metadata が空であるため、この create key 要求は失敗します。

# 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 応答
{
    "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 - 無効な鍵のエラー...

メッセージ

鍵をラップするときに、無効なプレーン・テキストを要求で渡すと、メッセージ The field 'plaintext' must be: a base64 encoded key material が表示されます。

鍵をアンラップするときに、無効な暗号文を渡すと、メッセージ The field 'ciphertext' must be: the original base64 encoded ciphertext from the wrap operation が表示されます。

HTTP 状況コード

400

context

鍵をラップする要求の失敗例:

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;",
}'

応答:

{
    "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"
                    }
                }
            ]
        }
    ]
}

鍵をアンラップする要求の失敗例:

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"
}'

応答:

{
    "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 - 鍵を削除できませんでした...

HTTP 状況コード

409 - 競合

HTTP 409 Conflict クライアント・エラー応答コードは、クライアント要求に含まれるエラーを、示されている戻り理由コードに従って解決できることを示しています。

context

具体的な状況を示す理由がメッセージに含まれて返されます。

メッセージ

理由コード: AUTHORIZATIONS_NOT_MET

二重許可要求に失敗したので、鍵を削除できません。 この鍵を削除する前に、二重許可手順に従っていることを確認してください。 二重許可を使用した鍵の削除のトピックを参照してください。

理由コード: PROTECTED_RESOURCE_ERR

鍵に関連付けられているリソースが 1 つ以上存在するので、鍵を削除できません。 鍵を削除およびパージする前の考慮事項のトピックを参照してください。

理由コード: PREV_KEY_DEL_ERR

鍵で保護されているクラウド・リソースに保存ポリシーがあるので、鍵を削除できません。 この鍵を削除する前に、アカウント所有者に連絡して、鍵に関連付けられている各リソースの保存ポリシーを削除してください。 鍵を削除およびパージする前の考慮事項のトピックを参照してください。

応答例 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"
                }
            ]
        }
    ]
}

応答例 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"
                }
            ]
        }
    ]
}

応答例 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 - 鍵は、既に削除されています...

メッセージ

鍵は、既に削除されています。この鍵への参照を削除してください

理由コード: KEY_DELETED_ERR

HTTP 状況コード

410 - 削除済み

HTTP クライアント・エラー応答コード 410 Gone は、起点サーバーでターゲット・リソースにアクセスできなくなっていること、およびこの状態が永続的なものである可能性が高いことを示しています。

この状態が一時的なのか、永続的なのかが分からない場合は、代わりに 404 状況コードが使用されます。

410 応答は、デフォルトではキャッシュ可能です。

context

鍵が以前に削除されているため、delete key 要求は失敗します。 鍵を複数回削除することはできません。

# 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 応答
{
    "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 - 鍵が有効な状態ではありません

メッセージ

鍵が有効な状態ではありません

理由コード: KEY_ACTION_INVALID_STATE_ERR

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

このエラーは、鍵に対して「アクション」が実行され、鍵の状態が有効でない場合に発生します。

次のアクションが考えられます。

  • ラップ、アンラップ、ローテート、削除する鍵の設定 (二重許可)、削除する鍵の設定解除 (二重許可)、または鍵の無効化を行うには、鍵の状態がアクティブ (状態値は 1) である必要があります

  • このエラーは、有効期限が切れた鍵 (状態値は 3) を有効にしようとしたり、破棄された鍵 (状態値は 5) を復元しようとしたりすると発生します

例 1

以前に無効にした鍵を無効にすることはできないため、key disable 要求は失敗します。

# 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 応答
{
    "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"
                }
            ]
        }
    ]
}

例 2

鍵の有効期限が切れており、鍵の状態を無効 (状態値は 3) から有効 (状態値は 1) に変更しようとしているため、key disable 要求は失敗します。

以下のステップでは、key has been disabled エラーが返されます。

  1. 有効期限を指定して鍵を作成します

  2. 有効期限が過ぎることを許可します

  3. 鍵を有効にします

# 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 応答
{
    "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 応答
{
    "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 - 鍵が有効な状態ではありません

メッセージ

鍵が有効な状態ではありません

理由コード: KEY_INVALID_STATE_ERR

HTTP 状況コード

422 - 処理できないエンティティー

HTTP 応答状況コード 422 Unprocessable Entity は、サーバーが要求エンティティーのコンテンツ・タイプを認識しており、要求エンティティーの構文が正しいのに含まれている命令を処理できなかったことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、「登録」に使用される鍵に適用されます。

鍵をクラウド・リソースに登録する場合は、鍵の状態がアクティブ (状態値は 1) である必要があります。

登録は、ルート鍵とその他のクラウド・リソース (Cloud Object Storage (COS) バケットや Cloud Databases デプロイメントなど) との間の関連付けです。

登録について詳しくは、ルート鍵と暗号化された IBM Cloud リソースとの間の関連の表示を参照してください。

9 - 鍵は 1 つ以上の...

メッセージ

鍵は 1 つ以上のクラウド・リソースを保護しています

理由コード: PROTECTED_RESOURCE_ERR

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

このエラーは、「登録」に使用される鍵に適用されます。

クラウドリソースに登録されているキーは、それを削除しない限り削除できません force オプションが指定されている。

別のクラウド・リソースに登録されているルート鍵を削除するには、force オプションを使用する必要があります。

登録は、ルート鍵とその他のクラウド・リソース (Cloud Object Storage (COS) バケットや Cloud Databases デプロイメントなど) との間の関連付けです。

登録について詳しくは、ルート鍵と暗号化された IBM Cloud リソースとの間の関連の表示を参照してください。

他のクラウドリソースに登録されているキーを削除する 説明を参照してください( 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 - 鍵のメタデータが壊れました...

メッセージ

鍵のメタデータが壊れました。この鍵を削除してください

理由コード: INCOMPLETE_METADATA_ERR

HTTP 状況コード

500 - 内部サーバー・エラー

HTTP サーバー・エラー応答コード 500 Internal Server は、サーバーが要求を満たすことができない予期しない状態を検出したことを示しています。

このエラー応答は、汎用の「catch-all」応答です。 通常、これはサーバーがより良い 5xx エラー・コードを検出して応答できないことを示します。 サーバー管理者は、エラーが今後発生しないようにするため、500 状況コードなどのエラー応答を要求についての詳細とともにログに記録することがあります。

context

このエラーは、内部エラーが発生すると返されます。

このエラーが発生した場合は、 IBM

11 - 鍵回復の有効期限が切れました

メッセージ

鍵回復の有効期限が切れました

理由コード: KEY_RESTORE_EXPIRED

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、30 日より前に削除された鍵を復元しようとすると発生します。

12 - KeyCreateImportAccess インスタンス・ポリシー...

メッセージ

KeyCreateImportAccess インスタンス・ポリシーではこのアクションは許可されていません

理由コード: KEY_CREATE_IMPORT_ACCESS_ERR

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

KeyCreateImportAccess インスタンス・ポリシーが有効化されていたため、鍵を作成 またはインポートする要求は許可されませんでした。

例えば、このインスタンス・ポリシーでは標準鍵の作成が許可されていないため、 標準鍵を作成する要求は拒否されました。

以下のステップを実行すると、このエラーが返されます。

  1. インスタンス・ポリシーを有効にして、標準鍵を作成できないようにする

  2. 標準鍵を作成しようとするが、作成できない

  3. インスタンス・ポリシーを削除 (無効化) することで、標準鍵を作成できるようにする

  4. 標準鍵を正常に作成する

# 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
                }
            ]
        }'

ibmcloud API からの JSON 応答

{
    "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"
                }
            ]
        }
    ]
}

ステップ 3 と 4 を実行すると、keyCreateImportAccess ポリシーが無効化されて、 標準鍵が正常に作成されます。

# 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
                }
            ]
        }'

ibmcloud API からの JSON 応答

{
    "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 - 要求に本体がありません

メッセージ

要求に本体がありません

理由コード: NO_BODY_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、鍵を「再ラップ」または「アンラップ」し、本体がない場合に発生します。

以下のステップでは、missing body in request エラーが返されます。

  1. ルート・キーの作成

  2. データ暗号鍵 (DEK) を作成します。これはplaintextです

  3. DEK をルート鍵でラップします。これにより、ciphertextが作成されます

  4. 本体がないため、元の DEK (プレーン・テキスト) を表示するために新しい暗号文をアンラップする要求が失敗します

  5. 本体が指定されているため、元の DEK (プレーン・テキスト) を表示するために新しい暗号文をアンラップする要求が成功します

# 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 応答

{
    "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 応答

{
    "plaintext": "2eLAD3LyD3H2bq8dIDAy0A/lN9DSE/Ne3bwu40CdErs=",
    "keyVersion": {
        "id": "66ffaf5b-86c8-4a50-8a2a-920ae71f86dc"
    }
}

14 - 削除に必要な許可数を...

メッセージ

削除に必要な許可数を満たしていません

理由コード: AUTHORIZATIONS_NOT_MET

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

dual authorization policyが設定された鍵は、2 人のユーザーからの許可がないと削除できません。

以下のステップは、エラー・メッセージの作成方法を示しています。

  1. ルート・キーの作成

  2. 二重許可ポリシーを有効にします

  3. ポリシーをリストします (二重許可が有効であることを確認)

  4. 鍵を削除します。これは、鍵を削除するための十分な許可がないため、失敗します

# 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

8f97b016-bc31-4e3d-9cd6-a0a1c7caffdb

# step 2 - enable the dual authorization policy
$ ibmcloud kp key policy-update dual-auth-delete $KEY_ID -i $KP_INSTANCE_ID --enable

Setting a rotation interval for key ID: 8f97b016-bc31-4e3d-9cd6-a0a1c7caffdb...
OK

Key ID          8f97b016-bc31-4e3d-9cd6-a0a1c7caffdb
Created By      IBMid-...<redacted>...
Creation Date   2020-08-13T22:33:50Z
Last Updated    2020-08-13T22:33:50Z
Updated By      IBMid-...<redacted>...
Enabled         true

# step 3 - list the policies (verify dual authorization is enabled)
$ ibmcloud kp key policies $KEY_ID -i $KP_INSTANCE_ID --output json

[
    {
        "createdBy": "IBMid-...<redacted>...",
        "creationDate": "2020-08-13T22:33:50Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:0b93cd65-8359-4891-9289-8701f4c6ad9c",
        "lastUpdateDate": "2020-08-13T22:33:50Z",
        "updatedBy": "IBMid-...<redacted>...",
        "dualAuthDelete": {
            "enabled": true
        }
    }
]

# step 4 - fails because not enough authorizations are met to delete the key
$ 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 応答
{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.error+json",
        "collectionTotal": 1
    },
    "resources": [
        {
            "errorMsg": "Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted. Please see `reasons` for more details.",
            "reasons": [
                {
                    "code": "AUTHORIZATIONS_NOT_MET",
                    "message": "Number of authorizations required to delete is not met",
                    "status": 409,
                    "moreInfo": "https://cloud.ibm.com/apidocs/key-protect"
                }
            ]
        }
    ]
}

15 - インスタンス・ポリシーを 1 つだけ...

メッセージ

照会パラメーターごとにインスタンス・ポリシーを 1 つだけ作成できます。単一のリソース・オブジェクトを渡してください

理由コード: NUM_COLLECTION_RESOURCE_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

同じポリシーが複数回指定されたため、create instance policy 要求は失敗します。

各ポリシーが固有になる限り、要求に複数のポリシーを指定できます。 例えば、 dualAuthDelete のインスタンス・ポリシーを作成し、 同じ要求内の allowedIP

複数のインスタンス・ポリシーが指定されたため、この要求は失敗しました。

# 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 応答
{
    "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 - インポートされた鍵のみを復元できます

メッセージ

インポートされた鍵のみを復元できます

理由コード: KEY_IMPT_REQ_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

Key Protect は、以前に削除されたルート鍵を復元できます。これにより、クラウド内のルート鍵の関連データへのアクセス権限が復元されます。

管理者として、以前に保護されていた鍵のデータにアクセスするために、 Key Protect にインポートされたルート鍵を復元する必要がある場合があります。

鍵を復元するときに、鍵を_破棄_ (状態値は 5) から アクティブ (状態値は 1) の鍵の状態に移動し、その鍵を使用して以前に暗号化されたすべてのデータへのアクセスを復元します。

削除された鍵は、削除から 30 日以内は復元できます。 この機能は、key material (「ペイロード」とも呼ばれる) を使用して作成されたルート鍵に対してのみ使用可能です。

key material を使用して作成されたルート鍵は、kp key create オプションを指定した -k, --key-material コマンドを使用して復元できます。 --key-material オプションが指定されていない場合、ルート鍵を復元することは_できません_。

削除されたルート鍵を復元する場合は、以下を保存する 必要があります。 ルート鍵の作成に使用された key material。 元のkey materialを提供せずに削除された鍵を復元することは_できません_。

only imported keys may be restored エラーを作成するには、以下のステップを実行します。

  1. 鍵素材 (ペイロード) を使用せずにルート鍵を作成します

  2. キーの削除

  3. 30 秒間スリープ状態にします

  4. 鍵素材を作成します

  5. 鍵を復元し、鍵素材 (ペイロード) を指定します

# 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 応答
{
    "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 - 要求されたアクションは、...

メッセージ

要求されたアクションは、ルート鍵を使用してのみ完了できます

理由コード: KEY_ROOT_REQ_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

多くの鍵の「アクション」は、「ルート」鍵に対してのみ実行できます。 以下に、ルート鍵に対してのみ実行できるコマンドを示します。

  • 鍵の無効化
  • 鍵の有効化
  • 鍵の復元
  • 鍵のローテート
  • 鍵のアンラップ
  • 鍵のラップ

この例では、「標準」鍵を作成し、それを無効にします。 無効にできるのはルート鍵のみであるため、これは失敗します。

# 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 応答
{
    "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 - 要求されたアクションは、...

メッセージ

要求されたアクションは、ルート鍵を使用してのみ完了できます

理由コード: KEY_ROOT_REQ_REG_ERR

HTTP 状況コード

422 - 処理できないエンティティー

HTTP 応答状況コード 422 Unprocessable Entity は、サーバーが要求エンティティーのコンテンツ・タイプを認識しており、要求エンティティーの構文が正しいのに含まれている命令を処理できなかったことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、「登録」に使用される鍵に適用されます。 登録を作成するには、「ルート」鍵が必要です。 このエラーは、 登録作成APIリクエストが 行われた際に返されます。

登録は、ルート鍵とその他のクラウド・リソース (Cloud Object Storage (COS) バケットや Cloud Databases デプロイメントなど) との間の関連付けです。

登録について詳しくは、ルート鍵と暗号化された IBM Cloud リソースとの間の関連の表示を参照してください。

19 - 要求された変更は準拠していません...

メッセージ

要求された変更は構成ルールに従っていません

理由コード: CONFIG_RULE_CONFLICT_ERR

HTTP 状況コード

403 - 禁止

HTTP クライアント・エラー状況応答コード 403 Forbidden は、サーバーが要求を認識したが、その要求の許可を拒否することを示します。

この状況は 401 に似ていますが、この場合は再許可によって違いが発生しません。 アクセスは永続的に禁止され、リソースに対する十分な権限がないなどのアプリケーション・ロジックに結合されます。

context

このエラー・メッセージが表示されるのは、インスタンス・ポリシーによってリソースへのアクセスがブロックされたときです。 例えば、要求がパブリック IP アドレスから発行されて、 インスタンス・ポリシーによってパブリック IP アドレスからのアクセスが禁止されている場合は、 このエラー・メッセージが表示されます。

20 - 署名が無効です

メッセージ

署名が無効です

理由コード: INVALID_SIG_EXP_ERR

HTTP 状況コード

422 - 処理できないエンティティー

HTTP 応答状況コード 422 Unprocessable Entity は、サーバーが要求エンティティーのコンテンツ・タイプを認識しており、要求エンティティーの構文が正しいのに含まれている命令を処理できなかったことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

鍵が再ラップされたときにエラーが発生しました。

このエラーが発生した場合は、 IBM

21 - 鍵の有効期限が切れているため、...

メッセージ

鍵の有効期限が切れているため、その鍵でのアクションを実行できませんでした

理由コード: KEY_EXPIRED_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、削除された鍵をその有効期限が切れた後に復元すると、発生します。

鍵が削除されており、有効期限が切れているため、key restore 要求は失敗します。

以下のステップでは、このエラーを作成します。

  1. 鍵素材 (ペイロード) と有効期限を作成します

  2. 鍵素材と有効期限を使用してルート鍵を作成します

  3. 鍵 ID を取得します

  4. 有効期限が過ぎることを許可します

  5. キーの削除

  6. 鍵を復元します。これは、削除された鍵を有効期限後に復元することはできないため、失敗します

# 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 応答
{
    "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 応答
{
    "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 - 指定された暗号化済み nonce が、...

メッセージ

指定された暗号化済み nonce が、既存のレコードと一致しません。要求の中で正しい nonce が指定されていることを確認してください

理由コード: INCORRECT_NONCE_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラー・メッセージは、restore および rotate 鍵インターフェースに適用されます。

この例は restore のキーコマンドに基づいており、 CLI を使用しています。これは、 API よりも出力がわかりやすいからです。

ステップ 1 - インポート・トークンを使用してルート鍵を作成して問題をセットアップして、この鍵を削除します

# 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

ステップ 2 - 鍵の復元に必要なインポート・トークンを作成して、エラーをトリガーし、鍵を復元します

# 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 - インポート・トークンの有効期限が切れました

メッセージ

インポート・トークンの有効期限が切れました

理由コード: IMPORT_TOKEN_EXPIRED_ERR

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

例 1

API を使用してインポート・トークンを作成し、有効期限が切れるようにしてから、そのインポート・トークンを取得しようとします。

# 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 応答
{
    "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 応答
{
    "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"
                }
            ]
        }
    ]
}

例 2

CLI を使用してインポート・トークンを作成し、有効期限が切れるようにしてから、そのインポート・トークンを取得しようとします。

# 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 - 鍵が保存ポリシーのあるクラウド・リソースを...

メッセージ

鍵が保存ポリシーのあるクラウド・リソースを保護しているため、その鍵を削除できません。鍵を削除する前にアカウント所有者に連絡して、この鍵と関連付けられている各リソースの保存ポリシーを削除してください

理由コード: PREV_KEY_DEL_ERR

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

このエラーは、「登録」に使用された鍵が削除されたときに発生します。

ほとんどの場合、登録のある鍵は、以下を使用して削除できます。 --force オプション。

登録されたリソースで preventKeyDeletiontrue に設定されている場合は、強制削除が失敗し、このエラー・メッセージが表示されます。

つまり、すべての登録で preventKeyDeletionfalse に設定されている必要があります。

登録は、ルート鍵とその他のクラウド・リソース (Cloud Object Storage (COS) バケットや Cloud Databases デプロイメントなど) との間の関連付けです。

登録について詳しくは、ルート鍵と暗号化された IBM Cloud リソースとの間の関連の表示を参照してください。

25 - 鍵の二重許可が有効になっておらず、...

メッセージ

鍵の二重許可が有効になっておらず、削除のための設定を行えません

理由コード: NOT_DUAL_AUTH_ERR

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

このエラーは、削除の許可または許可の削除を試行し、鍵にポリシーが設定されていないdual authorization場合に発生します。

以下の例は、API および CLI を使用したエラーを示しています。

例 1

この例では、API を使用して削除を許可し、許可を削除します。

# 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 応答
{
    "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
        }
    ]
}

二重許可ポリシーが設定された鍵の削除を許可します。

# 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 応答
{
    "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"
                }
            ]
        }
    ]
}

二重許可ポリシーが設定された鍵の許可を削除します。

# 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 応答
{
    "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"
                }
            ]
        }
    ]
}

例 2

この例では、CLI を使用して削除を許可し、許可を削除します。

注: 前の例では、$KEY_ID が設定されています。

# 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 - 鍵は更新されたばかりでした

メッセージ

鍵は更新されたばかりでした。しばらくしてから再度お試しください

理由コード: REQ_TOO_EARLY_ERR

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

このエラーは、最後のアクションから 30 秒以内に鍵をenableまたはrestoreすると発生します。

最後の「アクション」から少なくとも 30 秒待って、鍵の有効化または復元を行う必要があります。

この例は、鍵が無効になってからすぐに鍵を有効化したため、失敗します。

# 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 - 提供された暗号文が無効であるか、...

メッセージ

提供された暗号文が無効であるか、または壊れています

理由コード: UNPROCESSABLE_CIPHERTEXT_ERR

HTTP 状況コード

422 - 処理できないエンティティー

HTTP 応答状況コード 422 Unprocessable Entity は、サーバーが要求エンティティーのコンテンツ・タイプを認識しており、要求エンティティーの構文が正しいのに含まれている命令を処理できなかったことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

これは通常、入力が無効であったために、ハードウェア・セキュリティー・モジュール (HSM) がデータを処理できなかったことを意味します。

このエラーは、内部エラーが発生すると返されます。

このエラーが発生した場合は、 IBM

28 - 提供された暗号化済み nonce が...

メッセージ

提供された暗号化済み nonce が指定された鍵素材を使用して暗号化されていなかったか、または提供された IV が暗号化済み nonce と一致しません

理由コード: INCORRECT_NONCE_IV_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

これは通常、入力が無効であったために、ハードウェア・セキュリティー・モジュール (HSM) がデータを処理できなかったことを意味します。

このエラーは、内部エラーが発生すると返されます。

このエラーが発生した場合は、 IBM

29 - 照会されたリソースはサービスに属していません

メッセージ

照会されたリソースはサービスに属していません

理由コード: RESOURCE_OWNER_ERR

HTTP 状況コード

403 - 禁止

HTTP クライアント・エラー状況応答コード 403 Forbidden は、サーバーが要求を認識したが、その要求の許可を拒否することを示します。

この状況は 401 に似ていますが、この場合は再許可によって違いが発生しません。 アクセスは永続的に禁止され、リソースに対する十分な権限がないなどのアプリケーション・ロジックに結合されます。

context

このエラー・メッセージは、サービス間要求で発生します。 サービスは鍵を削除しようとしますが、これは許可されません。 つまり、別のサービスは以下を削除できません。 Key Protect 鍵。

サービス間アクセスを使用する 1 つの例は、ユーザーが CloudObject Storage (COS) バケットを構成し、以下を使用してデータを暗号化することです。 Key Protect 鍵。

COS の例を使用すると、COS は、データの暗号化に使用された鍵を削除できません。

30 - このアクションは、サービス...

メッセージ

このアクションは、サービス (サービス同士の間) においてのみ実行できます

理由コード: SERVICE_ONLY_ERR

HTTP 状況コード

403 - 禁止

HTTP クライアント・エラー状況応答コード 403 Forbidden は、サーバーが要求を認識したが、その要求の許可を拒否することを示します。

この状況は 401 に似ていますが、この場合は再許可によって違いが発生しません。 アクセスは永続的に禁止され、リソースに対する十分な権限がないなどのアプリケーション・ロジックに結合されます。

context

「登録」の作成などのいくつかのアクションは、サービス間要求と呼ばれる別のサービスによってのみ実行できます。

例えば、Key Protect 鍵を使用してデータを暗号化するように Cloud Object Storage (COS) バケットを構成する場合は、COS サービスが登録を作成する必要があります。

登録を作成、削除、置換、または更新するには、サービス間要求が必要です。

登録について詳しくは、以下のリソースを参照してください。

31 - このリソースでこのアクションは実行できません...

メッセージ

このリソースでこのアクションは実行できません。この機能を有効にするには、IBM Key Protect に連絡するか、またはサービス・チケットをオープンしてください

理由コード: FEATURE_RESTRICTED_ERR

HTTP 状況コード

403 - 禁止

HTTP クライアント・エラー状況応答コード 403 Forbidden は、サーバーが要求を認識したが、その要求の許可を拒否することを示します。

この状況は 401 に似ていますが、この場合は再許可によって違いが発生しません。 アクセスは永続的に禁止され、リソースに対する十分な権限がないなどのアプリケーション・ロジックに結合されます。

context

サポートされていないフィーチャーを使用して、インスタンス・ポリシーを作成、更新、または使用しようとしています。

例えば、IPv4 アドレスのみをサポートする allowedIp アドレス範囲に対してインスタンス・ポリシーが作成されたとします。 その後、IPv6 アドレスを使用してインスタンスに要求を行うと、このエラーが返されます。

32 - この要求では、鍵のバージョンが...

メッセージ

この要求では、鍵のバージョンが現行の登録鍵のバージョンよりも新しい必要があります

理由コード: KEY_VERSION_INVALID

HTTP 状況コード

422 - 処理できないエンティティー

HTTP 応答状況コード 422 Unprocessable Entity は、サーバーが要求エンティティーのコンテンツ・タイプを認識しており、要求エンティティーの構文が正しいのに含まれている命令を処理できなかったことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

このエラーは、「登録」に使用される鍵に適用されます。

Cloud Object Storage (COS) などのサービスが鍵の置換または復元を試行する場合、鍵のタイム・スタンプがチェックされます。

鍵のタイム・スタンプが、登録によって使用される鍵のタイム・スタンプよりも古い場合、このエラーが発生します。

サービスによって使用される鍵のタイム・スタンプは、登録の鍵と等しいか、それより新しい必要があります。

登録は、ルート鍵とその他のクラウド・リソース (Cloud Object Storage (COS) バケットや Cloud Databases デプロイメントなど) との間の関連付けです。

登録について詳しくは、ルート鍵と暗号化された IBM Cloud リソースとの間の関連の表示を参照してください。

33 - このルート鍵は...

メッセージ

このルート鍵は過去 1 時間以内にローテートされました: 1 つの「ローテート」のみ 1 時間当たりのアクションが許可される

理由コード: KEY_ROTATION_NOT_PERMITTED

HTTP 状況コード

409 - 競合

HTTP 応答状況コード 409 Conflict は、要求がサーバーの現在の状態と競合することを示しています。

競合は、PUT 要求への応答として発生する可能性が高いです。 例えば、サーバー上に既に存在しているファイルより古いファイルをアップロードすると、バージョン管理の競合が発生して、409 応答を受け取ることがあります。

context

ルート鍵は、1 時間に 1 回、ローテートできます。 1 時間以内にルート鍵をローテートしようとすると、このエラー・メッセージが返されます。

# 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 応答

{
    "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 - このルート鍵は、ユーザー指定の...

メッセージ

このルート鍵は、ユーザー指定の鍵素材を使用して作成されました。「ローテート」アクションを実行するには、鍵素材が必要です

理由コード: KEY_PAYLOAD_REQ_ERR

HTTP 状況コード

400 - 不正な要求

HTTP 応答状況コード 400 Bad Request は、クライアント・エラー (誤った形式の要求構文、無効な要求メッセージ・フレーム、偽りの要求ルーティングなど) が原因で、サーバーが要求を処理できない、または処理しないことを示しています。

お客様は、変更を行うことなくこの要求を繰り返さないでください。

context

鍵素材 (ペイロード) を使用してルート鍵が作成された場合は、鍵をローテートするために鍵素材を指定する必要があります。

# 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 応答

{
    "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"
                    }
                }
            ]
        }
    ]
}

35 - 無許可: ユーザーには、...

メッセージ

無許可: ユーザーには、指定したリソースに対するアクセス権限がありません

理由コード: UNAUTHORIZED_ERR

HTTP 状況コード

401 - 無許可

HTTP クライアント・エラー状況応答コード 401 Unauthorized は、ターゲット・リソースに対する有効な認証資格情報がないために要求が適用されていないことを示しています。

この状況は、正しく許可する方法に関する情報を含む WWW-Authenticate ヘッダーを使用して送信されます。

この状況は 403 に似ていますが、この場合は認証が可能です。

context

このエラー・メッセージは、ユーザーがリソースに対するアクセス権限を持っていない場合に返されます。

この例では、IP アドレスの範囲へのアクセスを制限するインスタンス・ポリシーを適用します。 許可された範囲外からの要求が受信されると、エラーが返されます。

# limit  access to a range of IP addresses
$ curl -X PUT \
    "https://us-south.kms.cloud.ibm.com/api/v2/instance/policies?policy=allowedIP" \
    -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": "allowedIP",
                    "policy_data": {
                        "enabled": true,
                        "attributes": {
                            "allowed_ip": [
"65.128.226.252/24"
                            ]
                        }
                    }
                }
            ]
        }'

要求が許可された IP アドレスの範囲外であるため、鍵の取得は失敗します。

# this fails because the request is outside the allowed range of IP addresses
$ curl -X GET \
    "https://us-south.kms.cloud.ibm.com/api/v2/keys" \
    -H "authorization: Bearer $ACCESS_TOKEN"
    -H "bluemix-instance: $KP_INSTANCE_ID"

JSON 応答

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.error+json",
        "collectionTotal": 1
    },
    "resources": [
        {
            "errorMsg": "Unauthorized: The user does not have access to the specified resource"
        }
    ]
}

HTTP 状況コード順のソート

これらは、HTTP 状況コードでソートされたエラー・メッセージです。

HTTP 400 - 不正な要求

  • コレクションの合計がリソースの数と一致しません - 詳細

  • 本体のデータが照会パラメーターに必要なデータと一致しません - 詳細

  • ベアラー・トークンからのサブジェクトの抽出が失敗しました。渡されたベアラー・トークンが正しいもの (および正しいフォーマット) であり、要求されたアクションの実行が許可されていることを確認してください - 詳細

  • 無効な本文データが渡されました: 渡されたデータに無効な文字がない有効な形式が含まれていることを確認してください - 詳細

  • 無効なフィールドのエラー: ラップでは、無効なプレーン・テキストが要求で渡されると、The field 'plaintext' must be: a base64 encoded key material が表示されます。アンラップでは、無効な暗号文が要求で渡されると、The field 'ciphertext' must be: the original base64 encoded ciphertext from the wrap operation が表示されます。 詳細

  • 鍵の復元の有効期限が切れました - 詳細

  • 要求で本文がありません - 詳細

  • 照会パラメーターごとに作成できるインスタンス・ポリシーは 1 つのみです。単一のリソース・オブジェクトを渡してください - 詳細

  • インポートされた鍵のみを復元できます - 詳細

  • 要求されたアクションは、ルート鍵を使用してのみ完了できます - 詳細

  • 鍵の有効期限が切れているため、鍵に対してアクションを実行できませんでした - 詳細

  • 指定された暗号化された nonce が既存のレコードと一致しません: 要求で正しい nonce が指定されていることを確認してください - 詳細

  • 指定された暗号化された nonce は、指定された鍵素材で暗号化されていません。または、指定された IV が暗号化された nonce と一致しません - 詳細

  • このルート鍵は、ユーザーが指定した鍵素材を使用して作成されました。「ローテート」アクションを実行するには、鍵素材が必要です - 詳細

HTTP 401 - 無許可

  • 無許可: ユーザーは指定されたリソースにアクセスできません - 詳細

HTTP 403 - 禁止

  • 要求された変更は構成規則に準拠していません - 詳細

  • 照会されたリソースはサービスに属していません - 詳細

  • このアクションは、サービス (サービス間) によってのみ実行できます - 詳細

  • このアクションはこのリソースでは許可されていません。この機能を有効にするには、IBM Key Protect に連絡するか、サービス・チケットをオープンしてください - 詳細

HTTP 409 - 競合

  • 鍵が有効な状態ではありません - 詳細

  • 鍵は 1 つ以上のクラウド・リソースを保護しています - 詳細

  • KeyCreateImportAccess インスタンス・ポリシーはこのアクションを許可しません - 詳細

  • 削除に必要な許可の数が満たされていません - 詳細

  • インポート・トークンの有効期限が切れています - 詳細

  • 保存ポリシーを持つクラウド・リソースを保護しているため、鍵を削除できません。この鍵を削除する前に、アカウント所有者に連絡して、鍵に関連付けられている各リソースの保存ポリシーを削除してください - 詳細

  • 鍵は二重認証が有効になっていないため、削除用に設定できません - 詳細

  • 鍵は最近更新されました: しばらく待ってから再試行してください - 詳細

  • このルート鍵は過去 1 時間以内にローテートされています。1 時間あたり 1 つの「ローテート」アクションのみが許可されます - 詳細

HTTP 410 - 削除済み

  • 鍵は既に削除されています: この鍵への参照を削除してください - 詳細

HTTP 422 - 処理できないエンティティー

  • 鍵が有効な状態ではありません - 詳細

  • 要求されたアクションは、ルート鍵を使用してのみ完了できます - 詳細

  • 署名が無効です 詳細

  • 指定された暗号化テキストが無効であるか、破損しています - 詳細

  • この要求では、鍵バージョンが現在の登録の鍵バージョンよりも新しい必要があります - 詳細

HTTP 500 - 内部サーバー・エラー

  • 鍵メタデータが破損しました: この鍵を削除してください - 詳細

理由コードによるソート

このセクションには、エラー・メッセージを理由コード順に記載しています。

  • AUTHORIZATIONS_NOT_MET - 詳細
  • BAD_BODY_ERR - 詳細
  • BEARER_SUB_EXTRACTION_ERR - 詳細
  • BODY_QUERY_PARAM_MISMATCH_ERR - 詳細
  • COLLECTION_TOTAL_MISMATCH_ERR - 詳細
  • CONFIG_RULE_CONFLICT_ERR - 詳細
  • FEATURE_RESTRICTED_ERR - 詳細
  • IMPORT_TOKEN_EXPIRED_ERR - 詳細
  • INCOMPLETE_METADATA_ERR - 詳細
  • INCORRECT_NONCE_ERR - 詳細
  • INCORRECT_NONCE_IV_ERR - 詳細
  • INVALID_FIELD_ERR - 詳細
  • INVALID_SIG_EXP_ERR - 詳細
  • KEY_ACTION_INVALID_STATE_ERR - 詳細
  • KEY_CREATE_IMPORT_ACCESS_ERR - 詳細
  • KEY_DELETED_ERR - 詳細
  • KEY_EXPIRED_ERR - 詳細
  • KEY_IMPT_REQ_ERR - 詳細
  • KEY_INVALID_STATE_ERR - 詳細
  • KEY_PAYLOAD_REQ_ERR - 詳細
  • KEY_RESTORE_EXPIRED - 詳細
  • KEY_ROOT_REQ_ERR - 詳細
  • KEY_ROOT_REQ_REG_ERR - 詳細
  • KEY_ROTATION_NOT_PERMITTED - 詳細
  • KEY_VERSION_INVALID - 詳細
  • NO_BODY_ERR - 詳細
  • NOT_DUAL_AUTH_ERR - 詳細
  • NUM_COLLECTION_RESOURCE_ERR - 詳細
  • PREV_KEY_DEL_ERR - 詳細
  • PROTECTED_RESOURCE_ERR - 詳細
  • REQ_TOO_EARLY_ERR - 詳細
  • RESOURCE_OWNER_ERR - 詳細
  • SERVICE_ONLY_ERR - 詳細
  • UNAUTHORIZED_ERR - 詳細
  • UNPROCESSABLE_CIPHERTEXT_ERR - 詳細