Amazon Cognito
Cognito는 애플리케이션 최종 사용자의 가입, 로그인, 토큰 발급을 담당하는 사용자 인증 계층입니다. 앱은 Cognito가 발급한 토큰으로 사용자를 식별하고, 필요하면 소셜 로그인과 임시 AWS 자격증명까지 연결합니다.
▶아키텍처 다이어그램
🔄 프로세스 다이어그램점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
회원가입, 로그인, 토큰 갱신, 비밀번호 재설정을 직접 만들기 시작하면 제품 기능보다 계정 보안 흐름을 붙잡는 일이 커집니다. 소셜 로그인과 여러 클라이언트까지 붙으면 인증 자체가 별도 프로젝트가 됩니다.
예전에는 앱마다 로그인과 토큰 체계를 직접 구현했지만, 이 방식은 보안 취약점과 기능 누락이 반복되기 쉬웠습니다. 그래서 사용자 인증 흐름을 관리형으로 제공하는 Cognito 같은 서비스가 중요해졌습니다.
Cognito는 User Pool로 사용자 디렉터리와 토큰 발급을 담당하고, 필요하면 Identity Pool로 AWS 자격증명을 연결합니다. Apple, Facebook 같은 소셜 로그인, SAML(기업 내부 ID 시스템과 연동하는 표준 프로토콜), 자체 IdP(신원을 확인해 주는 외부 서비스)를 붙일 수 있고, Lambda 트리거로 가입·인증 흐름을 확장할 수 있습니다.
Cognito와 IAM은 둘 다 인증처럼 보이지만 대상이 다릅니다. Cognito는 앱 사용자의 로그인과 토큰을 다루고, IAM은 AWS 계정 안의 사람과 서비스 권한을 다룹니다. 앱 사용자 가입, 로그인, 토큰 발급이 문제면 Cognito를 보고, AWS 내부 권한과 역할 설계가 문제면 IAM을 보면 됩니다.
모바일 앱, 웹 서비스, B2C 로그인, 사용자 토큰 발급, 소셜 로그인 연동에 적합합니다. AWS 리소스 간 내부 권한 제어에는 맞지 않습니다.