Apache Guacamole는 Compute Engine 가상 머신(VM)에서 원격 데스크톱 프로토콜(RDP), 가상 네트워크 컴퓨팅(VNC), 보안 셸 프로토콜(SSH)을 통해 원격 데스크톱에 액세스하는 완전한 브라우저 기반 방법을 제공합니다. IAP(Identity-Aware Proxy)는 향상된 보안으로 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 사용자 인터페이스를 통해 사용자를 추가하면 이 추가 사용자는 IAP-secured Web App User
역할을 가진 IAM을 통해 권한이 있어야 합니다.
이 배포로 생성되는 OAuth 구성은 내부로 설정됩니다.
이 설정으로 인해 Guacamole을 배포하는 데 사용한 조직과 동일한 조직의 Google 계정을 사용해야 합니다. 조직 외부에서 Google 계정을 사용하는 경우 HTTP/403 org_internal
오류가 발생합니다.
성능
Google Cloud 부하 분산기와 GKE는 여러 인스턴스에 트래픽을 분산하므로 성능 문제 위험을 줄일 수 있습니다.
배포
이 아키텍처를 배포하려면 GKE 및 Cloud SQL에 Apache Guacamole 배포하기를 참조하세요.
다음 단계
- 클러스터 보안 강화에 대한 GKE 안내 검토하기
- 애플리케이션 레이어에서 보안 비밀 암호화를 검토하여 데이터베이스 사용자 인증 정보 및 OAuth 사용자 인증 정보와 같은 보안 비밀의 보안 강화하기
- IAM 조건을 검토하여 Guacamole에 대한 사용자 액세스를 보다 세밀하게 제어하는 방법 알아보기
- GitHub 저장소에서 커스텀 인증 제공업체를 검토하여 IAP 통합의 작동 방식에 대해 자세히 알아보기
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.