Study/개발일지
[백엔드TIL] AWS serverless 개발 -cognito 개념
아이바
2023. 10. 20. 15:07
AWS cognito란?
- 유저 계정 관리, 자격증명(토큰 관리)를 따로 DB사용과, Security 구현 없이 사용할 수 있게 하는 AWS 기능.
User pool(사용자풀)
- 사용자 가입 및 로그인 기능 담당
Identity Pool (자격 증명 풀)
- AWS 엑세스에 필요한 임시자격증명
- AWS 내의 서비스(S3 등)에 접근하기 위한 토큰 생성 가능
- 토큰은 jwt기반
자격 증명 토큰(jwt) 구조
- "iss": https://cognito-idp.{지역}.amazonaws.com/{유저풀id}
- 유저 풀 id는 aws에서 조작
- "username" : 필수 입력해야함.
AWS cognito 아키텍처 방안
1. 프론드엔드단에서 가입, 자격 증명하기
- 장점: 구성 쉬움(백엔드 없음)
- 단점: user pool id, user identity pool id를 프론트엔드에 노출함. ( 주요 정보가 밖으로 드러나)
2. 백엔드에서 가입, 프론트엔드에서 자격 증명하기
- 1번의 단점을 상쇄하기 위해 고안
- 장점: user pool id, user identity pool id를 프론트엔드에 노출하지 않음.
3. lambda+api gateway를 가입, 프론트엔드에서 자격 증명하기
- 장점: 2번의 장점을 가져가되, 백엔드를 분리하여 따로 개발 가능
- 단점: 개발의 복잡도 올라감.
728x90