本文說明如何永久刪除 Cloud Key Management Service 資源。可刪除的 Cloud KMS 資源類型如下:
- 金鑰環
- 金鑰
- 金鑰版本
這項操作無法復原,如需瞭解特定資源的限制,請參閱本文件的對應章節。
在 Cloud KMS 中,刪除和移除是不同的作業:
刪除:永久停用金鑰版本,包括在指定刪除期限後,不可逆地刪除基礎金鑰內容。處於
DESTROYED狀態的金鑰版本無法用於加密編譯作業,也不會再產生費用。您可以刪除用於加密資料的金鑰版本,以加密刪除您要永久無法復原的資料。已刪除的金鑰版本仍會列在 Cloud KMS 資源清單中。刪除:從 Google Cloud 控制台、Google Cloud CLI、Cloud Key Management Service API 和用戶端程式庫的 Cloud KMS 資源清單中,移除金鑰環、金鑰或金鑰版本。如果專案有許多不再使用的金鑰環、金鑰或金鑰版本,刪除這些項目可簡化搜尋和清單作業。刪除金鑰環後,其名稱可重複使用。不過,已刪除的 CryptoKey 名稱無法重複使用。您可以使用
retiredResources.list方法,查看已刪除且無法重複使用的 CryptoKey 名稱清單。
事前準備
如要取得刪除及查看 Cloud KMS 資源所需的權限,請要求管理員授予您金鑰的 Cloud KMS 管理員 (roles/cloudkms.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備刪除及查看 Cloud KMS 資源所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
必須具備下列權限,才能刪除及查看 Cloud KMS 資源:
-
如要刪除金鑰版本,請按照下列步驟操作:
cloudkms.cryptoKeyVersions.delete -
如要刪除金鑰,請按照下列步驟操作:
cloudkms.cryptoKeys.delete -
如要刪除金鑰環,請按照下列步驟操作:
cloudkms.keyRings.delete -
如要查看已刪除的資源,請按照下列步驟操作:
-
cloudkms.retiredResources.get -
cloudkms.retiredResources.list
-
刪除金鑰版本
如果金鑰版本處於 DESTROYED、IMPORT_FAILED 或 GENERATION_FAILED 狀態,您可以刪除該版本。如果金鑰版本是匯入的,則只有在匯入失敗時才能刪除。
如要永久刪除金鑰版本,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Key Management」(金鑰管理) 頁面。
按一下金鑰環名稱,找出要刪除的金鑰和金鑰版本。
按一下要刪除的金鑰版本所屬的金鑰。
在「Versions」(版本) 表格中,找出要刪除的金鑰版本,然後按一下 「More actions」(更多動作)。
在「更多動作」選單中,按一下「刪除」。
在確認提示中輸入金鑰名稱,然後按一下「Delete」(刪除)。
gcloud
如要刪除金鑰版本,請執行下列指令:
gcloud kms keys versions delete KEY_VERSION \
--location=LOCATION \
--keyring=KEY_RING \
--key=KEY_NAME
更改下列內容:
KEY_VERSION:要永久刪除的金鑰版本編號。指定的金鑰版本必須處於DESTROYED、IMPORT_FAILED或GENERATION_FAILED狀態。LOCATION:金鑰環的 Cloud KMS 位置。KEY_RING:金鑰所屬金鑰環的名稱。KEY_NAME:金鑰名稱,其中包含要永久刪除的金鑰版本。
Go
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
API
如要刪除金鑰版本,請呼叫
cryptoKeyVersions.delete方法。這個方法會傳回長時間執行的作業,您可以輪詢該作業,確認金鑰版本已刪除。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION" \ --request "DELETE" \ --header "authorization: Bearer TOKEN"
更改下列內容:
PROJECT_ID:金鑰環所在專案的 ID。LOCATION:金鑰環的 Cloud KMS 位置。KEY_RING:金鑰所屬金鑰環的名稱。KEY_NAME:金鑰名稱,其中包含要永久刪除的金鑰版本。KEY_VERSION:要永久刪除的金鑰版本編號。指定的金鑰版本必須處於DESTROYED、IMPORT_FAILED或GENERATION_FAILED狀態。
指令的輸出內容會傳回
Operation。您需要作業的name,才能進行下一個步驟。如要確認金鑰版本已刪除,可以呼叫
operations.get方法:curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN"更改下列內容:
PROJECT_ID:金鑰環所在專案的 ID。LOCATION:金鑰環的 Cloud KMS 位置。OPERATION_NAME:先前方法傳回的作業名稱。
當這個方法的輸出內容顯示
done為true時,表示作業已完成。如果未顯示error,表示金鑰版本已永久刪除。
刪除金鑰
只要符合下列條件,即可刪除金鑰:
- 金鑰不含任何未刪除的金鑰版本。
- 金鑰未排定自動金鑰輪替。
- 金鑰並非由 Cloud KMS Autokey 建立。
如要永久刪除金鑰,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Key Management」(金鑰管理) 頁面。
按一下金鑰環名稱,找出要刪除的金鑰。
在要刪除的金鑰列中,按一下 「Key actions」(金鑰動作),然後按一下「Delete」(刪除)。
在確認提示中輸入金鑰名稱,然後按一下「Delete」(刪除)。
gcloud
如要刪除金鑰,請執行下列指令:
gcloud kms keys delete KEY_NAME \
--location=LOCATION \
--keyring=KEY_RING
更改下列內容:
KEY_NAME:要永久刪除的金鑰名稱。金鑰不得包含任何尚未刪除的金鑰版本,且不得為 Autokey 建立的金鑰。LOCATION:金鑰環的 Cloud KMS 位置。KEY_RING:金鑰所屬金鑰環的名稱。
Go
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
API
如要刪除金鑰,請呼叫
cryptoKey.delete方法。這個方法會傳回長時間執行的作業,您可以輪詢該作業,確認金鑰已刪除。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \ --request "DELETE" \ --header "authorization: Bearer TOKEN"
更改下列內容:
PROJECT_ID:金鑰環所在專案的 ID。LOCATION:金鑰環的 Cloud KMS 位置。KEY_RING:金鑰所屬金鑰環的名稱。KEY_NAME:要永久刪除的金鑰名稱。金鑰不得包含任何尚未刪除的金鑰版本,且不得為 Autokey 建立的金鑰。
指令的輸出內容會傳回
Operation。您需要作業的name,才能進行下一個步驟。如要確認金鑰是否已刪除,可以呼叫
operations.get方法:curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN"更改下列內容:
PROJECT_ID:金鑰環所在專案的 ID。LOCATION:金鑰環的 Cloud KMS 位置。OPERATION_NAME:先前方法傳回的作業名稱。
當這個方法的輸出顯示
done為true時,表示作業已完成。如果未顯示error,表示金鑰已永久刪除。
刪除金鑰環
只要符合下列條件,即可刪除金鑰環:
- 金鑰環中的所有金鑰都必須刪除。
- 金鑰環中的所有匯入工作都必須過期。
刪除金鑰環後,金鑰環名稱約在 5 到 10 分鐘內即可重複使用。
如要永久刪除金鑰環,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Key Management」(金鑰管理) 頁面。
在要刪除的金鑰環資料列中,依序按一下 「Key ring actions」(金鑰環動作) 和「Delete」(刪除)。
在確認提示中,輸入金鑰環名稱,然後按一下「Delete」(刪除)。
gcloud
如要刪除金鑰環,請執行下列指令:
gcloud kms keyrings delete KEY_RING \
--location=LOCATION \
更改下列內容:
KEY_RING:要永久刪除的金鑰環名稱。金鑰環不得包含任何金鑰,或處於ACTIVE狀態的匯入工作。LOCATION:金鑰環的 Cloud KMS 位置。
API
如要刪除金鑰環,請呼叫
keyRings.delete方法。這個方法會傳回長時間執行的作業,您可以輪詢該作業,確認金鑰環已刪除。curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING" \ --request "DELETE" \ --header "authorization: Bearer TOKEN"
更改下列內容:
PROJECT_ID:金鑰環所在專案的 ID。LOCATION:金鑰環的 Cloud KMS 位置。KEY_RING:要永久刪除的金鑰環名稱。金鑰環不得包含任何金鑰或處於ACTIVE狀態的匯入工作。
指令的輸出內容會傳回
Operation。您需要作業的name,才能進行下一個步驟。如要確認金鑰環已刪除,可以呼叫
operations.get方法:curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN"更改下列內容:
PROJECT_ID:金鑰環所在專案的 ID。LOCATION:金鑰環的 Cloud KMS 位置。OPERATION_NAME:先前方法傳回的作業名稱。
當這個方法的輸出顯示
done為true時,表示作業已完成。如果未顯示error,表示金鑰環已永久刪除。
查看已淘汰資源的名稱
已刪除的金鑰名稱無法在同一個Google Cloud 專案中重複使用。這可避免兩個不同的金鑰具有相同的資源 ID。已刪除金鑰的名稱會儲存在 retiredResources 物件中。您可以查詢 retiredResources,查看哪些名稱無法重複用於新的 Cloud KMS 資源。
如要查看所有已停用資源的清單,請按照下列步驟操作:
gcloud
執行下列指令:
gcloud kms retired-resources list \
--location=LOCATION
更改下列內容:
LOCATION:要查看已停用資源的位置。
Go
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
API
請使用 retiredResources.list 方法:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/" \
--request "GET" \
--header "authorization: Bearer TOKEN"
更改下列內容:
PROJECT_ID:要查看已淘汰資源的專案 ID。LOCATION:要查看已停用資源的位置。
如要查看個別停用資源的中繼資料,請按照下列步驟操作:
gcloud
執行下列指令:
gcloud kms retired-resources describe RETIRED_RESOURCE \
--location=LOCATION
更改下列內容:
RETIRED_RESOURCE:要查看的資源名稱。LOCATION:要查看已停用資源的位置。
Go
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Cloud KMS 的用戶端程式庫,請參閱「Cloud KMS 用戶端程式庫」。
如要向 Cloud KMS 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
API
使用 retiredResources.get 方法:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/RETIRED_RESOURCE" \
--request "GET" \
--header "authorization: Bearer TOKEN"
更改下列內容:
PROJECT_ID:要查看已淘汰資源的專案 ID。LOCATION:要查看已停用資源的位置。RETIRED_RESOURCE:要查看的資源名稱。
方法的輸出內容包括 resourceType、deleteTime,以及已刪除資源的完整資源 ID。
後續步驟
- 進一步瞭解如何刪除及還原金鑰版本。