連線總覽

如要將應用程式和工具安全地連線至 AlloyDB for PostgreSQL 資料庫,您可以設定網路、授權、驗證和連線集區:

  • 網路:AlloyDB 執行個體在虛擬私有雲 (VPC) 網路中使用公開或私人 IP 位址。有多種選項可讓您從虛擬私有雲網路外部執行的應用程式建立安全連線。

  • 授權:AlloyDB Auth Proxy 和 AlloyDB 語言連接器可讓您使用 Identity and Access Management (IAM) 控管資料存取權。您可以使用虛擬私有雲網路的防火牆規則,進一步調整 AlloyDB 資源的存取權。

  • 驗證:使用標準 PostgreSQL 使用者驗證技術登入執行個體。AlloyDB 也支援使用標準 PostgreSQL 使用者角色,進行以 IAM 為基礎的驗證。

  • 集區:為提升可靠性、效能和擴充性,請使用標準 PostgreSQL 用戶端連線集區,以及伺服器端代管連線集區。

如要瞭解如何為工作負載選擇合適的連線設定,請參閱「選擇連線選項」。

網路

雖然 AlloyDB 執行個體包含多個節點,但應用程式會透過單一靜態 IP 位址連線至執行個體。這個位址可以是您在首次設定執行個體叢集時,於虛擬私有雲網路指定的私人 IP 位址,也可以是允許從虛擬私有雲網路外部直接連線的公開 IP 位址。

私人 IP

使用私人 IP 設定 AlloyDB 時,執行個體會在虛擬私有雲網路中取得私人 IP 位址。

私人 IP 位址會透過兩種方式影響應用程式連線:

  • 在專案虛擬私有雲網路中其他位置執行的應用程式,可以連線至執行個體,或代表執行個體的 Proxy,不需額外步驟或資源。

    舉例來說,「從 Compute Engine 連線」說明如何在虛擬私有雲網路中的 Compute Engine VM 上執行 psql 指令列程式,連線至 AlloyDB 執行個體。

  • 在虛擬私有雲網路外執行的應用程式,需要中介服務才能連線至 AlloyDB 執行個體。解決方案包括在執行個體虛擬私有雲網路中的 VM 上執行 Proxy 服務,或使用其他Google Cloud 產品,在應用程式和虛擬私有雲網路之間建立永久連線。

    詳情請參閱「從虛擬私有雲外部連線至叢集」。

透過私人 IP 建立的連線通常延遲時間較短,且攻擊向量有限,因為這類連線不需要周遊網際網路。

如要進一步瞭解 AlloyDB 的私人 IP,請參閱「私人 IP 簡介」。

公開 IP

為 AlloyDB 設定公開 IP 時,執行個體會取得公開 IP 位址,用於處理可透過公開網際網路存取的傳入連線。您也可以視需要使用授權的外部網路,以 CIDR 格式指定可存取執行個體的 IP 位址範圍。

建議您搭配使用公開 IP 和 AlloyDB 語言連接器或 AlloyDB Auth Proxy,確保用戶端與執行個體之間的連線安全。

如要進一步瞭解如何為執行個體新增公開 IP 位址和授權外部網路,請參閱「使用公開 IP 連線」。

AlloyDB 也支援從執行個體連至公開網際網路的傳出連線。啟用傳出公開 IP 後,AlloyDB 會提供一致且可預測的來源 IP 位址,用於從 AlloyDB 執行個體傳送至公開網際網路的流量。啟用這項功能後,AlloyDB 會佈建一組靜態公開 IP 位址,專門用於執行個體的傳出連線。

外送連線特別適用於下列情境:

  • 資料庫遷移:使用資料庫遷移服務將資料從外部資料庫遷移至 AlloyDB 時,您可以設定外部資料庫的防火牆,允許來自 AlloyDB 執行個體特定傳出 IP 位址的連線,確保資料移轉路徑安全無虞。

  • 外部資料包裝函式:如要使用 postgres_fdw 或 oracle_fdw 等外部資料包裝函式,在 AlloyDB 查詢外部資料庫中的資料,可以將執行個體的傳出 IP 位址加入外部資料庫的許可清單。這項設定可讓 AlloyDB 安全地連線及查詢外部資料來源。

啟用傳出公開 IP 後,您可以在 Google Cloud 控制台或使用 gcloud CLI 查看指派的 IP 位址。接著,您可以使用這些 IP 位址,在外部系統設定防火牆規則或存取控管清單 (ACL),授予 AlloyDB 執行個體外部系統的存取權。

如要進一步瞭解如何啟用傳出公開 IP,請參閱「為執行個體新增傳出連線」。

授權

您可以使用 AlloyDB 語言連接器、AlloyDB Auth Proxy 或虛擬私有雲防火牆規則,控管 AlloyDB 叢集的存取權。

AlloyDB 語言連接器

AlloyDB 語言連接器是用戶端程式庫,可在使用 TLS 1.3 和 IAM 授權連線至 AlloyDB 叢集時,提供自動化 mTLS。

您可以直接從各自的程式設計語言使用這些程式庫。這些程式庫提供與 Auth Proxy 相同的功能,但不需要外部程序。這個方法可提升安全性,並減少連線至 AlloyDB 的設定需求。

詳情請參閱「AlloyDB 語言連接器總覽」。

使用 gcloud 連線

如要進行互動式資料庫工作階段,可以使用 gcloud beta alloydb connect 指令。這個指令會自動管理 AlloyDB Auth Proxy 的本機執行個體,並為您啟動 psql 用戶端工作階段,簡化連線程序。

詳情請參閱「使用 gcloud 連線」。

使用 IAM 和 AlloyDB Auth Proxy 控管存取權

雖然您可以透過執行個體的 IP 位址直接連線,但建議在正式環境中使用 AlloyDB Auth Proxy。這項工具提供以 IAM 為基礎的存取控管機制,以及 Proxy 與叢集之間的端對端加密。

詳情請參閱「關於 AlloyDB Auth Proxy」。

使用防火牆規則限制虛擬私有雲存取權

與任何雲端式專案一樣,您應調整虛擬私有雲網路的防火牆規則,將網路存取權限制在應用程式連線來源的 IP 範圍或子網路。這項做法對外部應用程式尤其重要,詳情請參閱「從虛擬私有雲外部連線至叢集」。

如要進一步瞭解如何設定虛擬私有雲網路的防火牆,請參閱「虛擬私有雲防火牆規則」。

驗證

AlloyDB 支援兩種資料庫使用者,各自有不同的資料庫驗證方式:

  • 標準 PostgreSQL 使用者角色會使用使用者名稱和密碼進行驗證。您可以使用一般的 PostgreSQL 使用者管理技術管理這些帳戶。詳情請參閱「使用內建驗證機制管理 PostgreSQL 使用者」。

  • IAM 使用者和服務帳戶會使用 OAuth 2.0 權杖,以資料庫使用者身分進行驗證。您可以使用Google Cloud IAM 系統管理這些帳戶。詳情請參閱「管理 IAM 驗證」。

透過 AlloyDB 執行個體完成驗證後,應用程式就能將該執行個體視為一般的 PostgreSQL 伺服器。建立執行個體的網路和授權路徑後,您可以使用標準 PostgreSQL 技術登入執行個體並存取資料。無論是使用 psql 等工具手動登入,還是使用 PostgreSQL 程式碼程式庫以程式輔助方式連線至資料庫,都適用這項原則。

一般來說,首次驗證新的 AlloyDB 叢集時,您需要以 postgres 使用者身分登入主要執行個體,並使用建立叢集時指定的密碼。接著,您可以建立不具備管理員權限的資料庫使用者,供應用程式使用。

如果在建立叢集時未設定 postgres 的密碼,就無法登入叢集。如要登入,請為 postgres 設定密碼,或建立其他使用者。詳情請參閱「使用內建驗證機制管理 PostgreSQL 使用者」。

匯總

連線集區技術可確保工作負載與資料庫之間的連線可靠高效。這項功能在用戶端和伺服器端都很有用。

用戶端連線集區

連線至 AlloyDB 時,請使用用戶端連線集區。用戶端連線集區會建立多個資料庫連線,並確保這些連線在工作負載的生命週期內保持有效且正常運作。這種做法可確保工作負載與資料庫之間的連線穩定可靠。

  • 透過指令列手動執行查詢時。
  • 使用的語言不支援用戶端連線集區。
  • 工作負載為暫時性,不會維持長期連線。

您可以使用任何支援 PostgreSQL 的標準用戶端連線集區。請注意以下事項:

  • 用戶端連線集區程式庫有時會與 PostgreSQL 驅動程式分開。
  • PostgreSQL 驅動程式有時會在同一個程式庫中,提供用戶端連線集區功能。

以下是常用的連線集區程式庫:

如果程式庫支援 PostgreSQL,就能與 AlloyDB 搭配使用。

設定用戶端連線集區

如要讓用戶端連線集區發揮最佳效能,您可能需要設定集區大小。請先使用以下公式:

connections = (vCPU count * 2) + 1

詳情請參閱「關於集區大小」。視實際負載而定,您可能需要進行額外調整。

使用代管連線集區

除了用戶端連線集區,AlloyDB 也支援伺服器端連線集區,並提供代管連線集區。

雖然代管連線集區可用於任何交易工作負載,但最適合用於包含較多短期連線的應用程式,或可能出現連線激增的應用程式。詳情請參閱「設定代管連線集區」。

後續步驟