還原金鑰
您可以使用 IBM Cloud® Hyper Protect Crypto Services 來還原先前刪除的金鑰,並存取雲端上的相關聯資料。
當刪除金鑰時,它會移至「已毀損」狀態。 不過,仍然可以檢視金鑰 (例如 meta 資料) 的相關資訊,而且您有 30 天時間將金鑰還原至「作用中」狀態。 因此,金鑰刪除被視為 軟刪除,其中金鑰仍然存在,但無法再用來存取金鑰所加密的資料。 本主題說明還原金鑰的處理程序,以及金鑰還原處理程序的限制。
此軟刪除期間 (已刪除金鑰但仍可還原) 會持續 30 天。 在 30 天到 90 天之間,仍然可以存取金鑰資料,但無法再還原金鑰。 90 天之後,金鑰會變成有資格自動清除,這可在 90 天之後隨時發生。 已清除的金鑰與已毀損的金鑰不同,會永遠消失。
| 金鑰刪除的時間 | 金鑰狀態的名稱 | 可以檢視或存取金鑰資料嗎? | 可以還原嗎? |
|---|---|---|---|
| 1-30 天 | 已破壞 | True | True |
| 30-90 天 | 已破壞 | True | 否 |
| 90 天之後 | 已清除 (技術上不是關鍵狀態) | 否 | 否 |
因為已清除的金鑰無法存取及毀損,所以技術上沒有 已清除 金鑰狀態。 不過,將 清除 視為狀態可能很有用,因為不存在是金鑰生命週期的一部分。
不論是由 Hyper Protect Crypto Services 產生或由您匯入,所有根金鑰和標準金鑰都可以還原。
如何知道是否可以還原金鑰?
若要查看是否可以還原已毀損的金鑰,請執行下列動作:
- 在使用者介面中導覽至 Hyper Protect Crypto Services 實例。
- 在導覽中,請確定您位於 KMS 按鍵 頁面上。
- 尋找您要還原的金鑰,並確定金鑰處於 已毀損 狀態。
- 檢查 已毀損 狀態旁邊是否顯示 復原 圖示
。 圖示指出金鑰可以還原。 您可以在刪除之後 30 天內還原金鑰。 當您將游標移至圖示上方時,即會顯示還原到期日。
使用使用者介面還原已刪除的金鑰
如果您喜歡使用圖形介面恢復金鑰,則可以使用 UI。
完成以下步驟來還原金鑰:
- 登入使用者介面。
- 去選單>資源列表查看您的資源清單。
- 從 IBM Cloud 資源清單,選取已佈建的 Hyper Protect Crypto Services 實例。
- 上 KMS 金鑰頁面,使用按鍵表來瀏覽您服務中的金鑰。
- 選擇您要還原的金鑰,然後按一下行動圖示
開啟該密鑰的選項清單。
- 從選項功能表中,按一下 還原金鑰。
- 按一下 還原金鑰 以確認動作。
使用 API 還原已刪除的金鑰
透過建立一個來恢復密鑰 POST 調用以下端點。
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/restore
-
若要還原金鑰,您必須獲指派實例或金鑰的 管理程式 存取原則。 若要瞭解 IAM 角色如何對映至 Hyper Protect Crypto Services 服務動作,請參閱 服務存取角色。
-
擷取金鑰管理服務 API 端點 URL。
您可以透過 概觀 > Connect > 金鑰管理端點 URL,從已佈建的服務實例儀表板取得 API 端點。 或者,您可以使用 API 呼叫來動態 擷取 API 端點 URL。 根據您的需要選取公開或私密金鑰管理端點 URL。
-
檢索您要復原的金鑰的 ID。
您可以透過建立一個來檢索指定鍵的 ID 列出金鑰 API 請求,或透過在 UI 中查看您的金鑰。
-
執行下列
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>'根據下表取代範例要求中的變數。
表 1. 說明使用 Hyper Protect Crypto Services API 還原金鑰所需的變數 變數 說明 region必要。 地區縮寫,例如 us-south或者eu-de,代表您所在的地理區域Hyper Protect Crypto Services服務實例駐留。 如需相關資訊,請參閱地區服務端點。port必要。 API 端點的埠號。 key_ID必要。 您要復原的金鑰的唯一識別碼。 IAM_token必要。 您的 IBM Cloud 存取記號。 請在 cURL 要求中包含 IAM記號的完整內容,包括 Bearer 值。 有關更多信息,請參閱 檢索訪問令牌。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回應,指出金鑰已還原至「作用中」金鑰狀態,現在可用於加密及解密作業。 也會還原先前與金鑰相關聯的所有屬性及原則。一旦還原金鑰,您就可以存取與金鑰相關聯的資料。
-
選用項目: 透過擷取金鑰的相關詳細資料,驗證已還原金鑰。
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 輸出顯示作用中金鑰的 meta 資料詳細資料。「作用中」索引鍵狀態的整數對映是 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 } ] }