다루는 내용
∙ 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 클릭
Cognito 생성임시자격증명 소스 코드 작성
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 클릭
· 디폴트로 생성할 경우 기본 권한