Cognito

은채의 성장통·2025년 2월 21일
0

AWS

목록 보기
79/79

AWS Cognito: 사용자 인증과 자격 증명 원리

AWS Cognito란?

AWS Cognito는 웹 및 모바일 애플리케이션 사용자를 인증하고 권한을 부여하는 서비스다.

이를 통해 사용자는 AWS 리소스 및 애플리케이션과 안전하게 상호작용할 수 있다.


AWS Cognito의 주요 개념

1️⃣ Cognito 사용자 풀 (User Pool)

  • 사용자 인증을 담당하는 서버리스 사용자 데이터베이스
  • 이메일, 비밀번호 등의 정보로 사용자를 등록하고 인증 가능
  • Google, Facebook 같은 소셜 로그인과 통합 가능
  • 다중 인증(MFA, Multi-Factor Authentication) 지원

2️⃣ Cognito 자격 증명 풀 (Identity Pool)

  • IAM 역할과 연계하여 AWS 리소스에 대한 액세스를 제어
  • 인증된 사용자에게 임시 AWS 자격 증명을 제공
  • Cognito 사용자 풀, 페더레이션 ID, 자체 인증 시스템을 통한 액세스 가능

AWS Cognito의 보안 및 연동

🔹 애플리케이션 로드 밸런서(ALB)와 통합

  • 사용자의 요청이 정당한지 확인 후, 인증 정보를 포함하여 백엔드에 전달
  • ALB에서 Cognito 사용자 풀과 연동하여 인증 절차 수행

🔹 페더레이션 아이덴티티 (Federated Identity)

  • Google, Facebook, Apple 같은 외부 ID 제공자를 사용하여 AWS 리소스 접근 가능
  • IAM 역할을 부여받아 AWS 서비스와 직접 연동

🔹 API Gateway와 직접 통합 가능

  • 사용자가 인증되면 API Gateway를 통해 AWS 서비스를 호출 가능
  • Lambda와 결합하여 완전한 서버리스 인증 시스템 구축 가능

AWS Cognito 자격 증명 원리

AWS Cognito는 사용자 인증(User Pool)과 권한 부여(Identity Pool)를 분리하여 동작한다.

사용자가 로그인하면, 토큰을 기반으로 AWS 리소스 접근 권한이 부여된다.

자격 증명 흐름

[사용자 로그인] → [Cognito 사용자 풀] → [JWT 토큰 발급] → [자격 증명 풀] → [IAM 역할 부여] → [AWS 리소스 접근]

Cognito 사용자 인증 및 자격 증명 원리 다이어그램

+------------------+       +-----------------------+       +------------------------+
|  웹/모바일 앱   | --->  |   Cognito 사용자 풀   | --->  |   JWT 인증 토큰 발급    |
+------------------+       +-----------------------+       +------------------------+
          |                          |                                 |
          |                          v                                 v
          |             +-----------------------+      +-----------------------+
          |             |  Cognito 자격 증명 풀 | ---> |      IAM 역할 부여      |
          |             +-----------------------+      +-----------------------+
          |                          |                                 |
          |                          v                                 v
          |                  +----------------+                 +----------------+
          |                  |   API Gateway  | ---> (AWS 서비스 접근)
          |                  +----------------+
          |                          |
          |                          v
          |                 +---------------------+
          |                 |  AWS 리소스 접근   |
          |                 +---------------------+

결론

AWS Cognito는 안전하고 확장 가능한 인증 및 권한 부여 시스템을 제공한다.

  • *사용자 풀(User Pool)**을 통해 인증을 처리하고,
  • *자격 증명 풀(Identity Pool)**을 통해 AWS 리소스에 대한 접근 권한을 부여한다.
  • IAM 역할과 연동하여 보안을 강화할 수 있으며,
  • API Gateway, ALB, 소셜 로그인 등과 유연하게 통합 가능하다.
profile
인생 별거 없어

0개의 댓글