管理應用程式密鑰

本頁面說明如何管理使用 Cloud Deploy 部署至 Google Kubernetes Engine 或 GKE Enterprise 叢集的應用程式密鑰,並提供相關最佳做法。

由於將應用程式密鑰插入部署構件會帶來安全性風險,因此請勿在 Cloud Deploy 管道中管理密鑰。

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

在本主題中,密鑰是指機密資料,例如資料庫憑證、API 金鑰、憑證或密碼。

Kubernetes 密鑰

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

由於 Kubernetes Secret 預設不安全,且沒有加密機制,因此本文所述的方法不會使用這些機制。

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

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

以下是使用 GKE 或 GKE Enterprise 管理 Secret 的兩種方法:

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,以及其他 Hashicorp 工具,例如 Terraform。

您可以按照下列步驟,在 Kubernetes 叢集中設定 Vault:

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

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

  3. 使用 Vault CSI 供應器來使用這些密鑰。

後續步驟