Apache Guacamole 提供完全以瀏覽器為基礎的方式,透過遠端桌面通訊協定 (RDP)、虛擬網路運算 (VNC) 和安全殼層通訊協定 (SSH),在 Compute Engine 虛擬機器 (VM) 上存取遠端桌面。Identity-Aware Proxy (IAP) 可提供更安全的 Guacamole 存取權。
本參考架構文件適用於想在 Google Kubernetes Engine (GKE) 和 Cloud SQL 上託管 Apache Guacamole 的伺服器管理員和工程師。這份文件假設您熟悉如何將工作負載部署至 Kubernetes 和 MySQL 適用的 Cloud SQL。此外,這份文件也假設您熟悉 Identity and Access Management 和 Google Compute Engine。
架構
下圖顯示如何使用 IAP 設定 Google Cloud 負載平衡器,保護在 GKE 中執行的 Guacamole 用戶端執行個體:
這個架構包含下列元件:
- Google Cloud 負載平衡器:將流量分配至多個執行個體,降低發生效能問題的風險。
- IAP:透過自訂驗證擴充功能提升安全性。
- Guacamole 用戶端:在 GKE 中執行,並連線至 guacd 後端服務。
- Guacd 後端服務:將遠端桌面連線代理至一或多個 Compute Engine VM。
- Cloud SQL 中的 Guacamole 資料庫:管理 Guacamole 的設定資料。
- Compute Engine 執行個體:託管於 Google 基礎架構的 VM。
設計須知
下列指南可協助您開發符合貴組織安全性、成本和效能需求的架構。
安全性與法規遵循
這個架構使用 IAP 保護 Guacamole 服務的存取權。授權使用者透過自訂 IAP 驗證擴充功能登入 Guacamole 執行個體。詳情請參閱 GitHub 中的自訂擴充功能。
當您 (透過 Guacamole 使用者介面) 新增其他使用者時,這些使用者必須透過 IAM 取得 IAP-secured Web App User 角色權限。
這項部署作業建立的 OAuth 設定會設為「internal」。由於這項設定,您必須使用與部署 Guacamole 時相同的組織中的 Google 帳戶。如果您使用組織外部的 Google 帳戶,會收到 HTTP/403 org_internal 錯誤。
效能
Google Cloud 負載平衡器和 GKE 會將流量分配到多個執行個體,有助於降低發生效能問題的風險。
部署作業
如要部署這個架構,請參閱「在 GKE 和 Cloud SQL 上部署 Apache Guacamole」。
後續步驟
- 請參閱 GKE 指南,瞭解如何強化叢集安全性。
- 請參閱「在應用程式層加密 Secret」,瞭解如何提高 Secret 的安全性,例如資料庫憑證和 OAuth 憑證。
- 請參閱 IAM 條件,瞭解如何更精細地控管使用者對 Guacamole 的存取權。
- 如要進一步瞭解 IAP 整合的運作方式,請查看 GitHub 存放區中的自訂驗證供應商。
- 如要查看更多參考架構、圖表和最佳做法,請瀏覽 Cloud Architecture Center。
貢獻者
作者:Richard Grime | 英國公共部門首席架構師
其他貢獻者:
- Aaron Lind | 應用程式創新解決方案工程師
- Eyal Ben Ivri | 雲端解決方案架構師
- Ido Flatow | 雲端解決方案架構師