본문 바로가기

Cloud AWS

Amazon AWS :: COGNITO소개



Amazon AWS :: COGNITO소개


 

다루는 내용

  • AWS Cognito는?
  • Amazon Cognito Identity
  • Amazon Cognito Sync

실습

AWS Cognito는?


Amazon Cognito는 백엔드 코드를 작성하거나 인프라를 관리하지 않고도 모바일 자격 증명 관리 및 데이터 동기화 기능을 제공한다. 백엔드 코드는 AWS Cognito가 처리하므로 개발자는 Public Identity provider의 인증 코드만 해결하면 된다.

Amazon Cognito Identity

안드로이드 개발 환경

  1. Android Studio 설치
    https://developer.android.com/sdk/index.html
  2. Android Studio 실행
    Start a new Android Studio project 선택
  3. 라이브러리 추가
    · File → Project Structure → 왼쪽 상단의 + 아이콘 클릭 → Import .JAR/.AAR Package 선택
    · aws-android-sdk-core-2.2.8.jar, aws-android-sdk-cognito-2.2.8.jar 추가
    · app 모듈 선택 → Dependencies 탭 선택
    · 오른쪽 상단의 + 아이콘 클릭 → Module dependency → aws-android-sdk-* 선택/추가

Cognito 생성

  1. 콘솔에서 Cognito 클릭
  2. Get started 클릭
  3. Create new identity pool 페이지에서
    · Identity pool name : myCognitoApp 입력
    · Enable access to unauthenticated identities : 체크
    Cognito에서 AWS STS를 이용하여 임시 자격 증명을 할 때 필요하다.
    · Authentication providers
    Public identity providers를 이용하여 자격 증명을 할 때 필요하다.
    · Create Pool 클릭
  4. Your Cognito identities require access to your resources
    · Allow 클릭

   임시자격증명 소스 코드 작성

  1. Sample code
    · Download the AWS SDK for Android 클릭
    안드로이드 개발에 필요한 AWS SDK를 다운 받는다.
    aws-android-sdk-core-2.2.8.jar, aws-android-sdk-cognito-2.2.8.jar 가 포함되어 있다.
    · Get AWS Credentials

    · MainActivity.java
      ° 자격 증명 요청을 위한 코드 추가
      ° Network 기능은 Main Thread에서 동작하지 않으므로 비동기 처리
      ° 인증 아이디는 로그에 출력
    · AndroidManifest.xml

    · 결과

Amazon Cognito Sync
Key-value 형식의 데이터셋을 Cognito를 이용하여 저장하고, 읽을 수 있다. 하나의 데이터셋은 최대 1MB까지 가능하며, 하나의 identity는 20개의 데이터셋을 쓸 수 있다.

  1. Sample code
    · Store User Data
    · MainActivity.java
    ° 데이터셋(myDataset)을 만든다.
    ° 키(myKey), 값(myValue)을 쓴다.
  2. 확인
    · 왼쪽 메뉴에서 Identity browser 클릭
    · 임시 자격 증명을 획득하게 되면 Identity ID가 생성된다.

    · Identity ID 클릭

    데이터 싱크가 완료되면 데이터셋이 생성된다.
    · Dataset name 클릭

  3. 권한 (IAM Role)
    자격 증명을 할당 받은 사용자가 AWS 리소스를 사용할 수 있는 권한은 IAM Role을 따른다.
    · 오른쪽 상단의 Edit identity pool 클릭
    · 디폴트로 생성할 경우 기본 권한

참고
 ※ https://docs.aws.amazon.com/cognito/devguide/

Arang

Sr. Technical Trainer at GSNeotek