Cognito의 사용자 풀과 자격 증명 풀에 대해 정리하고 비교해봤습니다.

2022.03.24

안녕하세요, 임채정입니다.
이번 블로그에서는 AWS의 허가 및 인증을 위한 서비스인 cognito의 사용자 풀과 자격 증명 풀 기능에 대해서 정리해하고 두 기능의 다른 점에 대해서 비교해보겠습니다.

cognito 란

  • AWS 서비스에서 인증 및 권한 부여 메커니즘을 쉽게 구현 가능
  • 사용자 풀과 ID 풀이라는 두 가지 주요 기능/개념이 있음
    • 1) user pools (사용자 풀)
    • 2) identity pools (자격 증명 풀)
  • 다음과 같은 경우 사용한다.
    • 웹 및 모바일 애플리케이션의 인증, 권한 부여, 사용자 관리 지원
    • 사용자 풀 토큰으로 AppSync/API Gateway에 대한 인증 제한
    • ID 풀 토큰으로 AWS SDK에서 액세스할 수 있는 서비스 제한
    • 사용자 그룹에 의한 사용자 권한

사용자 풀 과 자격 증명 풀

사용자 풀 (user pools)

AWS 내에서 인증을 처리하는 서비스
사용자 풀을 사용하면 앱 사용자가 사용자 풀에서 로그인하거나 타사 아이덴티티 공급자(IdP)를 통해 연결할 수 있습니다.


사용자 풀은 다음 그림과 같이 3개의 사용 경우가 있습니다.
1) 사용자 풀로 인증 (IdP)
2) 사용자 풀을 사용해서 서버 측 리소스에 액세스
3) 사용자 풀을 사용하여 리소스에 액세스 다른 AWS 서비스를 사용

자격 증명 풀 (identity pools)

AWS 내에서 허가(권한 부여/액세스 제어)를 처리하는 서비스
ID 풀을 사용하면 사용자가 고유한 ID를 생성하여 다른 AWS 서비스에 대한 액세스를 허용할 수 있습니다.

다음은 외부 IdP를 사용해 인증하고 ID 풀을 사용하여 AWS 서비스에 액세스하는 예시입니다.


해당 예시에 대한 순서는 다음과 같습니다.
1) IdP를 사용해서 인증
2) IdP에서 취득한 토큰과 자격 증명 풀 토큰 교환
3) 자격 증명 풀 토큰을 사용해서 AWS 서비스에 액세스

사용자 풀 + 자격 증명 풀

사용자 풀과 자격 증명 풀 두 개를 함께 사용하는 경우도 있습니다.
다음은 사용자 풀을 IDP로 사용하는 예시입니다.


해당 예시에 대한 순서는 다음과 같습니다.
1) 사용자 풀로 인증 (사용자 풀 토큰 취득)
2) 사용자 풀 토큰과 자격 증명 풀 토큰 교환
3) 자격 증명 풀 토큰으로 다른 AWS 서비스를 사용

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !