Cognito 알아보기

갱밍·2023년 9월 12일

Amazon Cognito 🤗

안녕하세요, 오늘은 AWS의 대표적인 인증 서비스인 Amazon Cognito에 대해 함께 알아보려고 합니다.

Cognito란? 🤔

Cognito를 간단하게 얘기하면 사용자 인증 서비스라고 얘기할 수 있어요. 이를 통해 사용자는 손쉽게 회원 가입하고 로그인할 수 있어요.

  • 웹 및 모바일 앱을 위한 자격 증명 플랫폼
  • 인증과 권한 부여, 사용자 관리, 로그인& 소셜 로그인 기능 제공

Cognito를 사용하면 좋은 점은? 🔍

  1. 보안 강화
  2. 소셜 로그인 지원
  3. 비용 절감
  4. 확장성

AWS 서비스에 접근할 때, 보안을 유지하기 위해 직접 액세스 키를 코드에 작성하는 것은 권장되지 않습니다. 특히 모바일 및 서버리스 환경에서 이러한 문제가 중요한데, Cognito를 사용하면 보안 취약점을 크게 줄일 수 있어요.

주요 기능들 🔍

사용자 풀(User Pools)과 자격 증명 풀(Identity Pools)

Cognito는 사용자 풀(user pool)과 자격 증명 풀(identity pool)으로 구성되어 있는데, 이 둘을 조합하거나 또는 각각 별개의 형태로 사용할 수 있습니다

  • 사용자 풀 - 사용자의 회원가입과 로그인을 제공하는 사용자 저장소
  • 자격 증명 풀 - 사용자 풀에 저장된 정보를 바탕으로 로그인 또는 회원가입에 성공한 사용자에게 AWS 인프라의 여러 서비스에 대한 권한을 부여할 수 있는 서비스

즉 사용자 풀은 인증(자격 증명 확인), 자격 증명 풀은 권한 부여(액세스 제어)라고 정리할 수 있습니다.

이 포스팅에서는 Identity Pools에 대해 더 다루겠습니다!

Identity Pools

Identity Pools는 앱 사용자들에게 임시로 AWS 자격 증명을 부여해줘요. 이를 통해 사용자들이 AWS 리소스에 접근할 수 있고, 인증된 사용자와 비인증 사용자를 구분해서 다른 권한을 부여할 수도 있어요.

  • 인증된 사용자 (Authenticated users) :
    쉽게 말하자면 로그인한 사용자입니다. 이들은 일반적으로 더 많은 권한을 받게 돼요.
  • 비인증된 사용자 (Unauthenticated users) :
    앱에 로그인하지 않은 사용자들입니다. 그렇다고 해서 이들에게 권한을 주지 않는다는 의미는 아니에요. 한정된 권한을 부여하여 특정 AWS 리소스를 사용하게 할 수 있습니다.

Identity Pools은 IAM을 이용하여, 인증된 사용자와 인증되지 않은 사용자의 역할을 정의할 수 있어요. 각 역할 별로 액세스 권한이 다르답니다.

정리💪

정리하자면, Cognito를 사용하면 앱 사용자들은 AWS 서비스에 대한 특정 권한을 얻을 수 있습니다! aws에서 사용자 인증을 관리하고, 임시로 권한을 주기 때문에 더 안전하고 간편하다는 장점이 있어요.

공식 문서는 말이 어려워서 조금 더 쉽게 풀어보려 했는데, 의도대로 됐는지 모르겠네요.

다음 글에서는 비인증 사용자 권한을 설정하고, 안드로이드 앱에서 Cognito를 활용하여 AWS SDK를 통해 S3에 접근하는 방법에 대해 알아볼게요.

profile
공부 기록 중입니다

0개의 댓글