Amazon Cognito란?
Amazon Cognito는 웹 및 모바일 앱에 대한 인증, 권한 부여 및 사용자 관리를 제공한다. 사용자는 사용자 이름과 암호를 사용하여 직접 로그인 하거나 Facebook, Amazon, Google또는 Apple 같은 타사를 통해 로그인 할 수 있다.Amazon Cognito의 2가지 주요 구성 요소는 사용자 풀과 자격 증명 풀이다.사용자 풀: 앱 사용자의 가입 및 로그인 옵션을 제공하는 사용자 디렉터리자격 증명 풀: 자격증명 풀을 통해 사용자에게 기타 AWS 서비스에 엑세스 할 수 있는 권한을 부여할 수 있다.Amazon Cognito 사용자 풀 및 자격 증명 풀을 함께 사용

위의 일반적인 시나리오 다이어그램을 보자.
목표는 사용자 인증 이후 다른 AWS 서비스에 대한 사용자 엑세스 권한을 부여하는 것이다.
1. 첫 번째 단계에서 앱 사용자는 사용자 풀을 통해 로그인 하여 인증 성공 이후 사용자 풀 토큰을 받습니다.
2. 다음으로 앱은 자격 증명 풀을 통해 사용자 풀 토큰을 AWS 자격 증명으로 교환한다.
3. 마지막으로 앱 사용자는 AWS 자격 증명을 사용하여 Amazon S3, DynamoDB등 다른 AWS서비스에 엑세스 할 수 있다.
사용자 풀
Amazon Cognito의 사용자 디렉터리이다. 사용자 풀에서 사용자는 Amazon Cognito를 통해, 또는 서드 파티 자격 증명 공급자(IdP)를 통해 페더레이션 하여 웹 또는 모바일 앱에 로그인할 수 있다. 사용자가 직접 또는 타사를 통해 로그인하는지 여부와 무관하게 사용자 풀의 모든 멤버는 디렉터리 프로필을 보유하며, SDK를 통해 엑세스 할 수 있다.사용자 풀 제공 사항:
SAML 및 OIDC자격 증명 공급자를 통한 로그인AWS Lambda 트리거를 통한 사용자 지정 워크플로우 및 사용자 마이그레이션자격 증명 풀
AWS자격 증명을 얻어 Amazon S3,DynamoDB 등의 다른 AWS 서비스에 엑세스 할 수 있다. 자격증명 풀은 익명 게스트 사용자는 물론 자격 증명에 대한 사용자 인증에 사용할 수 있는 다음 자격 증명 공급자를 지원한다.