鍵の復元

IBM Cloud® Hyper Protect Crypto Services を使用して、以前に削除された鍵を復元し、関連付けられているクラウド上のデータにアクセスすることができます。

鍵が削除されると、その鍵は破棄状態に移行します。 ただし、鍵に関する情報 (メタデータなど) は引き続き表示でき、鍵をアクティブ状態に復元するには 30 日かかります。 このため、鍵の削除は ソフト削除 と見なされます。この場合、鍵はまだ存在しますが、鍵によって暗号化されたデータへのアクセスには使用できなくなります。 このトピックでは、鍵の復元プロセスと、鍵の復元プロセスの制限について説明します。

この鍵が削除されても復元可能なソフト削除期間は、30 日間継続します。 30 日を過ぎて 90 日が経つまでは、まだ鍵のデータにアクセスできます。ただし、鍵はもう復元できません。 90 日後、鍵は、90 日後の任意の時点で発生する可能性がある自動的なパージの対象となります。 パージされた鍵は、破棄された鍵とは異なり、永久に削除されています。

表 1. 鍵の状態を、鍵の削除から、鍵で実行できるアクションまでの時間に結び付けます。
キーを削除してからの時間 キー状態の名前 鍵データは表示またはアクセス可能か リストア可能か。
1 日から 30 日 破棄済み ある ある
30 日から 90 日 破棄済み ある いいえ
90 日以降 パージ (技術的には鍵の状態ではありません) いいえ いいえ

パージされたキーはアクセス不能で破棄されているため、厳密には_「パージ済み」というキー状態は存在しません。 ただし、存在しないこと自体はキーのライフサイクルの一部であるため、「パージ済み」_を状態と見なすと便利な場合があります。

すべてのルート鍵および標準鍵は、Hyper Protect Crypto Services によって生成されるか、ユーザーによってインポートされるかに関係なく、復元できます。

鍵を復元できるかどうかを確認する方法

破棄された鍵が復元可能かどうかを確認するには、以下のようにします。

  1. UI で Hyper Protect Crypto Services インスタンスにナビゲートします。
  2. ナビゲーションで、必ず**「KMS キー」**ページが表示しておきます。
  3. リストアしたいキーを見つけて、そのキーが**「破棄済み」**状態であることを確認します。
  4. **「破棄済み」**状態の横に、取消アイコン Undo iconが表示されているかを確認します。 このアイコンは、キーがリストアに適格であることを示します。 削除後 30 日以内はキーをリストアできます。 アイコンの上にカーソルを移動すると、リストアの有効期限が表示されます。

UI を使用した削除済み鍵の復元

グラフィカル・インターフェースを使用して鍵を復元する場合は、UI を使用できます。

次の手順を実行して、鍵を復元します。

  1. UI にログインします
  2. 「メニュー」>**「リソース・リスト」**に移動し、リソースのリストを表示します。
  3. IBM Cloud リソース・リストで、Hyper Protect Crypto Services のプロビジョン済みインスタンスを選択します。
  4. **「KMS 鍵 (KMS keys)」ページで、「鍵」**テーブルを使用して、このサービスの鍵を参照します。
  5. リストアしたいキーを選択し、アクション・アイコン Actions iconをクリックしてそのキーのオプションのリストを開きます。
  6. オプション・メニューから、**「鍵のリストア」**をクリックします。
  7. **「鍵のリストア」**をクリックして、アクションを確定します。

API を使用した削除された鍵の復元

以下のエンドポイントへの POST 呼び出しを行うことにより、鍵を復元します。

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/restore
  1. サービス内で鍵の処理を行うために、認証資格情報を取得します

    キーをリストアするには、インスタンスまたはキーの_「マネージャー」_アクセス権限ポリシーが割り当てられている必要があります。 IAM 役割と Hyper Protect Crypto Services サービスでのアクションの対応関係について詳しくは、サービス・アクセスの役割を参照してください。

  2. キー管理サービス API エンドポイント URL をリトリーブします。

    「概要」>「接続」>**「鍵管理エンドポイント URL」**によって、プロビジョンされたサービス・インスタンスのダッシュボードから API エンドポイントを取得できます。 あるいは、API 呼び出しを使用して動的に API エンドポイント URL を取得 することもできます。 必要に応じて、パブリックまたはプライベートの鍵管理エンドポイント URL を選択します。

  3. 復元する鍵の ID を取得します。

    指定した鍵の ID を取得するには、 鍵のリスト API 要求を行うか、UI で鍵を表示します。

  4. 次の curl コマンドを実行して、鍵を復元し、関連付けられているデータへのアクセス権限を再取得します。 鍵を削除してから、その鍵を復元できるようになるまでに 30 秒待つ必要があります。

    有効期限の日付が現在の日付または過去の日付である鍵を復元することはできません。

    curl -X POST \
      "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/restore" \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'x-kms-key-ring: <key_ring_ID>'
    

    次の表に従って、例の要求内の変数を置き換えてください。

    変数 説明
    region 必須。 Hyper Protect Crypto Services サービス・インスタンスが存在する地理的領域を表す地域の省略形 ( us-southeu-de など)。 詳細については、リージョナル・サービス・エンドポイントを参照してください。
    port 必須。 API エンドポイントのポート番号。
    key_ID 必須。 復元する鍵の
          固有 ID。 |
    

    | IAM_token | 必須。 IBM Cloud アクセス・トークン。 Bearer 値を含む、IAM トークンの全コンテンツを cURL 要求に組み込みます。 詳細については、アクセス・トークンのリトリーブを参照してください。 | | instance_ID | 必須。 Hyper Protect Crypto Services サービス・インスタンスに割り当てられた固有 ID。 詳細については、インスタンス ID のリトリーブを参照してください。 | | key_ring_ID | オプション。 鍵が属する鍵リングの固有 ID。 指定しないと、Hyper Protect Crypto Services は、指定されたインスタンスに関連付けられているすべての鍵リングで鍵を検索します。 このため、鍵リング ID を指定して、より最適化された要求を行うことをお勧めします。 \n \n 注: x-kms-key-ring ヘッダーなしで作成された鍵の鍵リング ID は default です。

    詳しくは、 鍵リングの管理 を参照してください。 |

    リストア要求が成功すると、HTTP 201 Created 応答が返されます。これは、鍵がアクティブ鍵の状態にリストアされ、暗号化操作および暗号化解除操作に使用できるようになったことを示します。 以前にその鍵に関連付けられていたすべての属性とポリシーも復元されます。

    鍵が復元されるとすぐに、その鍵に関連付けられているデータにアクセスできるようになります。

  5. オプション: 鍵に関する詳細を取得して、鍵が復元されたことを確認します。

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

    ここで、<key_id> はキーの ID、<instance_ID> はインスタンスの名前、<IAM_token> は IAM トークンを指します。

    応答本体の state フィールドを調べて、鍵がアクティブ鍵の状態に移動したことを確認します。 次の JSON 出力は、アクティブな鍵のメタデータ詳細を示しています。

    アクティブ・キー状態の整数マッピングは 1 です。 キー状態は、NIST SP 800-57 に基づいています。

    {
      "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 1
      },
      "resources": [
        {
          "type": "application/vnd.ibm.kms.key+json",
          "id": "02fd6835-6001-4482-a892-13bd2085f75d",
          "name": "...",
          "description": "...",
          "tags": [
            "..."
          ],
          "state": 1,
          "extractable": false,
          "crn": "crn:v1:bluemix:public:hs-crypto:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
          "imported": true,
          "creationDate": "2020-03-10T20:41:27Z",
          "createdBy": "...",
          "algorithmType": "AES",
          "algorithmMetadata": {
            "bitLength": "128",
            "mode": "CBC_PAD"
          },
          "algorithmBitSize": 128,
          "algorithmMode": "CBC_PAD",
          "lastUpdateDate": "2020-03-16T20:41:27Z",
          "keyVersion": {
            "id": "30372f20-d9f1-40b3-b486-a709e1932c9c",
            "creationDate": "2020-03-12T03:37:32Z"
          },
          "dualAuthDelete": {
            "enabled": false
          },
          "deleted": false
        }
      ]
    }