使用永久密碼加密

Google Distributed Cloud 1.10 版支援加密密鑰,不需要外部 KMS (金鑰管理服務) 或任何其他依附元件。

請注意,進階叢集有下列限制:

  • 1.31 版:進階叢集不支援永久密碼加密。
  • 1.32 以上版本:進階叢集支援永久加密功能。

啟用永久密碼加密

「一律加密密鑰」功能會自動產生加密金鑰,用於加密密鑰,然後再將密鑰儲存在該叢集的 etcd 資料庫中。密鑰會使用為每個密鑰寫入作業產生的資料加密金鑰 (DEK) 加密。這個 DEK 會以 AES-GCM 模式加密 Secret 物件。DEK 則會使用「金鑰加密金鑰」(KEK) 加密。加密演算法為 A256GCM (使用 256 位元金鑰的 AES GCM)。

金鑰版本是版本號碼,用來指出目前使用的金鑰。

叢集建立後,您也可以啟用密鑰加密功能。

  • 管理員叢集:

    1. 編輯管理員叢集設定檔,新增 secretsEncryption 區段。

    2. 請執行 gkectl update 指令。

      gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
  • 針對使用者叢集:

    1. 編輯使用者叢集設定檔,新增 secretsEncryption 區段。

    2. 請執行 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