Google Distributed Cloud 1.10 版支援加密密鑰,不需要外部 KMS (金鑰管理服務) 或任何其他依附元件。
請注意,進階叢集有下列限制:
- 1.31 版:進階叢集不支援永久密碼加密。
- 1.32 以上版本:進階叢集支援永久加密功能。
啟用永久密碼加密
「一律加密密鑰」功能會自動產生加密金鑰,用於加密密鑰,然後再將密鑰儲存在該叢集的 etcd 資料庫中。密鑰會使用為每個密鑰寫入作業產生的資料加密金鑰 (DEK) 加密。這個 DEK 會以 AES-GCM 模式加密 Secret 物件。DEK 則會使用「金鑰加密金鑰」(KEK) 加密。加密演算法為 A256GCM (使用 256 位元金鑰的 AES GCM)。
金鑰版本是版本號碼,用來指出目前使用的金鑰。
叢集建立後,您也可以啟用密鑰加密功能。
管理員叢集:
編輯管理員叢集設定檔,新增
secretsEncryption
區段。請執行
gkectl update
指令。gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
針對使用者叢集:
編輯使用者叢集設定檔,新增
secretsEncryption
區段。請執行
gkectl update
指令。gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
更改下列內容:
ADMIN_KUBECONFIG
,並將其替換為管理員叢集 kubeconfig 檔案的路徑。ADMIN_CLUSTER_CONFIG
,並提供管理員叢集設定檔的路徑。USER_CLUSTER_CONFIG
,並提供使用者叢集設定檔的路徑。
本節提供的 gkectl update
指令也可用於對應叢集的任何其他更新。
金鑰儲存
管理員叢集的加密金鑰會儲存在管理員叢集資料磁碟中。這個磁碟會掛接在管理員主機的 /opt/data,加密金鑰則位於 /opt/data/gke-k8s-kms-plugin/generatedkeys/。您必須備份這些金鑰,才能繼續存取該金鑰加密的密鑰。您應在 Hypervisor 中啟用 VM/儲存空間加密或採取類似措施,確保控制層 VM 磁碟受到保護。
金鑰輪替
如要輪替叢集的現有加密金鑰,請在對應的管理員叢集設定檔或使用者叢集設定檔中,遞增 keyVersion
,然後執行適當的 gkectl update
指令。這會建立與新版本號碼相符的新金鑰、重新加密每個密鑰,並安全地清除舊金鑰。後續所有新 Secret 都會使用新的加密金鑰加密。
停用永久密碼加密
如要在現有叢集上停用 Secret 加密功能,請新增 disabled: true
欄位。接著,請執行對應的 gkectl update
指令。這項更新會解密現有的所有密鑰,並以純文字形式儲存。後續所有新密鑰都會以純文字格式儲存。
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true