AlloyDB Auth Proxy 簡介

AlloyDB Auth Proxy 是一種連接器,可讓您建立經過授權的加密連線,連至 AlloyDB for PostgreSQL 資料庫,而不必管理 SSL 憑證或設定防火牆規則。如需使用 Auth Proxy 的逐步指南,請參閱「使用 AlloyDB Auth Proxy 連線」。

使用 AlloyDB Auth Proxy 的好處

與直接將用戶端連線至 AlloyDB 資料庫相比,Auth Proxy 具有下列優點:

  • 以 Identity and Access Management (IAM) 為基礎的連線授權。Auth Proxy 會使用 IAM 主體的憑證和權限,授權連線至 AlloyDB 執行個體。

  • 自動 IAM 驗證。驗證 Proxy 可根據執行 Proxy 的 IAM 主體,自動驗證資料庫使用者。

  • 安全加密通訊。Auth Proxy 會自動建立、使用及維護雙向傳輸層安全標準 (mTLS) 1.3 連線,在用戶端和 AlloyDB 執行個體之間使用 256 位元 AES 加密,驗證用戶端和伺服器身分,並加密資料流量。

如要進一步瞭解如何連線至 AlloyDB 執行個體,請參閱「連線總覽」。

AlloyDB Auth Proxy 的運作方式

AlloyDB Auth Proxy 會在應用程式環境中以本機用戶端程序 (alloydb-auth-proxy) 的形式執行,並監聽 localhost (預設為 TCP 通訊埠 5432) 或本機 Unix 網域通訊端上的連線。應用程式會使用標準 PostgreSQL 驅動程式和線路通訊協定,連線至這個本機監聽器,而 Auth Proxy 用戶端則會透過加密通道 (mTLS 1.3 搭配 256 位元 AES 加密),將流量轉送至 AlloyDB 執行個體上執行的隨附 Auth Proxy 伺服器程序。透過 Auth Proxy 建立的每個連線,都會建立一個連至 AlloyDB 執行個體的連線。

應用程式連線至 Auth Proxy 時,Proxy 會檢查與目標 AlloyDB 執行個體現有的連線是否可用。如果連線不存在,Proxy 會呼叫 AlloyDB API 取得臨時 SSL 憑證,並使用該憑證建立與執行個體的 mTLS 通道。臨時 SSL 憑證會在 24 小時後到期,Auth Proxy 會在到期前自動重新整理。

Auth Proxy 會透過 HTTPS,經由網域名稱 alloydb.googleapis.com 呼叫 AlloyDB API。因此,防火牆必須允許用戶端機器在通訊埠 443 (HTTPS) 上傳出 TCP 連線。

雖然 Auth Proxy 可以在本機監聽任何通訊埠,但只會在 TCP 通訊埠 5433 上建立連至 AlloyDB 執行個體的連出連線。如果用戶端主機設有輸出防火牆,則必須允許連線至 AlloyDB 執行個體 IP 位址的通訊埠 5433,以及所有 IP 位址的通訊埠 443。

您可以在所有 AlloyDB 網路連線路徑中使用 Auth Proxy:

  • 私人服務存取權 (預設):連線至對接虛擬私有雲 (VPC) 網路中的執行個體內部 IP 位址。
  • Private Service Connect:傳遞 --psc 旗標時,透過 Private Service Connect 端點和私人 DNS 記錄連線。
  • 公開 IP:傳遞 --public-ip 旗標時,連線至執行個體的公開 IP 位址。Auth Proxy 會使用 IAM 和 mTLS,透過通訊埠 5433 驗證及加密連線,因此透過 Auth Proxy 連線時,您不必將用戶端的 IP 位址新增至已授權的外部網路。

AlloyDB Auth Proxy 如何驗證及授權連線

如要授權用戶端連線至 AlloyDB 執行個體,Auth Proxy 用戶端會使用用戶端上的 IAM 主體憑證向 Google Cloud 進行驗證,然後驗證 IAM 主體是否具備 AlloyDB 用戶端 (roles/alloydb.client) 和服務使用情形消費者 (roles/serviceusage.serviceUsageConsumer) IAM 角色。

根據預設,Auth Proxy 用戶端會使用應用程式預設憑證 (ADC) 找出用戶端憑證。這提供統一、標準的方式,讓應用程式自動驗證,不需編輯或硬式編碼設定值。

標準驗證

如果是標準開發和正式環境設定,您不需要設定自訂憑證或旗標。Auth Proxy 用戶端會使用標準環境路徑,自動解析憑證。視您用來執行 Auth Proxy 用戶端的環境而定,該用戶端會從下列來源尋找憑證:

  • 本機開發。在本機開發時,您可以使用個人或企業 Google 使用者帳戶進行驗證。Auth Proxy 用戶端會自動偵測並使用這些憑證。這是本機開發的建議做法,可避免在本機下載服務帳戶金鑰檔案。如需設定本機開發環境的端對端操作說明,請參閱「從筆記型電腦連線」和「安裝 psql 指令列工具」。

  • Google 代管環境。在Google Cloud 服務 (例如 Compute Engine 執行個體、Google Kubernetes Engine、Cloud Run、Cloud Run functions 或 App Engine) 上執行應用程式時,環境的中繼資料伺服器會自動提供附加服務帳戶的憑證。Auth Proxy 用戶端會自動探索並使用這些憑證,不需額外設定。

    • 如果運算資源與 AlloyDB 執行個體位於相同專案,預設服務帳戶通常具備必要的驗證權限。
    • 如果運算資源和 AlloyDB 執行個體位於不同專案,您必須將運算資源的服務帳戶新增至 AlloyDB 執行個體所在的專案,並授予必要角色。

覆寫憑證

在特定情況下 (例如測試、在Google Cloud外部執行,或想略過標準環境憑證),您可以使用下列任一方法覆寫憑證:

  • 服務帳戶金鑰。請透過 GOOGLE_APPLICATION_CREDENTIALS 環境變數或 --credentials-file 旗標提供金鑰。如果服務帳戶金鑰管理不當,就會帶來安全風險,因此請盡可能使用標準來源。

  • 現有的 OAuth 2.0 存取權杖。透過 --token 旗標提供權杖。

  • gcloud CLI 憑證。請透過 --gcloud-auth 旗標提供這些憑證。不建議使用這個旗標。請改為執行 gcloud auth application-default login。

如要進一步瞭解如何在用戶端設定這些憑證,請參閱「使用 AlloyDB Auth Proxy 連線」。如要瞭解 Google Cloud 驗證方式的一般資訊,請參閱「驗證總覽」。

後續步驟