Cognito 사용자 풀과 자격 증명 풀 간의 차이점에 대해 자주 질문하므로 자세히 다루는 것이 좋겠습니다. 이 두 가지는 기능면에서 조금 비슷해 보일 수 있으며, 그것이 무엇인지를 명확하게 밝히지는 못합니다. 먼저 공식 정의부터 시작하겠습니다.

AWS가 Cognito 사용자 풀을 다음과 같이 정의합니다:

Amazon Cognito 사용자 풀을 사용하면 개발자가 웹 및 모바일 애플리케이션에 등록 및 로그인 기능을 쉽게 추가 할 수 있습니다. 사용자 디렉토리를 유지 관리하는 고유한 자격 증명 제공 업체 역할을합니다. 사용자 등록 및 로그인을 지원하고 로그인한 사용자의 자격 증명 토큰을 프로비저닝합니다.

그리고 Cognito 연동 자격 증명(Federated Identities) 또는 자격 증명 풀은 다음과 같이 정의됩니다.

Amazon Cognito 연동 자격 증명은 개발자가 사용자의 고유 자격 증명을 만들고 연동 자격 증명 제공자로 인증할 수 있게합니다. 연동 자격 증명을 사용하면 임시로 제한된 권한의 AWS 자격증을 획득하여 Amazon DynamoDB, Amazon S3 및 Amazon API Gateway와 같은 다른 AWS 서비스에 안전하게 액세스할 수 있습니다.

불행히도 이런 용어들은 다소 모호하고 유사해 혼란스럽습니다. 이런 용어들이 무엇인지에 대한 정의 보다 실용적인 다음 설명들을 보겠습니다.

사용자 풀

새로운 웹 또는 모바일 앱을 만들고 사용자 등록, 인증 및 계정 복구를 처리하는 방법에 대해 고민한다고 가정 해보십시오. 바로 거기에 Cognito 사용자 풀을 적용하는 것입니다. Cognito 사용자 풀은 이 모든 것을 처리하며, 개발자 입장에서는 사용자 관련 정보를 검색하기 위해 단지 SDK를 사용하기만 하면 됩니다.

자격 증명 풀

반면에 Cognito 자격 증명 풀(또는 Cognito 연동 자격 증명)은 사용자가 다양한 AWS 서비스를 사용할 수있는 권한을 부여하는 방법입니다. 사용자가 파일을 업로드할 수 있도록 S3 버킷에 액세스를 할 수 있도록 하고싶다 가정합시다. 자격 증명 풀을 생성하는 동안 이를 지정할 수 있습니다. 그리고 이러한 액세스 레벨을 생성하기 위해 자격 증명 풀에는 자격 증명(또는 사용자)이라는 자체 개념이 있습니다. 이러한 자격 증명(또는 사용자)의 출처는 Cognito 사용자 풀 또는 Facebook 또는 Google 일 수 있습니다.

사용자 풀과 자격 증명 풀

이 점을 좀 더 명확히하기 위해 이 두 서비스를 서로의 맥락에서 설명해 보겠습니다. 여기 두 서비스들이 함께 작동하는 것을 보십시오.

Amazon Cognito 사용자 풀 대 자격 증명풀 스크린 샷

사용자 풀, 소셜 네트워크 또는 자체 사용자 정의 인증 시스템을 Cognito 자격 증명 풀의 자격 증명 공급자로 사용하는 방법에 유의하십시오. Cognito 자격 증명 풀은 모든 자격 증명 제공 업체들을 가져와서 함께 묶어줍니다(연동 또는 연합). 또한 이 모든 기능을 통해 사용자들이 어디에서 왔던지에 관계없이 AWS 서비스에 안전하게 액세스할 수 있습니다.

요약하자면; Cognito 사용자 풀에는 사용자를 저장하여 Cognito 자격 증명 풀에 연결하여 사용자에게 AWS 서비스에 대한 액세스 권한을 부여 할 수 있습니다.

이제 사용자가 어떻게 처리되는지 잘 이해했으므로 API를 테스트하여 백엔드를 마무리 해 보겠습니다.