본문 바로가기
개발/server - aws, docker, ubuntu etc

aws cognito 개념 정의, 구성 생각하기

by 개발자종혁 2021. 4. 6.
728x90

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

댓글