管理應用程式密鑰

本頁面說明管理應用程式密鑰的最佳做法,這些應用程式是您使用 Cloud Deploy 部署至 Google Kubernetes Engine 或 GKE 連結叢集的應用程式。

將應用程式密鑰插入部署構件會造成安全風險,因此請避免從 Cloud Deploy 管道管理密鑰。

以這種方式使用的密鑰應在 Cloud Deploy 範圍外產生、管理及輪替。

在此情境中,密鑰是指資料庫憑證、API 金鑰、憑證或密碼等機密資料。

Kubernetes Secret

Kubernetes Secret 是安全物件,可在叢集中儲存機密資料,例如密碼、OAuth 權杖和 SSH 金鑰,與 Pod 分開。Secret 與 ConfigMap 類似,但用於保存機密資料。

由於 Kubernetes Secret 預設不安全,因此本文所述方法不會使用這類物件,而是採用加密機制。

管理要搭配 Cloud Deploy 使用的密鑰

本節說明如何管理使用 Cloud Deploy 部署的應用程式密鑰。

使用 GKE 或 GKE 連結叢集管理密鑰的方法有兩種:

Google Secret Manager

Secret Manager 是全代管的多區域 Google Cloud服務,可安全地儲存 API 金鑰、密碼和其他機密資料。

您可以使用用戶端程式庫Workload Identity 驗證,或使用 Secrets Store CSI 驅動程式,從叢集存取 Secret Manager 中的密鑰。

如要在應用程式中使用 Secret Manager,請按照下列步驟操作:

  1. 使用 Secret Manager 建立密鑰

  2. 使用 SDK 從應用程式程式碼參照密鑰。

您可以使用環境變數指定 Secret 的其他中繼資料,例如 Secret 版本或應用程式環境 (例如開發、測試、正式版)。

如果特定功能的部署程序包含基礎架構佈建,請在佈建程序中,使用 Secret Manager 建立或更新密鑰,然後再部署應用程式。

如要進一步瞭解如何使用 Secret Manager 管理 Kubernetes 密鑰,請參閱「搭配使用 Secret Manager 與其他產品 」。

HashiCorp Vault

Hashicorp Vault 是熱門且廣泛使用的開放原始碼工具,可管理密鑰。 Google Cloud 提供 Vault 的廣泛整合和支援,以及 Terraform 等其他 Hashicorp 工具。

您可以在 Kubernetes 叢集中設定 Vault,方法如下:

  1. 透過 API 存取 Vault 密鑰,並使用 Workload Identity 驗證身分。

  2. 使用 Vault Agent 容器,將密鑰注入 Kubernetes Pod。

  3. 使用 Vault CSI 提供者來取用這些密鑰。

後續步驟