AWS Cognito 이해
AWS에서 제공하는 Amazon Cognito를 이해해보자.
Amazon Cognito 개요
AWS에서의 Amazon Cognito에 대한 설명을 보면
Amazon Cognito는 웹 및 모바일 앱에 대한 인증, 권한 부여 및 사용자 관리를
제공
합니다.
사용자는
사용자 이름과 암호를 사용하여 직접 로그인하거나 Facebook, Amazon, Google 또는 Apple 같은 타사를 통해로그인할 수 있습니다.
즉 Amazon Cognito는 권한 부여, 사용자 관리 뿐만 아니라
내부, 외부에서 웹 및 모바일 앱에 액세스 할 수 있도록 해주는 서비스
입니다.
Amazon Cognito 구성 요소
Amazon Cognito의 두 가지 주요 구성 요소
는 사용자 풀과 자격 증명 풀입니다.
사용자 풀은 앱 사용자의 가입 및 로그인 옵션
을 제공하는 사용자 디렉터리
입니다.
자격 증명 풀은 사용자에게 기타 AWS 서비스에 액세스
할 수 있는 권한을 부여
합니다.
이 둘은 별도로 또는 함께 사용할 수 있습니다.
함께 사용할 경우 아래 시나리오 다이어그램을 따릅니다.
위 시나리오의 목표
는 사용자 인증 이후 다른 AWS 서비스에 대한 사용자 액세스 권한을 부여하는 것입니다.
- 첫 번째 단계에서 앱 사용자는 사용자 풀을 통해 로그인하여 인증 성공 이후 풀 토큰을 받습니다.
- 다음으로 앱은 자격 증명 풀을 통해 사용자 풀 토큰을 AWS 자격 증명으로 교환합니다.
- 마지막으로 앱 사용자는 AWS 자격 증명을 사용하여 Amazon S3, Dynamo DB 등 다른 AWS 서비스에 액세스할 수 있습니다.
Amazon Cognito 기능
1. 사용자 풀
사용자 풀은 Amazon Cognito의 사용자 디렉터리입니다.
사용자 풀에서 사용자는 Amazon Cognito를 통해
, 또는 서드 파티 자격 증명 공급자(IdP)를 통해
페더레이션(Federation)하여 웹 또는 모바일 앱에 로그인할 수 있습니다.
사용자가 직접 또는 타사를 통해 로그인하는지 여부와 무관하게
사용자 풀의 모든 멤버는 디렉터리 프로필을 보유하며, SDK(sw개발킷)를 통해 액세스할 수 있습니다.
아래는 사용자 풀 제공 사항입니다.
가입 및 로그인 서비스
사용자 로그인을 위한 내장 사용자 지정 웹 UI
Facebook, Google, Login with Amazon 및 Sign in with Apple을 통한 소셜 로그인 및 사용자 풀의 SAML 및 OIDC 자격 증명 공급자를 통한 로그인
사용자 디렉터리 관리 및 사용자 프로필
멀티 팩터 인증(MFA), 이상 있는 자격 증명 확인, 계정 탈취 보호, 전화 및 이메일 확인과 같은
보안 기능
AWS Lanbda 트리거를 통한 사용자 지정 워크플로우 및 사용자 마이그레이션
2. 자격 증명 풀
자격 증명 풀로 사용자는 임시 AWS 자격 증명을 얻어
Amazon S3, DynamoDB 등의 다른 AWS 서비스에 액세스할 수 있습니다. 자격 증명 풀은 익명 게스트 사용자
는 물론 자격 증명에 대한 사용자 인증
에 사용할 수 있는 다음 자격 증명 공급자를 지원합니다.
Amazon Cognito user pools
Facebook, Google, Login with Amazon 및 Sign in with Apple을 통한 소셜 로그인
OpenID Connect(OIDC) 공급자
SAML 자격 증명 공급자
개발자 인증 자격 증명
사용자 프로필 정보를 저장하려면
자격 증명 풀이 사용자 풀에
통합되어야 합니다.