本頁提供 AlloyDB Auth Proxy 的總覽。這個連接器可讓您與 AlloyDB 資料庫建立經過授權的加密連線。
如需使用 Auth Proxy 的逐步指南,請參閱「使用 AlloyDB Auth Proxy 連線」。
使用 AlloyDB Auth Proxy 的好處
相較於直接將用戶端連線至 AlloyDB 資料庫,Auth Proxy 具有下列優點:
以 IAM 為基礎的連線授權 (AuthZ):Auth Proxy 會使用 Identity and Access Management (IAM) 主體的憑證和權限,授權連線至 AlloyDB 執行個體。
安全加密的通訊:Auth Proxy 會自動建立、使用及維護 TLS 1.3 連線,並在用戶端與 AlloyDB 執行個體之間使用 256 位元 AES 加密,以驗證用戶端和伺服器身分,並加密資料流量。
如要進一步瞭解如何連線至 AlloyDB 執行個體,請參閱連線總覽。
AlloyDB Auth Proxy 的運作方式
AlloyDB Auth Proxy 的運作方式是在本機環境中執行本機用戶端。應用程式會使用資料庫採用的標準資料庫通訊協定,與 AlloyDB Auth Proxy 通訊。
AlloyDB Auth Proxy 會使用安全通道 (TLS 1.3、256 位元 AES 加密),與伺服器上執行的同伴程序通訊。透過 AlloyDB Auth Proxy 建立的每個連線,都會建立與 AlloyDB 執行個體的連線。
應用程式連線至 AlloyDB Auth Proxy 時,會檢查應用程式與目標 AlloyDB 執行個體之間是否有現有連線。如果沒有連線,則會呼叫 AlloyDB Admin API 取得臨時 SSL 憑證,並使用該憑證連線至 AlloyDB。臨時 SSL 憑證會在 24 小時後失效。AlloyDB Auth Proxy 會在這些憑證到期前重新整理。
AlloyDB Auth Proxy 會透過網域名稱 alloydb.googleapis.com
使用 HTTPS 呼叫 API。因此,防火牆必須允許從用戶端電腦連出通訊埠 443 (HTTPS) 的所有 TCP 連線。
AlloyDB Auth Proxy 可以監聽任何通訊埠,但只會透過通訊埠 5433 建立連出或輸出連線至 AlloyDB 執行個體。如果用戶端主機有輸出防火牆,則必須允許連線至 AlloyDB 執行個體 IP 位址的 5433 通訊埠。用戶端主機也必須允許連線至所有 IP 位址的標準 HTTPS 通訊埠 443。
AlloyDB Auth Proxy 如何授權 IAM 主體
如要授權用戶端連線至 AlloyDB 執行個體,Auth Proxy 用戶端會使用用戶端上的 IAM 主體憑證向 Google Cloud 進行驗證,然後驗證 IAM 主體是否具備 Cloud AlloyDB Client (roles/alloydb.client
) 和 Service Usage Consumer (roles/serviceusage.serviceUsageConsumer
) IAM 角色。
如要在用戶端上找出 IAM 憑證,Auth Proxy 用戶端會檢查下列各個項目,並使用找到的第一個項目嘗試向 Google Cloud進行驗證:
- 由 --credentials-file 旗標提供的憑證
使用服務帳戶建立並下載相關聯的 JSON 金鑰檔案,然後在啟動 Auth Proxy 用戶端時,將
--credentials-file
旗標設為檔案路徑。服務帳戶必須具備 AlloyDB 執行個體的 Cloud AlloyDB 用戶端 (roles/alloydb.client
) 和服務用量消費者 (roles/serviceusage.serviceUsageConsumer
) IAM 角色。如要在指令列使用這個選項,請叫用
alloydb-auth-proxy
指令,並將--credentials-file
旗標設為 JSON 憑證檔案的路徑和檔案名稱。路徑可以是絕對路徑,也可以是相對於目前工作目錄的路徑。 - 由 --token 標記提供的憑證
建立存取權杖,並使用
--token
旗標 (設為 OAuth 2.0 存取權杖) 叫用alloydb-auth-proxy
指令。 - 環境變數提供的憑證
這個選項與使用
--credentials-file
標記類似,但您指定的是在GOOGLE_APPLICATION_CREDENTIALS
環境變數中設定的 JSON 憑證檔案,而不是使用--credentials-file
標記。 - 已通過驗證的 Google Cloud CLI 用戶端憑證
如果您已安裝 gcloud CLI 並透過個人帳戶完成驗證,啟用
--gcloud-auth
標記後,Auth Proxy 用戶端就能使用相同的帳戶憑證。這個方法特別有助於啟動及執行開發環境。如果未選取
gcloud auth login
的帳戶,Auth Proxy 用戶端會檢查是否已選取gcloud auth application-default login
的帳戶。如果您未啟用--gcloud-auth
標記,系統會預設採用這項行為。 - 與 Compute Engine 執行個體相關聯的憑證
如果您是從 Compute Engine 執行個體連線至 AlloyDB,Auth Proxy 用戶端可以使用與 Compute Engine 執行個體相關聯的服務帳戶。如果服務帳戶具有 AlloyDB 執行個體的 Cloud AlloyDB 用戶端 (
roles/alloydb.client
) 和服務使用消費者 (roles/serviceusage.serviceUsageConsumer
) Identity and Access Management (IAM) 角色,Auth Proxy 用戶端就會成功完成驗證。如果 Compute Engine 執行個體與 AlloyDB 執行個體位於同一個專案,Compute Engine 執行個體的預設服務帳戶就會具備驗證 AlloyDB 的必要權限。如果這兩個執行個體位於不同專案,您必須將 Compute Engine 執行個體的服務帳戶新增至包含 AlloyDB 執行個體的專案。
- 環境的預設服務帳戶
如果 Auth Proxy 用戶端在上述任何位置都找不到憑證,就會按照「以服務帳戶身分進行驗證」一文所述的邏輯運作。部分環境 (例如 Compute Engine、App Engine 等) 提供預設服務帳戶,應用程式預設可使用該帳戶進行驗證。如果您使用預設服務帳戶,該帳戶必須具備 Cloud AlloyDB Client (
roles/alloydb.client
) 和 Service Usage Consumer (roles/serviceusage.serviceUsageConsumer
) IAM 角色。如要進一步瞭解 Google Cloud 的驗證方法,請參閱驗證總覽。