使用單一授權來刪除金鑰
如果您是 Key Protect 範例的管理員,您可以使用 IBM® Key Protect for IBM Cloud® 刪除加密金鑰及其金鑰資料。
在刪除金鑰之前,請務必先檢閱 刪除及清除金鑰之前的考量。
在主控台中刪除金鑰
依預設,Key Protect 需要一個授權才能刪除金鑰。 如果您希望透過圖形化介面刪除加密金鑰,可以使用「IBM Cloud」控制台。
在建立金鑰或將現有金鑰匯入到服務之後,請完成下列步驟來刪除金鑰:
-
請前往「選單」>「資源清單」以檢視您的資源清單。
-
從 IBM Cloud 資源清單,選取已佈建的 Key Protect 實例。
-
在應用程式詳細資料頁面上使用金鑰表格,以瀏覽服務中的金鑰。
-
按一下 ⋯ 圖示,以開啟您要刪除之金鑰的選項清單。
-
在選項選單中,點選「刪除」。 在確認畫面中,請確認該金鑰未與任何資源相關聯,然後確認刪除。 若某個金鑰所保護的已註冊 IBM Cloud 資源因 保留政策 而無法刪除,則您無法刪除該金鑰。
刪除鍵值後,該鍵值會轉為「已銷毀」狀態。 無法再存取此狀態中由金鑰所加密的任何資料。 與金鑰相關聯的 meta 資料(例如金鑰刪除日期)會保存在 Key Protect 資料庫中。 毀損的金鑰最多可以在 30 天或其到期日之後回復,兩者以較早的日期為準。 在 30 天之後,金鑰無法再回復,並在 90 天之後符合清除資格,此程序會撕碎金鑰資料並使其 meta 資料無法存取。
如果使用者 具有 KeyPurge 屬性,他們可以在四小時後清除金鑰。 如需相關資訊,請參閱 在主控台中清除金鑰。
在主控台中清除金鑰
如果您的使用案例必須在 90 天之前清除金鑰 (在正常刪除之後,最快可以清除金鑰),則如果使用者 具有 KeyPurge 角色,則可以在四小時之後清除金鑰。
由於已清除的金鑰會永久解構其金鑰資料,且無法存取 meta 資料,因此無法還原已清除的金鑰。 因此,更重要的是確保關鍵沒有重要的相關資源。
如果要清除金鑰,請執行下列動作:
-
遵循 刪除金鑰 的指示。
-
在等待至少四小時之後,再次導覽至金鑰,並按一下 ... 圖示。
-
從選項中,從下列選項中選取 清除,並確定金鑰沒有相關聯的資源,且您具有必要的
KeyPurge使用者屬性,以在下一個畫面中確認刪除金鑰。
使用 API 刪除金鑰
如果使用者 具有 KeyPurge 角色,則他們可以在四小時之後清除金鑰。
依預設,Key Protect 需要一個授權才能刪除金鑰。 您可以透過向以下端點發出 DELETE 請求,來刪除一個金鑰及其內容。
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>
如果金鑰主動保護一個以上雲端資源,則此動作不會成功。 您可以 檢閱與金鑰相關聯的資源,或在查詢時 使用 force 參數 來刪除金鑰。
-
取得您要刪除的金鑰的 ID。
您可以在中找到金鑰的 ID Key Protect 實例 擷取金鑰清單,或透過存取 Key Protect 儀表板。
-
執行以下
curl指令,以刪除該金鑰及其內容。$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "x-kms-key-ring: <key_ring_ID>" \ -H "prefer: <return_preference>"根據下表取代範例要求中的變數。
| 變數 | 說明 |
|---|---|
| 區域 | 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-south 或 eu-gb。 如需更多資訊,請參閱「區域服務端點」。 |
| keyID_or_alias | 必填。 您要刪除的金鑰之唯一識別碼或別名。 |
| IAM_token | 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。 如需更多資訊,請參閱「取得存取憑證」。 |
| instance_id | 必填。 分配給您的 Key Protect 服務實例的唯一識別碼。 如需更多資訊,請參閱「檢索實例 ID」。 |
| key_ring_ID | 選用。 金鑰所屬金鑰環的唯一 ID。 如果未指定,Key Protect 將在與指定實例相關聯的每個金鑰環中搜尋金鑰。 建議為更最佳化的要求指定金鑰環 ID。 附註: 在沒有 x-kms-key-ring 標頭的情況下建立之金鑰的金鑰環 ID 為預設值。如需相關資訊,請參閱 分組索引鍵。 |
| return_preference | 可選。一個用於變更伺服器對 POST 和 DELETE 操作行為的標頭。 當您將 return_preference 變數設定為 return=minimal 時,該服務會傳回刪除成功的回應。 當您將變數設定為 return=representation 時,該服務會同時傳回金鑰資料與金鑰元資料。 |
若將 return_preference 變數設定為 return=representation,則 DELETE 請求的詳細資訊將包含在回應的實體內容中。
刪除金鑰之後,它會轉移至 已停用 金鑰狀態。 在 24 小時之後,如果未恢復金鑰,則金鑰會轉移至 已毀損 狀態。 已刪除的金鑰最多可回復 30 天,或直到其到期日為止,在此之後會解構金鑰內容,且其 meta 資料會變成無法存取。
下列 JSON 物件顯示回覆值範例。
{
"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": "test-root-key",
"aliases": [
"alias-1",
"alias-2"
],
"state": 5,
"extractable": false,
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
"imported": false,
"creationDate": "2020-03-10T20:41:27Z",
"createdBy": "...",
"algorithmType": "Deprecated",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"algorithmBitSize": 256,
"algorithmMode": "Deprecated",
"lastUpdateDate": "2020-03-16T20:41:27Z",
"dualAuthDelete": {
"enabled": false
},
"deleted": true,
"deletionDate": "2020-03-16T21:46:53Z",
"deletedBy": "..."
}
]
}
有關可用參數的詳細說明,請參閱 Key Protect 的 REST API 參考文件。
使用 force 查詢參數
Key Protect 會封鎖刪除保護雲端資源的金鑰,例如 Cloud Object Storage 儲存區。 您可以對下列端點發出 DELETE 呼叫,以強制刪除金鑰及其內容。
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>?force=true
當您刪除具有相關聯登錄的金鑰時,您會立即取消啟動其金鑰資料及金鑰所加密的資料。 金鑰所加密的任何資料都會變成無法存取。 在刪除金鑰 30 天之後,金鑰無法再還原,金鑰資料將在 90 天之後毀損。
強制刪除金鑰不會成功,如果該金鑰正在保護註冊的 IBM Cloud 資源,而該資源因 保留政策 (即在 IBM Cloud 資源上設定的一次寫入多次讀取 (WORM))而不可刪除。 您可以透過檢查 註冊詳情 中關鍵的 'preventKeyDeletion" 欄位,確認關鍵是否與不可刪除的資源相關聯。 然後,您必須聯絡帳戶所有者,移除與金鑰相關聯的每個註冊 IBM Cloud 資源上的保留政策,才能刪除金鑰。
-
取得您要強制刪除的金鑰的 ID。
您可以建立
GET /v2/keys/來擷取指定金鑰的 ID 要求,或透過在 Key Protect 儀表板。 -
執行以下
curl指令,以強制刪除該金鑰及其內容。$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>?force=true" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "prefer: <return_preference>"根據下表取代範例要求中的變數。
| 變數 | 說明 |
|---|---|
| 區域 | 必填。 代表您的 Key Protect 實例所在地理區域的區域縮寫,例如 us-south 或 eu-gb。如需更多資訊,請參閱「區域服務端點」。 |
| keyID_or_alias | 必填。 您要刪除的金鑰之唯一識別碼或別名。 |
| IAM_token | 必填。 您的 IBM Cloud 存取記號。 請在 curl 請求中包含 IAM 憑證的完整內容,包括 Bearer 值。 如需相關資訊,請參閱 擷取存取記號。 |
| instance_id | 必填。 分配給您的 Key Protect 服務實例的唯一識別碼。 如需更多資訊,請參閱「檢索實例 ID」。 |
| return_preference | 選用。 一個用於變更伺服器對 POST 和 DELETE 操作行為的標頭。 當您將 return_preference 變數設定為 return=minimal 時,該服務會傳回刪除成功的回應。 當您將變數設定為 return=representation 時,該服務會同時傳回金鑰資料與金鑰元資料。 |
若將 return_preference 變數設定為 return=representation,則 DELETE 請求的詳細資訊將包含在回應的實體內容中。
刪除金鑰之後,它會轉移至 已停用 金鑰狀態。 在 24 小時之後,如果未恢復金鑰,則金鑰會轉移至 已毀損 狀態。 已刪除的金鑰可以在最多 30 天或其到期日之後回復,兩者以較早的日期為準。 在此之後,金鑰內容會永久解構,且無法再存取其 meta 資料。
下列 JSON 物件顯示回覆值範例。
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"type": "application/vnd.ibm.kms.key+json",
"aliases": [
"alias-1",
"alias-2"
],
"name": "test-root-key",
"description": "...",
"state": 5,
"expirationDate": "2020-03-15T20:41:27Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:30372f20-d9f1-40b3-b486-a709e1932c9c:key:2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"deleted": true,
"algorithmType": "AES",
"createdBy": "...",
"deletedBy": "...",
"creationDate": "2020-03-10T20:41:27Z",
"deletionDate": "2020-03-16T21:46:53Z",
"lastUpdateDate": "2020-03-16T20:41:27Z",
"extractable": true
}
]
}
有關可用參數的詳細說明,請參閱 Key Protect 的 REST API 參考文件。
金鑰清除
當您刪除金鑰時,您會立即取消啟動其金鑰資料,並將它移至 Key Protect 服務中的後端儲存庫。 在刪除金鑰四小時之後,金鑰會變成可供手動清除。 在刪除金鑰之後 30 天,金鑰會變成不可還原,且金鑰資料會毀損。 在刪除金鑰 90 天之後,如果未手動清除,則金鑰會變成適合自動清除,並將從 Key Protect 服務永久移除或「強迫刪除」其所有相關聯資料。
如需刪除及清除金鑰的相關資訊,請參閱 關於刪除及清除金鑰。
下表列出您可以使用哪些 API 來擷取與已刪除金鑰相關的資料。
| API | 說明 |
|---|---|
| 取得金鑰 | 擷取金鑰詳細資料 |
| 取得關鍵 meta 資料 | 擷取金鑰 meta 資料 |
| 取得登錄 | 擷取與金鑰相關聯的登錄清單 |