Apache Guacamole は、Compute Engine 仮想マシン(VM)上のリモート デスクトップ プロトコル(RDP)、仮想ネットワーク コンピューティング(VNC)、Secure Shell プロトコル(SSH)を介して、リモート デスクトップにアクセスする完全なブラウザベースの方法を提供します。Identity-Aware Proxy(IAP)を使用すると、セキュリティが強化された Guacamole にアクセスできます。
このリファレンス アーキテクチャのドキュメントは、Google Kubernetes Engine(GKE)と Cloud SQL で Apache Guacamole をホストするサーバー管理者とエンジニアを対象としています。このドキュメントは、読者が Kubernetes と Cloud SQL for MySQL へのワークロードのデプロイに精通していることを前提としています。また、Identity and Access Management と Google Compute Engine の知識があることも前提としています。
アーキテクチャ
次の図は、Google Cloud ロードバランサが IAP で構成され、これにより GKE で実行されている Guacamole クライアントのインスタンスが保護される仕組みを示しています。
このアーキテクチャには次のコンポーネントが含まれています。
- Google Cloud ロードバランサ: トラフィックを複数のインスタンスに分散して、パフォーマンスの問題のリスクを軽減します。
- IAP: カスタム認証拡張機能によりセキュリティを強化します。
- Guacamole クライアント: GKE で実行され、guacd バックエンド サービスに接続します。
- Guacd バックエンド サービス: 1 つ以上の Compute Engine VM へのブローカーのリモート デスクトップ接続を仲介します。
- Cloud SQL の Guacamole データベース: Guacamole の構成データを管理します。
- Compute Engine インスタンス: Google インフラストラクチャでホストされる VM。
設計上の考慮事項
次のガイドラインは、セキュリティ、費用、パフォーマンスに関する組織の要件を満たすアーキテクチャを開発するために役立ちます。
セキュリティとコンプライアンス
このアーキテクチャでは、IAP を使用して Guacamole サービスへのアクセスを保護します。承認済みのユーザーは、カスタム IAP 認証拡張機能を使用して Guacamole インスタンスにログインします。詳しくは、GitHub のカスタム拡張機能をご覧ください。
(Guacamole ユーザー インターフェースから)ユーザーを追加する場合、これらの追加ユーザーには、IAM による権限と IAP-secured Web App User
ロールが必要です。
このデプロイにより作成される OAuth 構成は、内部に設定されます。この設定のため、Gacamole のデプロイに使用する組織と同じ組織で Google アカウントを使用する必要があります。組織外の Google アカウントを使用すると、HTTP/403 org_internal
エラーが発生します。
パフォーマンス
Google Cloud ロードバランサと GKE は、トラフィックを複数インスタンスに分散します。これにより、パフォーマンスの問題のリスクを軽減できます。
デプロイ
このアーキテクチャをデプロイするには、GKE と Cloud SQL に Apache Guacamole をデプロイするをご覧ください。
次のステップ
- クラスタのセキュリティの強化に関する GKE のガイダンスを確認する。
- アプリケーション レイヤで Secret を暗号化するを確認して、データベース認証情報や OAuth 認証情報などの Secret のセキュリティを向上させる。
- IAM Conditions で、Gacamole へのユーザー アクセスをより詳細に制御する方法を確認する。
- IAP インテグレーションの仕組みについて、GitHub リポジトリにあるカスタム認証プロバイダを確認する。
- Cloud アーキテクチャ センターで、リファレンス アーキテクチャ、図、ベスト プラクティスを確認する。