本文將說明設定 Google Workspace 適用的 Cloud HSM 時的最佳做法,協助您防範重要金鑰資料遭到意外或未經授權的破壞和刪除,確保重要加密金鑰的高可用性和耐久性,並符合法規和法規遵循要求。
本文適用於雲端架構師、安全團隊和 Google Workspace 管理員,這些人員負責確保 Google Workspace 用戶端加密 (CSE) 功能所用加密金鑰的安全性和運作韌性。本文假設您已熟悉 Google Workspace 適用的 Cloud HSM,並已完成啟用程序。
減少重要材料的損失
如果主體擁有可授權完成破壞性動作的角色,就可能產生安全風險,尤其是超出主體一般工作範圍的動作。舉例來說,如果使用者擁有過於廣泛的專案擁有者 (roles/owner) 角色,可能會毀損用於 Google Workspace CSE 的金鑰材料,導致加密資料永久無法存取。
以下各節說明相關做法,有助於移除銷毀或刪除權限,並限制金鑰銷毀作業,以降低意外和惡意銷毀及刪除金鑰的風險。這些金鑰是 Google Workspace 用戶端加密 (CSE) 使用的 Cloud KMS 金鑰材料。
強制執行資料夾層級的 IAM 拒絕政策
透過 IAM 拒絕政策,您可以拒絕主體的權限,即使主體持有的角色已授予該權限也一樣。舉例來說,即使使用者具備專案擁有者 (roles/owner) 角色,資料夾層級的 IAM 拒絕政策仍可防止他們毀損或刪除金鑰。將 Cloud HSM 專案放在資料夾中,並在資料夾層級套用拒絕政策,即可建立防護措施,在政策強制執行期間防止金鑰毀損和刪除。如要取消強制執行的拒絕政策,您必須在資料夾中具備「拒絕管理員」(roles/iam.denyAdmin) 等角色。
請確保資料夾管理角色 (例如資料夾管理員 (roles/resourcemanager.folderAdmin) 和拒絕管理員 (roles/iam.denyAdmin)) 只授予給在 Cloud HSM 金鑰所在專案中,沒有 Cloud KMS 管理員 (roles/cloudkms.admin) 角色的主體。職責分離可確保沒有任何單一主體能同時管理及銷毀金鑰。
根據下列範例設定拒絕政策:
displayName: Deny KMS key destruction and deletion
rules:
- description: "Denies destroy and delete permissions on Cloud KMS keys for all principals."
denyRule:
deniedPrincipals:
- "principalSet://goog/public:all"
deniedPermissions:
- "cloudkms.googleapis.com/cryptoKeyVersions.destroy"
- "cloudkms.googleapis.com/cryptoKeys.delete"
如要進一步瞭解 IAM 拒絕政策,請參閱「IAM 拒絕政策總覽」。
強制執行金鑰刪除的機構政策限制
除了 IAM 之外,您還可以使用機構政策限制,在機構或資料夾層級強制執行安全防護機制。這些限制是嚴格的規定,會限制可建立的資源類型和設定方式。即使主體具備完成禁止動作的必要權限,也無法略過強制執行的組織政策限制。如要取消強制執行的機構政策限制,您必須具備機構的組織政策管理員 (roles/orgpolicy.policyAdmin) 等角色。
- 最短銷毀時間
(
constraints/cloudkms.minimumDestroyScheduledDuration): 針對啟用政策的機構或資源中的所有金鑰,強制規定最短預定銷毀時間 (例如 90 或 120 天)。這項限制可防止任何使用者將復原時間範圍縮短至低於設定的最小值。 - 先停用再刪除 (
constraints/cloudkms.disableBeforeDestroy): 金鑰版本必須處於DISABLED狀態,才能排定刪除時間。這項限制會在銷毀工作流程中新增必要步驟,提高稽核記錄中動作的能見度。
詳情請參閱控管金鑰版本刪除作業。
盡量延長金鑰銷毀時間
排定刪除金鑰版本後,該版本會進入「軟刪除」狀態。金鑰版本處於「已安排刪除」狀態時,您可以還原金鑰來取消刪除作業。將這個可設定的期限設為最長 120 天,有助於確保您有足夠的時間還原意外或惡意排定銷毀的金鑰版本。您只能在建立金鑰時設定這個值。
還原已排定刪除的金鑰版本時,金鑰版本狀態會設為 DISABLED。您必須重新啟用金鑰版本,才能還原加密的 Google Workspace 資料存取權。
下列 gcloud CLI 指令會建立 HSM 支援的金鑰,並將排定銷毀時間設為 120 天:
gcloud kms keys create KEY_NAME \
--location LOCATION \
--keyring KEY_RING \
--purpose encryption \
--protection-level hsm \
--destroy-scheduled-duration 120d
更改下列內容:
KEY_NAME:金鑰名稱。LOCATION:金鑰環的 Cloud KMS 位置。KEY_RING:金鑰所屬金鑰環的名稱。
如要在機構中對所有金鑰強制執行這項時間長度,而非針對個別金鑰設定,可以定義及強制執行自訂機構政策限制。以下範例限制只允許使用者建立預定刪除日數介於 90 到 120 天的金鑰:
name: organizations/ORGANIZATION_ID/customConstraints/custom.limitScheduledDestruction
resourceTypes:
- cloudkms.googleapis.com/CryptoKey
methodTypes:
- CREATE
condition: "resource.destroyScheduledDuration >= duration('7776000s') && resource.destroyScheduledDuration <= duration('10368000s')"
actionType: ALLOW
displayName: Require scheduled destruction duration between 90 and 120 days
description: Allows key creation only if the destroyScheduledDuration is between 90 and 120 days.
將 ORGANIZATION_ID 替換為貴機構的數字 ID。
如要進一步瞭解如何設定排定銷毀時間的期限,請參閱「刪除與還原金鑰版本」。如要進一步瞭解如何搭配 Cloud KMS 使用自訂組織政策限制,請參閱「為 Cloud KMS 建立自訂組織政策限制」。
保護基礎架構和專案
本文稍早討論的防護措施,重點在於防止金鑰遭到毀損和刪除。不過,您也需要防護措施,避免刪除重要專案。請使用下列防護措施,確保存放 Google Workspace 金鑰的專案環境安全無虞。
強制執行專案防刪除鎖定
專案防刪除鎖定可防止專案遭到刪除。即使是具備專案擁有者 (roles/owner) 角色的使用者,也無法在留置權有效期間關閉專案。這是最有效的方法,可防止意外或未經授權刪除 Google Workspace 金鑰所在的專案。
如要進一步瞭解專案防刪除鎖定權限,請參閱「使用防刪除鎖定權限保護專案」。
瞭解專案復原期限
如果專案成功刪除 (例如移除專案留置權 (搶先版) 後),就會進入 30 天的復原期。在這段期間,具備專案擁有者 (roles/owner) 或機構管理員 (roles/resourcemanager.organizationAdmin) 角色的使用者可以還原專案。30 天後,系統會永久清除專案和其中的所有金鑰。
建議您保留專案保留事項,只有在不得已的情況下才使用復原期限。
如要進一步瞭解如何復原專案,請參閱「還原已刪除的專案」。
使用 VPC Service Controls
VPC Service Controls 可讓您為 Cloud HSM 專案定義安全範圍。這有助於確保只有受信任的網路或特定身分可以存取 Cloud KMS API,降低企業環境外部未經授權的管理動作帶來的風險。
使用匯入的金鑰 (BYOK) 確保金鑰內容主權
我們建議大部分機構讓 Cloud HSM 為您產生及管理金鑰內容。
不過,如果您需要「自備金鑰 (BYOK)」功能,可以在地端部署系統產生金鑰內容,然後匯入 Cloud HSM。這種自備金鑰方法可滿足多項需求,例如維護金鑰內容的獨立地端部署副本,以符合資料主權規定,或在金鑰內容發生災難性損失時進行復原。這樣一來,您就能取得金鑰內容的獨立副本,如果 Cloud KMS 中的金鑰版本遭到刪除,即可重新匯入。
重新匯入至相同版本
Cloud KMS 可讓您將相同的金鑰內容重新匯入已毀損的金鑰版本,使資源 ID 和 URI 與原始匯入的金鑰版本相同。這樣就能繼續使用相同的 Google Workspace 設定。重新匯入 Google Workspace 設定中使用的金鑰版本後,只要金鑰版本匯入完成,資料存取權就會立即還原。
如要進一步瞭解如何重新匯入已刪除的金鑰版本,請參閱重新匯入已刪除的金鑰版本。
使用單一租戶 Cloud HSM 獲得進階防護
對於需要最高隔離層級的客戶,單一租戶 Cloud HSM 提供專屬的 HSM 分割區。單一租戶 Cloud HSM 執行個體是透過法定人數驗證建立及管理,因此在執行重要作業 (例如刪除單一租戶 Cloud HSM 執行個體) 前,必須先獲得設定的最低法定人數成員核准。這有助於避免單一遭入侵的帳戶毀損單一租戶 Cloud HSM 執行個體。使用單一租戶 Cloud HSM 時,請遵守下列做法。詳情請參閱「以仲裁為基礎的驗證」。
跨專案區隔基礎架構和金鑰
在不同專案中建立單一租戶 Cloud HSM 執行個體和 Google Workspace 金鑰。將資源專案分開,有助於確保金鑰專案的管理員角色使用者,對底層的單一租戶 Cloud HSM 執行個體沒有授權。基礎架構管理和金鑰管理職責分開,可降低未經授權的基礎架構層級動作風險。
如要進一步瞭解單一租戶 Cloud HSM,請參閱「單一租戶 Cloud HSM 總覽」。
最佳做法摘要
下表摘要說明本文建議的最佳做法:
| 主題 | 工作 |
|---|---|
| IAM 拒絕政策 | 強制執行資料夾層級的拒絕政策,禁止銷毀及刪除金鑰,即使是高權限使用者也不例外。 |
| 組織政策限制 | 強制執行限制,規定最短復原期限,並要求停用金鑰後才能銷毀。 |
| 已排定刪除時間 |
|
| 專案留置權 | 強制執行專案防刪除鎖定,防止刪除儲存加密金鑰的專案。 |
| VPC Service Controls 範圍 | 定義 VPC Service Controls 範圍,將 Cloud KMS API 存取權限制在信任的網路和身分。 |
| 重新匯入 BYOK | 在地端部署環境中產生金鑰內容,並使用重新匯入功能復原已刪除的金鑰版本,不必變更資源名稱。 |
| 跨專案架構 | 如果您使用單一租戶 Cloud HSM,請將單一租戶 Cloud HSM 執行個體和金鑰分別放在不同專案中,以強制執行分散權責。 |
後續步驟
- 加入 Google Workspace 適用的 Cloud HSM。
- 進一步瞭解 Cloud HSM 和法規遵循認證。
- 如需更廣泛的金鑰管理指南,請參閱 CMEK 最佳做法。
- 進一步瞭解 IAM 拒絕政策。
- 進一步瞭解自訂機構政策限制。