如要為 AlloyDB for PostgreSQL 工作負載選取合適的網路拓撲和連線方法,請比較私人 IP (私人服務存取權或 Private Service Connect)、公開 IP、直接連線、AlloyDB Auth Proxy 和 AlloyDB 語言連接器:
- 要與 AlloyDB 搭配使用的網路設定類型。
- 如何安全連線。
- 連線最佳做法。
- 工作負載位置對連線需求的影響。
詳情請參閱「連線總覽」。
連線至 AlloyDB 的建議選項
請參閱下表,瞭解工作負載的建議連線選項:
- 建議使用直接連線、語言連接器或 Auth Proxy,連線至私人 IP (私人服務存取權或 Private Service Connect) 和公開 IP。
- 連線需求,例如無伺服器 VPC 存取連接器和直連虛擬私有雲輸出。詳情請參閱「比較直連虛擬私有雲輸出和虛擬私有雲連接器」。
- 私人 IP (私人服務存取權與 Private Service Connect) 和公開 IP 的注意事項。
評估工作負載
選擇連線選項前,請先評估工作負載。AlloyDB 支援工作負載環境的連線,包括:
- Cloud Run、Cloud Shell 和非 Google SaaS 產品
- Cloud Run functions
- App Engine 彈性環境和 App Engine 標準環境
- Google Kubernetes Engine 和 Compute Engine
地端部署環境
工作負載環境 私人 IP 公開 IP 說明 直接 連接器 直接 連接器 開發人員筆電 ❌️ ❌️ ✅ ✅ 建議您使用 gcloud beta alloydb connect指令。或者,您也可以使用公開 IP 搭配 Auth Proxy。您可以連線至私人 IP,但必須另外設定。Cloud Shell ❌ ❌ ✅ ✅ 建議您使用 gcloud beta alloydb connect指令。或者,您也可以透過 Cloud Shell 使用具備公開 IP 的 Auth Proxy。您可以連線至私人 IP,但必須另外設定。Cloud Run、Cloud Run functions ✅ ✅ ✅ ✅ 必須使用無伺服器 VPC 存取連接器或直連虛擬私有雲輸出。 App Engine 標準、彈性環境 ✅ ✅ ✅ ✅ 必須使用無伺服器 VPC 存取連接器。 GKE、Compute Engine ✅ ✅ ✅ ✅ 建議您使用私人 IP。如果不需要傳遞虛擬私有雲網路對等互連,請使用私人服務存取權。否則請使用 Private Service Connect。 地端部署 ✅ ✅ ✅ ✅ 私人 IP 需要從地端部署到目標執行個體的網路路徑。搭配使用公開 IP 與語言連接器或 Auth Proxy,是安全的替代方案,不需要進行繁複的網路設定。
依據工作負載選擇連線方式的最佳做法
連線至 AlloyDB 時,請根據工作負載環境考量下列事項。
Cloud Shell
- 使用驗證 Proxy 和公開 IP 連線至 Cloud Shell。Cloud Shell 不支援連線至虛擬私有雲 (VPC) 網路。無法連線至私人服務存取權或 Private Service Connect 執行個體。此外,Cloud Shell 沒有穩定的外送 IP 位址,可用於授權的外部網路。如果不使用 Auth Proxy 或語言連接器,則必須允許所有 IP 位址範圍,例如
0.0.0.0/0。不建議對正式環境執行個體採用這種做法。
Cloud Run 和 Cloud Run functions
- 如果是私人 IP,直接連線和語言連接器或 Auth Proxy 都應使用直連虛擬私有雲輸出。
- 如要使用公開 IP,必須使用語言連接器或 Auth Proxy。或者,您也可以在授權的外部網路中允許所有 IP 位址範圍 (例如
0.0.0.0/0),但基於安全風險,不建議對正式版執行個體採取這種做法。
App Engine 標準環境和 App Engine 彈性環境
- 無論您使用語言連接器或 Auth Proxy,都請使用無伺服器 VPC 存取連接器,以便使用私人 IP。
- 如要使用公開 IP,必須使用語言連接器或 Auth Proxy。或者,您也可以在授權的外部網路中,允許所有 IP 位址範圍 (例如
0.0.0.0/0)。不過,基於安全風險,我們不建議在正式環境執行個體採用這種做法。
GKE 與 Compute Engine
- 您可以使用直接連線和語言連接器,或 Auth Proxy 連線至 AlloyDB。
地端部署
- 您可以使用直接連線和語言連接器或 Auth Proxy 連線至 AlloyDB。語言連接器和 Auth Proxy 不會建立網路路徑。確認工作負載和 AlloyDB 執行個體之間有網路路徑。
使用 AlloyDB Auth Proxy 和連接器建立安全連線
AlloyDB 語言連接器和 AlloyDB Auth Proxy 提供更強大的安全防護功能,例如 Identity and Access Management (IAM) 資料庫驗證和 mTLS,但這些功能需要額外設定。直接連線預設會加密,但不支援用戶端憑證或更高的 SSL 模式:verify-ca 和 verify-full。建議您使用語言連接器或 Auth Proxy 搭配公開 IP,並僅在無法使用語言連接器或 Auth Proxy 時,才使用私人 IP 的直接連線。
IAM 資料庫驗證支援兩種方法:個別驗證和群組驗證。資料庫版本 POSTGRES_15 以上支援群組驗證,但不支援代管連線集區。
| 連線方法 | 加密連線 | IAM 驗證 | IAM 授權 | mTLS |
|---|---|---|---|---|
| 直接連結 | ✅ | ✅ | ❌ | ❌ |
| 語言連接器或 Auth Proxy | ✅ | ✅ | ✅ | ✅ |
安全連線的最佳做法
- 建立叢集時,您必須指定私人 IP 介面,才能建立叢集。如要使用公開 IP,建議您選擇 Private Service Connect 做為私人 IP 介面。
- 使用語言連接器或 Auth Proxy,即可享有 IAM 授權和驗證、mTLS 等安全防護功能,但需要進行一些設定。舉例來說,如果您想將 AlloyDB Auth Proxy 做為 sidecar 執行,或想使用 AlloyDB 語言連接器,這個方法就很合適。如果使用語言連接器或 Auth Proxy,資料庫連線的延遲時間可能會稍微增加。
- 如要獲得最佳效能,或無法使用語言連接器或 Auth Proxy,請使用直接連線。直接連線預設會加密 (
sslmode=require),但不支援用戶端憑證或更高的 SSL 模式。只有在無法使用語言連接器或 Auth Proxy 時,才應使用直接連線。
評估網路拓撲
在網路拓撲方面,建議您使用私人服務存取權連線至 AlloyDB。使用 Private Service Connect,避免多個虛擬私有雲網路發生傳遞對接問題。公開 IP 適用於非Google Cloud SaaS 產品的連線,尤其是在私人 IP 不實用的情況下。
| 網路拓撲 | 多虛擬私有雲連線 | 非 Google SaaS 用戶端 | 支援地端部署連線 | 說明 |
|---|---|---|---|---|
| 私人服務存取權 | ❌ | ❌ | ✅ | 系統預設不支援遞移虛擬私有雲連線。您可以手動執行 SOCKS5 Proxy,建立跨虛擬私有雲連線,但這個方法較為複雜。 |
| Private Service Connect | ✅ | ❌ | ✅ | 如要從多個虛擬私有雲網路連線至 AlloyDB,這是最簡單的設定方式。 |
| 公開 IP | ✅ | ✅ | ✅ | 為避免必須找出來源工作負載的 CIDR 範圍,才能授權外部網路,建議將公開 IP 與語言連接器或 Auth Proxy 搭配使用。 |
依據網路拓撲建立連線的最佳做法
- 預設為私人服務連線。
- 處理多個虛擬私有雲網路時,請使用 Private Service Connect 規避傳遞對等互連問題。
- 如果是與非Google Cloud 託管於 Google Cloud的軟體即服務 (SaaS) 產品整合,請選擇公開網路拓撲,特別是在無法使用私人 IP 連線的情況下。私人 IP 預設為啟用,因此在這些情況下,您必須明確設定公開 IP。
- 使用公開 IP 時,請盡可能使用語言連接器或 Auth Proxy,這樣不必設定授權的外部網路,就能建立安全連線。
後續步驟
- 建立及查詢資料庫。
- 使用 gcloud CLI 連線。
- 從 Compute Engine 連線。
- 使用驗證 Proxy 從 Cloud Shell 連線。
- 透過 Cloud VPN 或 Cloud Interconnect 連線。
- 使用 Data Agent Kit 連結。
- 瞭解 AlloyDB 連線概念。
- 瞭解 IAM 資料庫驗證機制。