本頁面說明 Cloud KMS 中的各類資源。Cloud KMS 資源建立後,即無法移至其他位置。如要進一步瞭解資源階層,請參閱這篇文章。
金鑰
Cloud KMS 金鑰是具名物件,包含一或多個金鑰版本,以及金鑰的中繼資料。金鑰只會存在於與特定位置繫結的一個金鑰環中。
您可以使用 Identity and Access Management (IAM) 權限和角色,允許及拒絕金鑰存取權。您無法管理金鑰版本的存取權。
停用或刪除金鑰也會停用或刪除每個金鑰版本。
以下各節將說明金鑰的屬性。
視情境而定,金鑰屬性會以不同格式顯示。
- 使用 Google Cloud CLI 或 Cloud Key Management Service API 時,這項屬性會顯示為大寫字母字串,例如
SOFTWARE。 - 使用 Google Cloud 控制台時,屬性會顯示為首字母大寫的字串,例如「Software」。
在以下各節中,我們會視情況顯示各個格式。
類型
金鑰類型會決定金鑰用於對稱或非對稱加密編譯作業。
在對稱式加密或簽署中,系統會使用同一組金鑰來加密及解密資料,或簽署及驗證簽章。
在非對稱式加密或簽署中,金鑰包含公開金鑰和私密金鑰。私密金鑰和對應的公開金鑰稱為金鑰組。
- 私密金鑰是機密資料,必須用於解密資料或簽署,具體取決於金鑰的設定用途。
- 公開金鑰不屬於機密資料,視金鑰的設定用途而定,可用於加密資料或驗證簽章。
金鑰類型是金鑰用途的一部分,金鑰建立後即無法變更。
目的
金鑰的用途會指出金鑰可用於哪種加密編譯作業,例如「Symmetric encrypt/decrypt」(對稱式加密/解密) 或「Asymmetric signing」(非對稱式簽署)。您可以在建立金鑰時選擇用途,金鑰的所有版本都會有相同的用途。金鑰建立後,就無法變更用途。如要進一步瞭解金鑰用途,請參閱「金鑰用途」。
防護等級
金鑰的保護層級會決定金鑰在靜態時的儲存環境。防護等級如下:
- 軟體 (
SOFTWARE) - 多租戶 HSM (
HSM) - 單一租戶 HSM (
HSM_SINGLE_TENANT) - 外部 (
EXTERNAL) - External_VPC (
EXTERNAL_VPC)
金鑰建立後,保護層級即無法變更。
主要版本
金鑰可以同時啟用多個金鑰版本。對稱式加密金鑰具有主要金鑰版本,如果您未指定金鑰版本,系統預設會使用該版本加密資料。
非對稱金鑰沒有主要版本,因此使用金鑰時必須指定版本。
無論是對稱式或非對稱式金鑰,您都可以使用任何已啟用的金鑰版本,加密及解密資料,或簽署及驗證簽章。
金鑰版本
每個金鑰版本都包含用於加密或簽署的金鑰內容。每個版本都會指派一個版本號碼,從 1 開始。輪替金鑰會建立新的金鑰版本。進一步瞭解輪替金鑰。
如要解密資料或驗證簽章,您必須使用與加密或簽署資料時相同的金鑰版本。如要查看金鑰版本的資源 ID,請參閱「擷取金鑰的資源 ID」。
您可以停用或刪除個別金鑰版本,而不影響其他版本。您也可以停用或刪除特定金鑰的所有金鑰版本。
您無法單獨控管金鑰版本的存取權,必須一併控管金鑰的有效權限。授予金鑰存取權,即代表授予該金鑰所有已啟用版本的存取權。
基於安全考量,任何 Google Cloud 主體都無法查看或匯出金鑰版本代表的原始加密編譯金鑰內容。而是由 Cloud KMS 代為存取金鑰內容。
以下各節將說明金鑰版本的屬性。
狀態
每個金鑰版本都有狀態,可讓您瞭解其狀態。通常,金鑰的狀態會是下列其中一種:
- 已啟用
- 已停用
- 已安排刪除
- 已刪除
金鑰版本必須啟用才能使用。 只要金鑰版本並非處於已刪除狀態,就會產生費用。 如要進一步瞭解金鑰版本狀態,以及版本如何在狀態之間轉換,請參閱「金鑰版本狀態」。
演算法
金鑰版本的演算法會決定金鑰內容的建立方式,以及加密編譯作業所需的參數。對稱和非對稱金鑰使用不同的演算法。加密和簽署使用不同的演算法。
如果在建立新的金鑰版本時未指定演算法,系統會使用前一個版本的演算法。
無論演算法為何,Cloud KMS 都會使用機率加密,因此使用相同金鑰版本加密兩次的相同明文不會傳回相同的密文。
金鑰環
金鑰環會將金鑰整理到特定 Google Cloud位置,方便您管理金鑰群組的存取控管。金鑰環的名稱在 Google Cloud 專案中不一定要不重複,但在指定位置中不得重複。 金鑰環不會產生任何費用。 如需可用位置清單,請參閱「Cloud KMS 位置」。
金鑰控制代碼
金鑰控制代碼是 Cloud KMS 資源,可協助您安全地分散權責,使用 Autokey 為 CMEK 建立新的 Cloud KMS 金鑰。在資源專案中建立金鑰控制代碼,會觸發在金鑰專案中建立 Cloud KMS 金鑰,以便隨選設定 CMEK。
金鑰控制代碼會保留已建立 Cloud KMS 金鑰的參照。您可以從金鑰控制代碼擷取 Autokey 建立的金鑰 Cloud KMS 資源 ID。Terraform 等基礎架構即程式碼工具可與金鑰控制代碼搭配使用,在不提高進階權限的情況下管理受 CMEK 保護的資源。
金鑰控制代碼不會顯示在 Google Cloud 控制台中,但如要搭配使用 Autokey 和 REST API 或 Terraform,就必須使用金鑰控制代碼。如要進一步瞭解如何使用金鑰控制代碼,請參閱「使用 Cloud KMS Autokey 建立受保護的資源」。
Autokey 設定
Autokey 設定是資料夾或專案層級的資源,定義是否為資料夾中的資源啟用 Autokey。Autokey 設定也會定義要使用哪個金鑰專案,來存放 Cloud KMS Autokey 建立的金鑰,以保護該資料夾中的資源。啟用 Autokey 時,您會在資源資料夾或專案中建立或更新 Autokey 設定。如要進一步瞭解如何使用 Autokey 設定,請參閱「啟用 Cloud KMS Autokey」。
EKM 連線
EKM 連線是一種 Cloud KMS 資源,可將虛擬私有雲連線整理至特定Google Cloud 位置的地端部署 EKM。透過 EKM 連線,您可以使用虛擬私有雲網路,連線至外部金鑰管理工具並使用當中的金鑰。EKM 連線建立後即無法刪除。 EKM 連線不會產生任何費用。
擷取資源 ID
部分 API 呼叫和 gcloud CLI 可能會要求您依資源 ID 參照金鑰環、金鑰或金鑰版本,資源 ID 是代表完整 CryptoKeyVersion 名稱的字串。資源 ID 具有階層結構,類似檔案系統路徑。金鑰的資源 ID 也包含金鑰環和位置的相關資訊。
| 物件 | 資源 ID 格式 |
|---|---|
| 金鑰環 | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING |
| 金鑰 | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME |
| 金鑰版本 | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION |
| 金鑰控制代碼 | projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE |
| EKM 連線 | projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION |
| Autokey 設定 | folders/FOLDER_NUMBER/autokeyConfigprojects/PROJECT_ID/autokeyConfig |
詳情請參閱「取得 Cloud KMS 資源 ID」。
整理資源
規劃如何整理 Google Cloud專案中的資源時,請考量業務規則和存取權管理方式。您可以將存取權授予單一金鑰、金鑰環中的所有金鑰,或專案中的所有金鑰。常見的組織模式如下:
- 依環境,例如
prod、test和develop。 - 依工作區域,例如
payroll或insurance_claims。 - 依資料敏感度或特性,例如
unrestricted、restricted、confidential、top-secret。
資源生命週期
在某些情況下,您可以刪除金鑰環、金鑰和金鑰版本。刪除資源後,該資源會從 Cloud KMS 資源清單中移除。刪除金鑰版本會永久刪除其基礎金鑰內容。刪除金鑰環後,其名稱可重複使用,但已刪除金鑰的名稱無法重複使用。這可確保金鑰版本的資源 ID 具有唯一性,且一律指向該金鑰版本的原始金鑰內容 (除非已刪除)。您可以儲存無限數量的金鑰環、已啟用或停用的金鑰,以及已啟用、停用或刪除的金鑰版本。 詳情請參閱「定價」和「配額」。
如要瞭解如何刪除或還原金鑰版本,請參閱「刪除及還原金鑰版本」。
安排關閉 Google Cloud 專案後,您就無法存取專案的資源,包括 Cloud KMS 資源,除非您按照還原專案的步驟復原專案。