Amazon Web Services 한국 블로그

Amazon Cognito – 신규 사용자 풀(User Pools) 기능 추가

Amazon Cognito를 사용하여 백엔드 코드를 작성하면, 인프라 관리 필요없이 모바일 및 웹 애플리케이션에 소셜 인증 및 사용자 관리와 데이터 동기화를 손쉽게 추가 할 수 있습니다.  지난해 AWS CloudTrail 지원  및 로그인 공급자로 Twitter 및 Digits  추가 , Cognito 이벤트에 응답하는 AWS Lambda 함수 실행 기능 , 그리고 Amazon Kinesis 사용자 아이덴티티 데이터 스트리밍 같은 강력한 새로운 기능을 Cognito에 추가 했습니다.

사용자 풀(User Pool)
Amazon Cognito의 소셜 인증 기능을 통해 User Pool을 만들어 수 억 단위 사용자까지 확장하여 매니지드 서비스로  구축할 수 있게 됨에 따라  응용 프로그램 보안 및 사용자 인증을 대한 확장을 고려하지 않고도  자신의 사용자 디렉터리를 만들 수 있습니다. 이 기능은 이메일 의한 확인, 전화를 통한 확인 및 다단계 인증 등 확장된 보안 기능도 제공합니다. 앱 개발자로서 여러분은 이러한 목적을 위해, Federated Identity Pools라고 부르는 Cognito 기능을 사용하여 Amazon, Facebook, Google, Twitter 또는 Digits 같은 외부의 아이덴티티 공급자를 사용하는 옵션을 이미 가지고있었습니다.

User Pool을 사용하면 웹과 모바일 SaaS 애플리케이션, 게임 등에서 가입 및 로그인에 자세한 제어 할 수 있습니다. 높은 확장성 (잠재적으로 수십 또는 수억의 사용자)을 기반으로 디렉토리 서비스를 구축하고 가동시키는 것은 쉬운 일이 아니며, 사용자 이름, 암호 email 주소 및 기타 민감한 개인 정보 조각을 관리 할 때 추가 되는 보안 고려 사항 역시 매우 어려운 일입니다. 여러분이 User Pool을 사용하는 경우 해당 디렉토리 서비스를 직접 구축하고 운용할 필요가 없습니다.

계정 당 다중 사용자 풀 지원
이제 AWS 계정에서 여러 사용자 풀(User Pool)을 만들 수 있습니다 (한 가지 사용자 풀의 아이덴티티는 다른 풀과 완벽히 분리됩니다.)  각 풀에 대해 여러분은 각 사용자에 저장하려는 속성 (주소, 이메일, 전화 번호, 언어 등)에 대한 모든 권한을가집니다. 사용자 풀을 만든 이후, AWS Mobile SDK (iOS, Android 및 JavaScript에서 사용 가능)을 사용할 수 있습니다.

사용자는 SMS 기반의 다단계 인증 (Multi-Factor Authentication, MFA)이나 전화나 이메일 주소로 계정 확인을 포함한 각종 보안 기능을 통해 혜택을 얻을 수 있습니다. 암호 기능은 통신에 일반 텍스트 암호를 전송하지 않도록 Secure Remote Password (SRP) 통신 규약을 이용합니다.

사용자 풀 만들기
AWS Management Console (API 및 CLI에서도 가능)에서 User Pool을 만드는 과정을 연습 해 봅시다. (가상) 응용 프로그램은 PaymentApp이기 때문에, PaymentAppUsers라는 풀을 만듭니다.

기본 값을 확인하고 승인하거나, 모든 설정값을 변경할 수  있습니다. 여기에서는 모든 설정값을 변경하는 것을 선택하고,  새 사용자가 서비스에 가입 할 때 수집해야 하는 속성 세트를 선택합니다.

사용자 정의 속성을 설정할 수 있습니다. 내 응용 프로그램의 경우 사용자의 사용하고자하는 결제 화폐 통화를 저장하고 싶습니다.

그리고 원하는 암호 강도를 설정합니다. 지불 애플리케이션이므로, 모든 옵션을 체크합니다.

다음은 다단계 인증을 활성화하고 이메일 주소와 전화 번호를 확인할 필요가 있다면 선택합니다. 확인 과정 중 각 메서드와 관련된 메시지를 적절히 제공합니다.

응용 프로그램은 모바일 클라이언트도 가지고 있기 때문에 고유 ID와 비밀 키를 생성하도록합니다.

이제 가입, 검증, 인증 그리고 확인 단계에서 Cognito에 Lambda 기능을 실행 시키도록 할 수 있습니다 (이것은 선택적이지만 사용자 지정 특성을 확인해서 가입 흐름을 사용자 정의하려는 경우, 매우 편리합니다) .

마지막으로, 설정 사항을 모두 검토하고, 새로운 사용자 풀을 만듭니다.

이제 모바일 앱 및 웹 앱 개발 시 사용자 가입 절차를 원하는 대로 설정 가능합니다.

Asurion의 Cognito 사용 사례
Asurion은 2 억 이상의 고객에게 스마트폰 같은 장치에 대한 보험 계약을 제공하고 있습니다. Asurion은 신규 장치 보호 응용 프로그램 을 위한 사용자 디렉토리 관리를 위해 Cognito 사용 계획을하고 있습니다. 이 응용 프로그램은 장치에 대한 데이터를 수집하고 보험 이용료 최적화를 추천해줍니다.

Asurion은 다양한 아이덴티티 모델 지원을 이유로 Cognito을 선택하였습니다. 아이덴티티 시스템을 새로 만들 필요 없이, 확장성 고려 없이 자신의 전체 사용자 디렉토리를 보유하고 타사 소셜 아이덴티티 공급자를 통한 사용자 인증을 가질 수 있습니다.

Ravi Tiyyagura (Asurion ‘s Director of Enterprise Architecture)는 “수백만 사용자들의 안전하고 간단한 가입 및 로그인 환경을 제공하는 것은 매우 중요합니다. Amazon Cognito를 통해 우리는 백 엔드를 구축하고 관리하는 것에 대해 걱정하지 않고 그것을 할 수 있었습니다.”라고 밝혔습니다.

공개 베타 서비스
신규 사용자 풀 추가 기능은 오늘 공개 베타로 출시합니다. 모든 기능은 잘 준비되어 있으며, 앱 개발 및 테스트를 시작하는 데 사용할 수 있습니다. 몇 달 동안  제품 개발 용도로 이용 가능합니다.— Jeff;

이 글은 New – Your User Pools for Amazon Cognito의 한국어 번역입니다.