만자의 개발일지

[AWS] Cognito란 본문

AWS

[AWS] Cognito란

박만자 2022. 6. 9. 21:05

Cognito

기존의 사용자 데이터베이스를 관리하고 인증과 인가 기능을 추가하기 위해서는 엄청나게 많은 시간과 리소스가 필요했습니다.

특히 인증과 인가에 대한 부분은 보안적인 관리 및 처리가 결코 쉽지만은 않습니다.

이러한 문제들을 AWS Cognito를 활용하면 좀더쉽고 간편하게 해결하실 수 있습니다.

AWS Cognito는 웹과 모바일 앱에 대한 인증과 권한 부여 및 사용자 관리를 제공하고, 사용자는 사용자 이름과 패스워드를 사용하여 직접 로그인하거나 Facebook, Amazon, Google 또는 Apple 같은 타사를 통해 로그인(OAuth)할 수 있습니다.

 

Cognito를 사용하면 좋은 점

  • 사용자를 손쉽게 관리할 수 있다.
  • 뛰어난 확장성
    • Cognito를 사용하면 사용자 디렉토리를 손쉽게 생성할 수 있습니다.
    • 이 디렉토리는 완전 관리형으로, 수억명까지 쉽게 확장됩니다.
  • 강화된 안전
    • AWS의 안전에 대한 경험이 녹아들어 있습니다. 
    • 이메일 및 SMS 인증, MFA 인증 등의 기능을 손쉽게 추가할 수 있습니다.
  • 모바일, 서버리스와 궁합이 잘 맞다

Cognito는 사용자 풀(User Pools)과 자격 증명 풀(Identity Pools)로 구성되어있습니다.

사용자 풀은 사용자의 회원가입 및 로그인 옵션을 제공하고, 자격 증명 풀은 사용자 풀에 저장된 정보를 바탕으로 회원가입 또는 로그인에 성공한 사용자에게 AWS 서비스에 액세스할 수 있는 권한을 부여할 수 있습니다.

이 둘은 별도로 또는 함께 사용할 수 있습니다.

 

사용자 풀(User pool)

사용자 풀은 Cognito에 가입한 사용자에 대한 정보를 가지고 있는 하나의 사용자 데이터베이스 같은 역할을 합니다.

사용자 풀을 통해 회원가입과 로그인 기능을 사용할 수 있으며, 사용자 인증을 완료하면 Cognito는 JWT(JSON Web Token)를 사용자에게 반환하게 됩니다.

JWT는 API Gateway에서 자격 증명으로 사용되거나 AWS의 다른 자격 증명을 교환할 수 있습니다.

또한 사용자 풀에 있는 모든 사용자는 각각의 프로필을 보유하고 있으며, SDK를 통해 접근할 수 있습니다.

 

사용자 풀의 제공 기능

  • 회원가입 및 로그인 서비스
  • 사용자 로그인을 위한 내장 커스텀 웹 UI
  • Facebook, Google, Amazon, Apple을 통한 소셜 로그인 및 사용자 풀의 SAML 및 OpenID Connect(OIDC)를 통한 로그인 지원
  • 사용자 및 사용자 프로필 관리
  • 멀티 팩터 인증(MFA), 자격 증명 검증, 계정 탈취 보호, 전화 및 이메일 확인과 같은 보안 기능 제공
  • AWS Lambda 트리거를 이용한 Cognito의 인증 과정 등의 커스터마이징

 

자격 증명 풀(Identity pool)

자격 증명 풀은 사용자의 임시 AWS 자격 증명을 만들어 S3, DynamoDB등의 다른 AWS 서비스에 접근권한을 부여할 수 있습니다. 자격 증명풀은 다음과 같은 사용자를 포함할 수 있습니다.

  • Amazon Cognito user pools에 등록된 사용자
  • Facebook, Google, Amazon, Apple등의 소셜 로그인을 통해 인증된 사용자
  • SAML 및 OpenID Connect(OIDC)를 통해 인증된 사용자

 

참고

Comments