본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP] Identity-Aware Proxy

by BTC_오은영석사 2023. 9. 27.

베하!!

안녕하세요 금쪽상담소의 오은영석사와 금쪽이 입니다.

우리 금쪽이들을 보러 한걸음에 달려오게 되었습니다~!

오늘의 주제는 바로 IAP에 대한 내용입니다. 이것의 개념과 어떻게 구성하는지에 대해 알아보도록 하겠습니다.

그럼 바로 알아볼까요?! GO! GO!

 


IAP ( Identity-Aware Proxy ) 란?

고객이 접근을 할 떄 계정이 맞는지 permission이 맞는지 IAP가 확인하고 인증을 거쳐서 서비스를 사용할 수 있게 해줍니다. 즉, 사이트를 접근 하기전에 인증을 거칠때 사용합니다.

 

 

IAP ( Identity-Aware Proxy ) 특징

  • IAP를 사용하면 HTTPS로 액세스한 애플리케이션에 대한 설정할 수 있으므로 네트워크 수준 방화벽을 사용하지 않고 애플리케이션 수준 액세스 제어 모델을 사용할 수 있음
  • IAP 정책은 조직 전체에서 확장
  • 중앙 집중식 액세스 제어 : 중앙에서 액세스 정책을 정의하고 이를 모든 애플리케이션 및 리소스에 적용 가능
  • 정책 생성 및 적용을 위해 전용 팀을 할당할 경우, 모든 애플리케이션에서의 잘못된 정책 정의 또는 구현으로부터 프로젝트를 보호 가능
  • 클라우드 및 온프레미스 앱에서 작동
     
     

 

 

작동 방식

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

GKE 작동방식

 

 

IAP 액세스 설정 (GKE)

1. Identity-Aware Proxy 페이지로 이동합니다.

2. IAP로 보호하려는 프로젝트를 선택합니다.

3. 액세스 권한을 부여할 리소스 옆에 있는 체크박스를 선택합니다.백엔드 서비스를 사용할 수 있는지 확인하려면 다음 gcloud 명령어를 실행합니다.

gcloud compute backend-services list

4. 리소스가 표시되지 않으면 리소스가 생성되었고 BackendConfig Compute Engine 인그레스 컨트롤러가 동기화되었는지 확인합니다.

5. 오른쪽 패널에서 주 구성원 추가를 클릭합니다.

6. 표시된 주 구성원 추가 대화상자에서 프로젝트에 대한 IAP 보안 웹 앱 사용자 역할이 있어야 하는 그룹 또는 개별 사용자의 이메일 주소를 입력합니다.다음과 같은 종류의 주 구성원이 이 역할을 가질 수 있습니다.

  • Google 계정: user@gmail.com
  • Google 그룹: admins@googlegroups.com
  • 서비스 계정: server@example.gserviceaccount.com
  • Google Workspace 도메인: example.com

액세스 권한이 있는 Google 계정을 추가해야 합니다.

7. 역할 드롭다운 목록에서 Cloud IAP > IAP 보안 웹 앱 사용자를 선택합니다.

8. 저장을 클릭합니다.

 

 

인증

  • IAP가 사용 설정된 경우 보호되는 리소스 정보가 IAP 인증 서버로 전송됩니다. 여기에는 요청 헤더 또는 쿠키에 있는 Google Cloud 프로젝트 번호, 요청 URL, 모든 IAP 사용자 인증 정보와 같은 정보가 포함
  • IAP가 사용자의 브라우저 사용자 인증 정보를 확인 할때 아무 것도 존재하지 않으면 로그인을 위해 브라우저 쿠키에 토큰을 저장하는 OAuth 2.0 Google 계정 로그인 과정으로 사용자가 리디렉션됩니다.
  • 기존 사용자에 대해 Google 계정을 만들어야 할 경우, Google 클라우드 디렉토리 동기화를 사용하여 Active Directory 또는 LDAP 서버와 동기화할 수 있습니다.
  • 요청 사용자 인증 정보가 유효하면, 인증 서버가 해당 사용자 인증 정보를 사용하여 사용자의 ID(이메일 주소 및 사용자 ID)를 가져옵니다. 그 후 인증 서버가 ID를 사용하여 사용자의 IAM 역할을 확인하고 사용자에게 리소스에 액세스할 권한이 있는지 확인합니다.
  • Compute Engine 또는 Google Kubernetes Engine을 사용하는 경우 VM(가상 머신)의 애플리케이션 제공 포트에 액세스할 수 있는 사용자가 IAP 인증을 우회할 수 있습니다.
  • Compute Engine 및 GKE 방화벽 규칙은 IAP 보안 애플리케이션과 동일한 VM에서 실행되는 코드 액세스에 대한 보호를 제공할 수 없습니다. 방화벽 규칙은 다른 VM의 액세스에 대한 보호를 제공할 수 있지만, 올바르게 구성되어 있어야 합니다.

 


 

이렇게 IAP에 대해 알아보는 시간을 가졌습니다! 유익한 시간이였길 바랍니다.

그럼 다음시간에 돌아오겠습니다~ 다음 시간에 만나요! 즐거운 추석보내세요!

베빠! 

 

출처 : https://cloud.google.com/iap/docs/concepts-overview?hl=ko

댓글