還原金鑰

刪除金鑰時,金鑰會移至「已毀損」狀態。 不過,仍然可以檢視金鑰 (例如其 meta 資料) 的相關資訊,而且您有 30 天時間將金鑰還原至作用中狀態。 因此,金鑰刪除被視為「軟刪除」,因為金鑰仍然存在,但無法再用來存取它已加密的資料。 本主題說明還原金鑰的處理程序,以及金鑰還原處理程序的限制。

在測試和開發程序中,定期建立和刪除金鑰是正常的。 這些金鑰不會永遠消失; 而是「軟刪除」並移至 毀損 狀態,這表示金鑰無法作為任何金鑰動作 (例如加密或解密資料) 的一部分使用。 只能查看金鑰資料,如果錯誤刪除金鑰,則可能可以將金鑰還原至 作用中 狀態。

所有金鑰,不論是在 Key Protect 中建立或匯入,也不論是根金鑰或標準金鑰,都可以還原。

此中間期間 (已刪除金鑰但仍可還原) 會持續 30 天。 在 30 天到 90 天之間,仍然可以存取金鑰資料,但無法再還原金鑰。 90 天之後,金鑰變成符合自動 清除的資格,在 90 天之後隨時可能發生。 已清除的金鑰與已毀損的金鑰不同,會永遠消失。

將密鑰狀態與從密鑰刪除到可以使用該密鑰執行的操作的時間連結。
金鑰刪除的時間 金鑰狀態的名稱 可以檢視/存取金鑰資料嗎? 可以還原嗎?
One-30 天 已破壞
30-90 天 已破壞
90 天之後 已清除*

* 附註: 因為清除的金鑰完全無法存取且在單字的一般用法中「已毀損」,所以技術上沒有「已清除」金鑰狀態。 清除的金鑰只是消失了,因此沒有任何「狀態」。 不過,將「已清除」視為狀態可能很有用,因為不存在是金鑰生命週期的一部分。 如果您需要在 90 天之前清除金鑰,則需要特殊金鑰清除角色。 如需相關資訊,請參閱 刪除金鑰

如需金鑰狀態的相關資訊,請參閱 監視加密金鑰的生命週期

由於 Key Protect 不允許刪除包含鍵的實體,因此必須先刪除實體中的任何鍵,才能刪除實體本身。 不過,由於金鑰的「軟」刪除,使用者可能先刪除金鑰,然後再刪除實例。 實例的這項刪除也會永久地刪除金鑰,即使金鑰的刪除最近已足夠讓它有資格還原也一樣。 因此,Key Protect 允許在刪除實例後短時間內回收該實例。 若要查看是否可以收回實例,請參閱 使用 CLI 列出收回的資源。 如需收回資源 (在此情況下為實例) 的指令,請參閱 使用 CLI 還原資源

如何知道是否可以還原金鑰?

若要查看是否可以還原已毀損的金鑰,請執行下列動作:

  1. 在 IBM Cloud 主控台中導覽至 Key Protect 實例。
  2. 在左導覽中,確定您位於 按鍵 畫面上。
  3. 找到您要還原的金鑰。 注意:僅能還原處於「已刪除」狀態的金鑰。
  4. Last updated 直欄下,記下日期。 然後請參閱表 1,可在上面找到。 如果在過去 30 天內已刪除金鑰,則可以還原該金鑰。 如果已超過 30 天,您將無法還原金鑰。 如果您嘗試還原不再適合還原的金鑰,則在嘗試還原金鑰時將會收到錯誤。

使用主控台還原已刪除的金鑰

如果您偏好使用圖形介面來還原金鑰,則可以使用 IBM Cloud 主控台。

將現有金鑰匯入至服務刪除 金鑰之後,請完成下列步驟來還原金鑰:

  1. 登入 IBM Cloud 主控台

  2. 請前往「選單」>「資源清單」以檢視您的資源清單。

  3. 從 IBM Cloud 資源清單,選取已佈建的 Key Protect 實例。

  4. 按一下 金鑰 以開啟金鑰畫面,並尋找處於您要還原之毀損狀態的金鑰。 要達成此目的的一種方法是開啟篩選面板,並在「鍵狀態」下拉式清單中選取「已刪除」狀態。 這會將結果限制為僅已刪除的金鑰。

  5. 點擊 ⋯ 圖示,即可開啟您要還原的金鑰的選項清單。 請注意,如果金鑰已被刪除並移動到_已銷毀_狀態,則必須等待 30 秒才可嘗試還原。

  6. 點擊「還原」按鈕以開啟還原側邊欄。

  7. 按下「還原」按鈕。

  8. 確認已在更新的 金鑰 表格中還原金鑰。

使用 API 還原已刪除的金鑰

透過向以下端點發出 POST 呼叫,來還原先前已匯入的金鑰:

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/restore
  1. 擷取鑑別認證以使用服務中的金鑰

    若要還原金鑰,您必須具有實例或金鑰的 管理員 角色。 若要瞭解 IAM 角色如何對映至 Key Protect 服務動作,請參閱 服務存取角色

  2. 取得您要還原的金鑰的 ID。

    您可以透過發出「list keys」請求, 或在「Key Protect」儀表板中檢視您的金鑰,來取得指定金鑰的 ID。 如需相關資訊,請參閱 檢視金鑰清單

  3. 執行下列 curl 指令,以還原金鑰並重新取得其相關聯資料的存取權。 請注意,在刪除金鑰之後,您必須等待 30 秒,才能還原金鑰。

    您無法還原具有現行或過去到期日的金鑰。

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/restore" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "x-kms-key-ring: <key_ring_ID>"
    

    請根據表 2 替換範例請求中的變數。

描述使用Key Protect API 恢復金鑰所需的變數
變數 說明
區域 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-southeu-gb。 如需相關資訊,請參閱 地區服務端點
keyID_or_alias 必填。 您要還原之金鑰的唯一 ID 或別名。
IAM_token 必填。 您的 IBM Cloud 存取記號。 請將 IAM 憑證的完整內容(包含 Bearer 值)納入 curl 請求中。 如需相關資訊,請參閱 擷取存取記號
instance_id 必填。 指派給您 Key Protect 服務實例的唯一 ID。 如需相關資訊,請參閱 擷取實例 ID
key_ring_ID 選用。 金鑰所屬金鑰環的唯一 ID。 如果未指定,Key Protect 將在與指定實例相關聯的每個金鑰環中搜尋金鑰。 因此,建議為更最佳化的要求指定金鑰環 ID。 附註: 在沒有 x-kms-key-ring 標頭的情況下建立之金鑰的金鑰環 ID 為: default。 如需相關資訊,請參閱 分組索引鍵
A successful restore request returns an HTTP `201 Created` response, which indicates that the key was restored to the _Active_ key state and is now available for encrypt and decrypt operations. All attributes and policies that were previously associated with the key are also restored.

You will have access to data associated with the key as soon as the key is restored.
{: note}

選用項目: 驗證金鑰還原

您可以發出下列指令來取得金鑰的詳細資料,以驗證金鑰已還原:

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

其中 <keyID_or_alias> 是金鑰的 ID 或別名,<instance_ID> 是實例的名稱,而 <IAM_token> 是 IAM 記號。

檢閱回應內文中的 state 欄位,以驗證金鑰已轉移至 作用中 金鑰狀態。 下列 JSON 輸出顯示 作用中 金鑰的 meta 資料詳細資料範例。

{
    "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:kms: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": "Deprecated",
            "algorithmMetadata": {
                "bitLength": "128",
                "mode": "Deprecated"
            },
            "algorithmBitSize": 128,
            "algorithmMode": "Deprecated",
            "lastUpdateDate": "2020-03-16T20:41:27Z",
            "keyVersion": {
                "id": "30372f20-d9f1-40b3-b486-a709e1932c9c",
                "creationDate": "2020-03-12T03:37:32Z"
            },
            "dualAuthDelete": {
                "enabled": false
            },
            "deleted": false
        }
    ]
}

作用中 索引鍵狀態的整數對映是 1