Cloud Identity-Aware Proxy 개요

이 페이지에서는 Cloud IAP(Identity-Aware Proxy)의 기본 개념을 설명합니다.

Cloud IAP를 사용하면 HTTPS로 액세스되는 애플리케이션에 대해 중앙 승인 레이어를 설정할 수 있으므로, 네트워크 수준의 방화벽을 사용하는 대신 애플리케이션 수준의 액세스 제어 모델을 사용할 수 있습니다.

Cloud IAP 정책은 조직 전체에서 확장됩니다. 중앙에서 액세스 정책을 정의하고 이를 모든 애플리케이션 및 리소스에 적용할 수 있습니다. 정책 생성 및 적용을 위해 전용 팀을 할당할 경우, 모든 애플리케이션에서의 잘못된 정책 정의 또는 구현으로부터 프로젝트를 보호할 수 있습니다.

Cloud IAP를 사용해야 하는 경우

애플리케이션 및 리소스에 대해 액세스 제어 정책을 적용하려는 경우에 Cloud IAP를 사용합니다. Cloud IAP는 서명된 헤더 또는 App Engine 표준 환경 사용자 API와 함께 작동하여 앱을 보호합니다. Cloud IAP를 사용하면 그룹 기반의 애플리케이션 액세스를 설정할 수 있습니다. 계약업체가 아닌 직원만 리소스에 액세스하거나 특정 부서만 액세스하도록 설정할 수 있습니다.

Cloud IAP 작동 방법

Cloud IAP로 애플리케이션 또는 리소스가 보호되는 경우, 사용자라고도 알려진, 올바른 Cloud Identity and Access Management(Cloud IAM) 역할이 있는 구성원만 이 프록시를 통해 여기에 액세스할 수 있습니다. Cloud IAP를 통해 애플리케이션 또는 리소스에 대한 액세스 권한을 사용자에게 부여할 경우, VPN 없이 사용 중인 제품으로 구현된 미세 조정된 액세스 제어가 적용됩니다. 사용자가 Cloud IAP 보안 리소스에 액세스하려고 시도하면 Cloud IAP가 인증 및 승인 검사를 수행합니다.

App Engine
Cloud IAP를 사용할 때 App Engine의 요청 경로 다이어그램
Compute Engine
Cloud IAP를 사용할 때 Compute Engine 및 Kubernetes Engine 요청 경로 다이어그램
GKE
Cloud IAP를 사용할 때 Compute Engine 및 Kubernetes Engine 요청 경로 다이어그램

인증

GCP(Google Cloud Platform) 리소스에 대한 요청은 App Engine 또는 Cloud Load Balancing(HTTPS)을 통해 수행됩니다. 이러한 제품의 서비스 제공 인프라 코드는 앱 또는 백엔드 서비스에 대해 Cloud IAP가 사용 설정되었는지 확인합니다. Cloud IAP가 사용 설정된 경우, 보호되는 리소스 정보가 Cloud IAP 인증 서버로 전송됩니다. 여기에는 요청 헤더 또는 쿠키에 있는 GCP 프로젝트 번호, 요청 URL, 모든 Cloud IAP 사용자 인증 정보와 같은 정보가 포함됩니다.

그런 후 Cloud IAP가 사용자의 브라우저 사용자 인증 정보를 확인합니다. 아무 것도 존재하지 않으면, 이후 로그인을 위해 브라우저 쿠키에 토큰을 저장하는 OAuth 2.0 Google 계정 로그인 과정으로 사용자가 리디렉션됩니다. 기존 사용자에 대해 Google 계정을 만들어야 할 경우, Google 클라우드 디렉토리 동기화를 사용하여 Active Directory 또는 LDAP 서버와 동기화할 수 있습니다.

요청 사용자 인증 정보가 유효하면, 인증 서버가 해당 사용자 인증 정보를 사용하여 사용자의 ID(이메일 주소 및 사용자 ID)를 가져옵니다. 그런 후 인증 서버가 이 ID를 사용해서 사용자의 Cloud IAM 역할을 확인하고 사용자가 리소스에 액세스하도록 승인되었는지 확인합니다.

Compute Engine 또는 Google Kubernetes Engine을 사용하는 경우 VM(가상 머신)의 애플리케이션 제공 포트에 액세스할 수 있는 사용자가 Cloud IAP 인증을 우회할 수 있습니다. Compute Engine 및 GKE 방화벽 규칙은 Cloud IAP 보안 애플리케이션과 동일한 VM에서 실행되는 코드 액세스에 대한 보호를 제공할 수 없습니다. 방화벽 규칙은 다른 VM의 액세스에 대한 보호를 제공할 수 있지만, 올바르게 구성되어 있어야 합니다. 보안을 위한 개발자 책임을 알아보세요.

승인

인증 후에는 Cloud IAP가 관련 Cloud IAM 정책을 적용하여 사용자가 요청된 리소스에 액세스하도록 승인되었는지 여부를 확인합니다. 리소스가 존재하는 GCP Console 프로젝트에 대해 IAP 보안 웹 앱 사용자 역할이 사용자에게 있으면, 애플리케이션 액세스가 승인됩니다. IAP 보안 웹 앱 사용자 역할 목록을 관리하려면 GCP Console의 Cloud IAP 패널을 사용하세요.

리소스에 대해 Cloud IAP를 설정하면 OAuth 2.0 클라이언트 ID 및 보안 비밀이 자동으로 생성됩니다. 자동 생성된 OAuth 2.0 사용자 인증 정보를 삭제하면 Cloud IAP가 올바르게 작동하지 않습니다. OAuth 2.0 사용자 인증 정보는 GCP Console API 및 서비스에서 보고 관리할 수 있습니다.

개발자 책임

Cloud IAP는 App Engine 또는 Cloud Load Balancing HTTP(S)에 대한 모든 요청의 인증 및 승인을 보호합니다. Cloud IAP는 프로젝트 내의 다른 VM과 같이, 프로젝트 내의 활동에 대한 보호를 제공하지 않습니다.

보안을 위해서는 다음과 같은 예방 조치를 취해야 합니다.

  • 서비스 제공 인프라에서 시작되지 않는 트래픽에 대해 보호 기능을 제공하도록 방화벽 및 부하 분산기를 구성합니다.
  • 서명된 헤더 또는 App Engine 표준 환경 사용자 API를 사용합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Identity-Aware Proxy 문서