본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] Cognito User Pools

728x90
반응형

AWS Cognito User Pools(CUP) 이해하기

AWS Cognito User Pools(CUP)는 웹 및 모바일 애플리케이션 사용자를 위한 서버리스 인증 및 사용자 관리 솔루션입니다. 이를 통해 사용자 인증 과정을 간소화하고, 강력한 보안 기능을 제공합니다.


Cognito User Pools란?

Cognito User Pools는 다음과 같은 기능을 지원하는 서버리스 데이터베이스입니다:

  1. 기본 사용자 인증: 사용자 이름 또는 이메일 + 비밀번호 조합을 사용한 로그인
  2. 비밀번호 재설정: 사용자가 비밀번호를 손쉽게 변경할 수 있음
  3. 이메일 및 전화번호 인증: 계정 보안을 위한 추가 인증 단계
  4. 다중 요소 인증(MFA): 더 안전한 로그인 환경 제공
  5. Federated Identities 지원: Google, Facebook 등 소셜 로그인과 SAML 기반 ID 공급자와 연동
  6. 노출된 자격 증명 차단: AWS가 웹에서 노출된 사용자 자격 증명을 스캔하여 차단

사용자가 로그인하면 **JWT(JSON Web Token)**를 반환받아 애플리케이션 내 인증 및 권한 관리를 처리합니다.


주요 구성 요소 및 작동 원리

1. Cognito User Pool

Cognito User Pool은 사용자 정보를 저장하는 내부 데이터베이스입니다.

  • 애플리케이션 로그인: 모바일 또는 웹 애플리케이션에서 사용자 인증을 처리
  • JWT 반환: 로그인 성공 시 JWT를 반환하여 사용자 세션 및 권한을 관리

2. Federated Identities

  • Google, Facebook, Amazon과 같은 소셜 로그인 기능 제공
  • SAML 또는 OpenID Connect와 같은 표준 프로토콜을 지원하는 ID 공급자와 통합

3. AWS 서비스 통합

Cognito User Pools는 AWS의 여러 서비스와 통합됩니다:

  • API Gateway:
    1. 사용자가 Cognito User Pool에서 인증을 진행
    2. JWT를 반환받아 API Gateway로 전달
    3. Gateway는 JWT의 유효성을 평가하여 백엔드 서비스로 접근 권한 부여
  • Application Load Balancer(ALB):
    1. Listener와 Rule을 통해 사용자 인증
    2. 인증 성공 시 EC2, Lambda, ECS와 같은 Target Group으로 요청 전달

장점

  1. 서버리스 환경: 별도의 서버를 관리할 필요 없이 인증 및 사용자 관리 가능
  2. 보안 강화: 다중 요소 인증(MFA), 소셜 로그인 및 노출된 자격 증명 차단 기능 제공
  3. 유연한 통합: AWS 서비스뿐만 아니라 외부 ID 공급자와 손쉽게 연동 가능

정리

AWS Cognito User Pools는 사용자 인증 및 관리에 필요한 모든 기능을 제공하며, 이를 통해 개발자는 애플리케이션의 보안을 강화하고 인증 시스템을 간소화할 수 있습니다.

728x90
반응형