2. Amazon Cognito
• Amazon Cognito는 간편한 사용자 자격 증명 및 데이터 동기화 서비스로, 사용자의 앱 데
이터를 다양한 모바일 디바이스 간에 안전하게 관리하고 동기화할 수 있도록 지원하고,
다양한 퍼블릭 로그인 공급자(Amazon, Facebook, Google)를 통해 사용자에 대한 고유
자격 증명을 생성할 수 있으며 인증되지 않은 게스트도 지원한다.
• 사용자의 디바이스에 로컬로 앱 데이터를 저장하여 디바이스가 오프라인 상태에서도 애
플리케이션이 작동하도록 할 수 있고, Amazon Cognito를 사용하면 백엔드 코드를 작성
하거나 인프라를 관리하지 않아도 앱 환경 설정이나 게임 상태 같은 모든 종류의 데이터
를 AWS 클라우드에 저장할 수 있다. 즉, 자격 증명 관리, 네트워크 상태, 스토리지, 동기화
를 처리할 백엔드 솔루션을 구축하거나 관리할 걱정 없이 최상의 앱 환경을 제작하는 데
주력할 수 있다.
3. Amazon Cognito
• Amazon Cognito Identity(이것을 위주로 확인)
• 모바일 Device 및 기타 신뢰할 수 없는 환경에서 임시 자격 증명
을 제공하는 서비스임. 즉, Device를 고유하게 식별하고
Application 수명 동안 일관된 Identity를 제공한다.
• Amazon Cognito Sync
• 여러 장치 사이의 Data 동기화 서비스를 제공한다.
4. Amazon Cognito Identity
• Identity Pool
• Identity Pool은 특정 사용자 ID Data에 대한 저장소 이다.
• Authenticated and Unauthenticated Identities
• Cognito는 인증과 미인증된 Identity를 모두 제공 한다.
• 인증된 Identity는 Amazon, Facebook, Google 혹은 사용자에 의해서 정의된 인증 시스템에서 인증된 Identity를
의미 한다.
• 미 인증된 Identity는 인증 시스템으로 인증되지 않은 Guest User와 같은 Identity를 의미 한다.
• User IAM Roles
• IAM로 Role로 인증 및 인증되지 않은 사용자에게 서로 다른 권한을 부여할 수 있다.
7. IAM Roles
• 사용자가 앱에 로그인 하면, Aamazon Cognito에서는 사용자
임시 AWS Credentials 생성하고, 이 임시 AWS Credentials은 특
정 IAM Role과 연결 되어 있다.
• 앱에서 IAM Role에 정의된 Policy에 따라 AWS Resource에 접근
을 할 수 있게 된다.
10. Limits in Cognito Identity
Max number of identity pools per account 60
Max number of identities per identity pool Unlimited
Max character length for identity pool name 128 bytes
Max character length for login provider name 2048 bytes
Max number of results from a single List/Lookup API call 60
11. AWS Security Token Service
• AWS Resource에 일시적으로 사용할 Token을 발급해 주는 서비스 이다.
• GetSessionToken
• IAM 사용자의 임시 접근 권한을 취득하기 위한 API
• AssumeRoleWithWebIdentity
• Web Identity Provider(Amazon Cognito, Facebook, Google, OpenID)로 인증된 사용
자의 mobile이나 web app에 임시 보안 증명서를 반환
• 나머지는 아래 링크를 참고
• http://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html
12. Amazon Cognito Authentication 와 STS
Web Identity Federation 관계
• STS에서 제공하는 AssumeRoleWithWebIdentity는 사용자에 대한 외부
IDP(Amazon, Facebook, Google, or any other OpenID Connect (OIDC)) 연동이
필수 적이다.
• STS Web Identity Federation의 IDP로 Amazon Cognito를 사용하여 외부 IDP 뿐
만 아니라 개발자 인증 서버를 통한 사용자 인증과 guest 모드까지 처리가 가능
하게 된다. 결과적으로 Amazon Cognito는 STS의 Web Identity Federation을 보
다 효과적으로 사용할 수 있도록 보완을 해 주는 역할을 한다고 볼 수 있다.