AWS Cognito는 웹 및 모바일 애플리케이션 사용자를 인증하고 권한을 부여하는 서비스다.
이를 통해 사용자는 AWS 리소스 및 애플리케이션과 안전하게 상호작용할 수 있다.
AWS Cognito는 사용자 인증(User Pool)과 권한 부여(Identity Pool)를 분리하여 동작한다.
사용자가 로그인하면, 토큰을 기반으로 AWS 리소스 접근 권한이 부여된다.
[사용자 로그인] → [Cognito 사용자 풀] → [JWT 토큰 발급] → [자격 증명 풀] → [IAM 역할 부여] → [AWS 리소스 접근]
+------------------+ +-----------------------+ +------------------------+
| 웹/모바일 앱 | ---> | Cognito 사용자 풀 | ---> | JWT 인증 토큰 발급 |
+------------------+ +-----------------------+ +------------------------+
| | |
| v v
| +-----------------------+ +-----------------------+
| | Cognito 자격 증명 풀 | ---> | IAM 역할 부여 |
| +-----------------------+ +-----------------------+
| | |
| v v
| +----------------+ +----------------+
| | API Gateway | ---> (AWS 서비스 접근)
| +----------------+
| |
| v
| +---------------------+
| | AWS 리소스 접근 |
| +---------------------+
AWS Cognito는 안전하고 확장 가능한 인증 및 권한 부여 시스템을 제공한다.