aws black belt online seminar · 【aws black belt online seminar】 amazon cognito amazon web...

80
【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up, sign-in, and data synchronization to your apps

Upload: others

Post on 27-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

【AWS Black Belt Online Seminar】

Amazon Cognito

Amazon Web Services Japan K.K.

Solutions Architect Akihiro Tsukada

2017.05.17

Add user sign-up, sign-in, and data synchronization to your apps

Page 2: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Akihiro Tsukada

Start-up

Mobile

Serverless

Blockchain

2

Page 3: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

AWS Black Belt Online Seminar とは

AWSJのTechメンバがAWSに関する様々な事を紹介するオンラインセミナーです

【火曜 12:00~13:00】主にAWSのソリューションや業界カットでの使いどころなどを紹介(例:IoT、金融業界向け etc.)

【水曜 18:00~19:00】主にAWSサービスの紹介やアップデートの解説(例:EC2、RDS、Lambda etc.)

※開催曜日と時間帯は変更となる場合がございます。最新の情報は下記をご確認下さい。

オンラインセミナーのスケジュール&申し込みサイト– https://aws.amazon.com/jp/about-aws/events/webinars/

3

Page 4: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

オンラインセミナー資料の配置場所

• AWS クラウドサービス活用資料集– http://aws.amazon.com/jp/aws-jp-introduction/

• AWS Solutions Architect ブログ– 最新の情報、セミナー中のQ&A等が掲載されています

– http://aws.typepad.com/sajp/

4

Page 5: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

内容についての注意点

• 本資料では2017年5月17日時点のサービス内容および価格についてご説明しています。最新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。

• 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。

• 価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途消費税をご請求させていただきます。

• AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.

5

Page 6: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

アジェンダ

AWSのモバイルサービス

Amazon Cognito概論

Cognito IdentityYour User Pools

Federated Identities

Cognito Sync

料金体系

6

Page 7: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

AWSのモバイルサービス

7

Page 8: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

ユーザ認証、アクセス認可

データの同期

ユーザ行動分析

メディアの管理

メディアの配信

プッシュ通知の送信

共有データの保存

モバイルアプリ

Amazon Cognito(Identity)

Amazon Cognito(Sync)

AWS Lambda

Amazon CloudFront(Device Detection)

Amazon DynamoDB

Amazon SNS Mobile Push

AWS Mobile SDK

Amazon S3Transfer Manager

ビジネスロジックの実行

実機テストの並列実行

AWS DeviceFarm

AWSのモバイルサービス https://aws.amazon.com/jp/mobile/

RESTful APIサーバ

Amazon PinpointAmazon Pinpoint

Amazon Mobile Analytics

ログストリーム

Amazon Kinesis

8

チャットボット

Amazon Lex

AWS Mobile Hub

Amazon API Gateway

Page 9: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

サポートするモバイル開発プラットフォーム

9

全てのサービスに共通の認証機構

オンライン・オフラインを自動でハンドリング

クロスプラットフォームのサポート:Android, iOS, Fire OS, Unity, Xamarin, React Native(Dev Preview)

Mobile OS への最適化

例: ローカルオフラインキャッシュを利用するアーキテクチャ

メモリフットプリントの削減

各プラットフォームのエンハンスに追従

Page 10: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

グローバルなお客様利用事例

10

Amazon Cognito

AWS Device Farm

AWS Lambda

API Gateway

Simple Email Service

Amazon SNS

Page 11: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Amazon Cognito概論

11

Page 12: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

12

Amazon Cognitoの構成要素

Cognito Identity

Your User Pools Federated Identities

Cognito Sync

マネージドな数億ユーザまでス

ケールするセキュアなユーザー

管理サービス

サインアップ、サインイン、サ

インアウト = 認証を担当

MFAオプション、パスワードポ

リシー、ユーザのグルーピング、

認証フローのカスタマイズなど

をサポート

AWSリソースアクセス用のTemporary Credentialsを払い出す = 認可を担当

認証は外部Identity Provider等に移譲

未認証ユーザにUnauthIdentityとしてゲスト用権限を払い出すことも可能

一人の人間が持つ複数のIdentity Providerのアカウント情報を”Identity”としてまとめる(=Federation)

Federated Identitiesの

”Identity” が持つ複数デバイス

間でデータの同期を担当

Identityをまたいだデータ共有

ではない

オフラインサポート

コンフリクト解決ロジックのカス

タマイズサポート

データ同期実行時にPush Sync、

Cognito Streams、Cognito

Eventsなどの処理を連動させるこ

とも可能

Page 13: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognitoが解決する課題の例

モバイル・Webアプリでユーザ認証を簡単に実装したい

� Your User Pools

FacebookやTwitter等でログイン可能にしたい

� Federated Identities

認証されたユーザや管理者ユーザ限定のコンテンツを配信したい

� Your User Pools, Federated Identities

スケーラブルなAWSの各サービスをモバイルのバックエンドとして使いたいが、AccessKey等の認証情報をアプリにハードコーディングしたくない

� Federated Identities

一人複数デバイスの利用をサポートしてUXを向上させたい

� Federated Identities, Cognito Sync

13

Page 14: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognitoを利用したアプリのシミュレーション

14

Page 15: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Dataset1 {key1: val1,key2: val2...

}

SAML

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

AmazonアカウントA

Identity Pool 1

IAM

roleAWS STS

Temporary

Credential

Temporary

Credential

Token

Token Validation

Identity A

Cognito Sync

Logins

UserPool 2

Dataset1{key1: val1…}

Dataset1{key1: val1…}

Local Storage

所有・操作

Temporary

Credential

CognitoFederated Identities

Amazon

SNS

Amazon

Kinesis

AWS

Lambda

※この他、独自認証サーバも利用可

完成図

15

Page 16: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Dataset1 {key1: val1,key2: val2...

}

SAML

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

AmazonアカウントA

Identity Pool 1

IAM

roleAWS STS

Temporary

Credential

Temporary

Credential

Token

Token Validation

Identity A

Cognito Sync

Logins

UserPool 2

Dataset1{key1: val1…}

Dataset1{key1: val1…}

Local Storage

所有・操作

Temporary

Credential

CognitoFederated Identities

Amazon

SNS

Amazon

Kinesis

AWS

Lambda

※この他、独自認証サーバも利用可

完成図Cognitoを利用したアプリのシミュレーション

想定する要件

1. ユーザは複数プラットフォーム(モバイルアプリとWebブラウザ)からサービスを利用

2. ユーザはCognito Your User PoolsとAmazonアカウントでサービスを利用

3. ゲストユーザ(未認証)アクセスはナシ

4. Cognito Your User Poolsの特定グループに属するユーザは一般ユーザと別権限を持つ

シミュレーションの大まかな流れ

1. User PoolとIdentity Poolの作成

2. 複数デバイスからUser PoolとAmazonにサインアップ、サインイン

3. サインインして得たTokenをCognito Federated Identityに渡して検証

4. Tokenに問題なければCognitoはTemporary Credentialsをデバイスに返却

5. デバイスはCredentialsを使って直接AWSリソースにアクセス

6. モバイルでCognito Syncに同期したデータはWebブラウザのローカルにも反映される

16

Page 17: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

ユーザとデバイス

所有・操作

ユーザはモバイルアプリとWebブラウザを利用

17

Page 18: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

Group n

UserPool 2

所有・操作

IAM

role

このアプリで使うUser PoolとGroupを作成GroupにIAM Roleを紐付け

SAML

18

Page 19: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

role

Logins

CognitoFederated Identities

Identity Poolを作成し、IAM RoleとIdPをIdentity Poolに紐付け

SAML

19

Page 20: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

サインアップ 〜 サインイン 〜 AWS Credentialsの取得

20

Page 21: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

role

Logins

CognitoFederated Identities

SAML

21

Page 22: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

role

Logins

CognitoFederated Identities

各デバイスから各アカウントにサインアップ & イン

SAMLAmazon

アカウントA

22

Page 23: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

role

Logins

CognitoFederated Identities

Token

各IdPから返されたTokenをFederated Identityに渡す

SAMLAmazon

アカウントA

23

Page 24: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Token Validation

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

role

Logins

CognitoFederated Identities

Token

Federated Identityは該当IdPにアクセスしTokenを検証

SAMLAmazon

アカウントA

24

Page 25: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

role

Logins

Token

Token Validation

Identity A

CognitoFederated Identities

検証成功すれば、Identity Pool内にIdentityを作成しLoginsとしてIdPおよびTokenをIdentityに紐付け

SAMLAmazon

アカウントA

25

Page 26: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

roleAWS STS

Logins

Token

Token Validation

Identity A

Temporary

Credential

CognitoFederated Identities

Federated IdentityはAWS IAM(STS)からRoleに基づいたTemporary Credentialsを取得

SAMLAmazon

アカウントA

26

Page 27: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

roleAWS STS

Logins

Token

Token Validation

Identity A

Temporary

Credential

Temporary

Credential

CognitoFederated Identities

Federated IdentityはクライアントデバイスにTemporary Credentialsを渡す

SAMLAmazon

アカウントA

27

Page 28: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

roleAWS STS

Logins

Token

Token Validation

Identity A

Temporary

Credential

Temporary

CredentialTemporary

Credential

CognitoFederated Identities

デバイスはCredentialsを使ってAWSリソースにアクセス

SAMLAmazon

アカウントA

28

Page 29: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

複数デバイス間でのデータ同期とフック処理

29

Page 30: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

roleAWS STS

Logins

Token

Token Validation

Identity A

Temporary

Credential

Temporary

CredentialTemporary

Credential

CognitoFederated Identities

SAMLAmazon

アカウントA

30

Page 31: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

roleAWS STS

Logins

Token

Token Validation

Identity A

Temporary

Credential

Temporary

CredentialTemporary

Credential

Dataset1 {key1: val1,key2: val2...

}

Dataset1{key1: val1…}

Local Storage

Cognito Sync

CognitoFederated Identities

モバイルデバイスでローカルストレージにデータを保存し同期処理実行

SAMLAmazon

アカウントA

31

Page 32: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

UserPool 2

所有・操作

Identity Pool 1

IAM

roleAWS STS

Logins

Token

Token Validation

Identity A

Temporary

Credential

Temporary

CredentialTemporary

Credential

Dataset1 {key1: val1,key2: val2...

}

Dataset1{key1: val1…}

Local Storage

Cognito Sync

Dataset1{key1: val1…}

CognitoFederated Identities

Webブラウザで同期処理を実行するとモバイルデバイスでの変更がWebブラウザのローカルに反映される

SAMLAmazon

アカウントA

32

Page 33: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Dataset1 {key1: val1,key2: val2...

}

Cognito Your User Pools

対応Identity Provider ユーザとデバイス

UserPool 1

User Pool n

…User PoolsアカウントA

Group n

Identity Pool 1

IAM

roleAWS STS

Temporary

Credential

Temporary

Credential

Token

Token Validation

Identity A

Logins

UserPool 2

Dataset1{key1: val1…}

Dataset1{key1: val1…}

Local Storage

所有・操作

Temporary

Credential

CognitoFederated Identities

Amazon

SNS

Amazon

Kinesis

AWS

Lambda

Cognito Sync

同期処理実行時、Cognito Syncは設定されたフック処理(SNS, Kinesis, Lambda)があれば起動する

SAMLAmazon

アカウントA

33

Page 34: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

アジェンダ

AWSのモバイルサービス

Amazon Cognito概論

Cognito IdentityYour User Pools

Federated Identities

Cognito Sync

料金体系

34

Page 35: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Identity

35

Page 36: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Identity

36

Your User Pools

モバイルやWebアプリに、簡単かつ

セキュアにサインアップとサインインの機能を追加可能

数億ユーザのスケールをサポートするフルマネージドサービス

Federated Identities

FacebookなどのソーシャルアカウントやSAMLプロバイダといったサードパーティのアイデンティティプロバイダでサインインAWSリソースへのアクセス権の管理

Facebook

Corporate

ID

Etc.

Sign in with

SAML

Sign in

Username

Password

Submit

Or

Start as a

guest

Page 37: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Your User Pools

37

Sign in

Username

Password

Submit

Or

Start as a

guest

Page 38: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Your User Pools

サーバについて心配することなく、モバイルやWebアプリにサインアップ、サインイン機能を簡単に追加

サーバレスの認証とユーザ管理

電話番号やemailアドレスの検証と多要素認証の提供

拡張されたセキュリティ機能

シンプル、セキュア、低コストかつフルマネージドなサービスによる、数億ユーザまでスケールするユーザディレクトリの作成と維持

マネージドなユーザディレクトリ

1 2 3

38

Page 39: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

User Poolに対するユーザの操作

Email もしくは電話番号による確認

パスワード紛失

ユーザのサインアップとサインイン

アカウントを確認するための Email アドレスや電話番号の検証

パスワードを紛失した場合にユーザは自分自身でパスワード変更可能

Email、電話番号もしくはユーザ名とパスワードを使用したサインアップサインアップ後のサインイン

ユーザプロファイル カスタム属性を含むユーザプロファイルの取得と更新

SMS ベースの MFA 有効にすると、サインアップ、パスワード紛失におけるフローの一環としてSMS を通じた確認コードによる多要素認証(MFA)を利用可能

トークンベースの認証 OpenID Connect (OIDC) とOAuth2.0の標準をベースとしたJSON Web Tokens (JWT)を利用

AWS Lambdaを利用した認証フローのカスタマイズ

39

Page 40: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Lambdaフックを用いたフローのカスタマイズ

40

カテゴリ フック シナリオ例

Authentication Events

Pre Authenticationサインインリクエストを許可もしくは拒否するカスタムバリデーション

Post Authentication 分析のためにイベントログを記録

Sign-Up

Pre Sign-upサインアップリクエストを許可もしくは拒否するカスタムバリデーション

Post ConfirmationWelcomeメッセージのカスタマイズや分析用にイベントログを記録

Messages Custom Messageメッセージの高度なカスタマイズとローカライゼーション(メッセージの日本語可もこれを利用して可能)

Custom Authentication

Flow

Define Auth Challenge カスタム認証フロー内で次のチャレンジを決定

Create Auth Challenge カスタム認証フロー内でチャレンジの作成

Verify Auth Challenge Response

カスタム認証フロー内でレスポンスが正しいか決定

Page 41: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

カスタム認証フロー

Your User Pools

Custom Authentication Challenges

(e.g., CAPTCHA, passworldless auth, custom 2nd factors)

1

2 5

6

3

4

41 http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html

Page 42: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

User Poolに対する管理者の操作

ユーザの管理

アプリのパーミッション

パスワードポリシーのセットアップ

ユーザプールの作成と管理

ユーザーパスワードのリセット、ユーザーの確認、MFAの有効化、ユーザーの削除、グローバルサインアウトといった管理操作

アプリ単位での各ユーザ属性に対するRead/Writeパーミッションの設定

最小文字数/大文字/特殊文字を含めるといったパスワード要件のコントロール

AWS アカウント内に複数のユーザプールを作成、構成、削除可能

属性の定義 ユーザプロファイル用のカスタム属性

必須属性データの要求 サインアッププロセスの完了前にユーザによって提供される必要がある属性の選択

ユーザの検索 コンソールもしくはAdminAPIを通じた属性に完全一致もしくは前方一致ベースのユーザ検索

42

Page 43: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

デバイスの記憶

ユーザに関連づいたデバイスをCognitoが記憶し、操作APIを提供

1

サインインごとに2要素のチャレン

ジを完了させる必要があるとき、ユーザが直面する手間を軽減するにはどうするべきか?

特定のビジネス要件を達成するためにユーザーとデバイスを関連付けるロジックを構築するにはどうするべきか?

2

43

Ex) あるユーザの持つ全デバイスを強制サインアウトさせるには?

Page 44: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

既存のユーザ管理からの移行 - インポートパターン

csvファイルをアップロードすることによるUser Poolへのユーザのインポート

パスワードはインポート不可能のため、初回サインインの際、ユーザは新規パスワードを作成

インポートされる各ユーザはemailアドレスもしくは電話番号を保有する必要がある

正しいファイル形式はコマンドで確認可能

44 http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html

$ aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"

{"CSVHeader":["name","given_name","family_name","middle_name","nickname",

"preferred_username","profile","picture","website","email","email_verifie

d","gender","birthdate","zoneinfo","locale","phone_number","phone_number_

verified","address","updated_at","cognito:mfa_enabled","cognito:username"

],

"UserPoolId": "ap-northeast-1_FplQqjsOc"}

Page 45: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

既存のユーザ管理からの移行 - 既存処理をフックするパターン

45

1. Your User Poolsでのログインを試行

2. UserNotFoundExceptionであれば、ユーザ名とパスワードを保持しながら既存システムでのログインを試行

3. 既存システムでのログインが成功したらUser Poolにユーザを作る

AmazonCognito

既存ログインサーバ

①username,password

②username,passwordで引当

③UserNotFound

④username,password

⑤ログイン成功

⑥username,passwordkでサインアップ

Page 46: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Your User Poolsの実装イメージ – JavaScript in the Browserの場合

46 https://github.com/aws/amazon-cognito-identity-js/

<script src="/path/to/aws-cognito-sdk.min.js"></script><script src="/path/to/amazon-cognito-identity.min.js"></script><!-- optional: only if you use other AWS services --><script src="/path/to/aws-sdk-2.6.10.js"></script>

SDKのロード

サインアップ、検証コード確認、サインイン

let cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser({

Username: username, Pool: createUserPoolObj()});

cognitoUser.confirmRegistration(verificationCode, forceAliasCreation,(err, result)=>{});

let poolData = {UserPoolId : '...', ClientId : '...'};

let userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);

userPool.signUp(username, password, attributes, validationData, function(err, result){});

let authenticationData = {Email: email,Password: password};

let authenticationDetails = new

AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);

let cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);

cognitoUser.authenticateUser(authenticationDetails, {onSuccess: (result)=>{}});

Page 47: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Amazon API Gatewayとのインテグレーション

カスタムオーソライザー ネイティブサポート

ユーザプール内に存在するユーザをもとにした認証のための IDトークンを受け取るようにAPI Gatewayを構成

OAuthやSAMLといったベアラートークン認証の仕組みを用いてAPIへのアクセスをコントロール。Lambdaファンクションを用いて許可するアクセスポリシーを生成して返す

1 2

47

Page 48: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Federated Identities

48

Facebook

Corporate

ID

Etc.

Sign in with

SAML

Page 49: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Federated Identities

AWSリソースへのアクセスを制御するTemporary Credentialsを払い出す

アプリにハードコーディングしなくてよい(してはいけない)

未認証のゲストユーザ用IAM Roleも設定可能

各種のIdentity Providerに対応

対応する外部プロバイダー(Web Identity)

Amazon, Facebook, Twitter/Digits, Google, OpenID Connect準拠の認証サービス

独自開発の認証システム(Developer Identity)

SAML ID Provider

49 http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-identity.html

Page 50: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Federated Identitiesの概念Identity

複数IDプロバイダーのアカウント、複数デバイスを持ちうる一人のユーザ

IdentityID

Identityに付与される一意のID

IdentityPool

Role等の紐付け設定するプール。多くの場合一つのアプリまたはサービスに相当する単位

未認証アクセスのOn/Offを設定可能

Authenticated Role

認証済みIdentityに付与する権限を定義したIAM Role。一つのIdentityPoolにつき一つ設定

Unauthenticated Role

未認証Identity(ゲストユーザ)に付与する権限を定義したIAM Role。未認証アクセスをOnにしたIdentityPoolの場合に設定

Authentication Providers

Identity Poolに紐付ける認証プロバイダ

50 http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-identity.html

Page 51: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Federated Identitiesの認証フローWebIdentity(外部プロバイダー, OIDC)の場合

51 http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html

Page 52: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Federated Identitiesの認証フローDeveloper Identity(独自開発の認証システム)の場合

52 http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html

Page 53: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Credentialsの取得処理(JavaScript)

53

AWS.config.region = '<region>';AWS.config.credentials = new AWS.CognitoIdentityCredentials({

IdentityPoolId: 'IDENTITY_POOL_ID',Logins: { // Loginsを省略すればゲストユーザアクセスになる

'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>':userPoolSession.getIdToken().getJwtToken()

}});

AWS.config.credentials.get(function () {var accessKeyId = AWS.config.credentials.accessKeyId;var secretAccessKey = AWS.config.credentials.secretAccessKey;var sessionToken = AWS.config.credentials.sessionToken;

});

http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/getting-credentials.html

Page 54: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Tips:Federated Identitiesでユーザごとに異なる権限を与える

54

ロールベースアクセスコントロールYour User PoolsのUser Groupで分ける

Your User Poolsのユーザ属性で分ける

IAM Roleのポリシー変数でIdentityIDごとに制御

SAMLプロバイダでカスタムRoleを指定

Page 55: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Your User PoolsのUser Groupで権限を分ける-1

55

User Poolでグループを作成する際にIAM Roleを設定

https://aws.amazon.com/jp/blogs/aws/new-amazon-cognito-groups-and-fine-grained-role-based-access-control-2/

Page 56: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Your User PoolsのUser Groupで権限を分ける-2

56

Identity PoolにIDプロバイダとしてUser Poolを紐付ける際に“Choose role from token” を選択

https://aws.amazon.com/jp/blogs/aws/new-amazon-cognito-groups-and-fine-grained-role-based-access-control-2/

Page 57: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Your User Poolsのユーザ属性で権限を分ける

57 https://aws.amazon.com/jp/blogs/aws/new-amazon-cognito-groups-and-fine-grained-role-based-access-control-2/

Page 58: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

IAM Roleのポリシー変数でIdentityIDごとに制御

58

要件:「自分のリソースだけにアクセスさせたい」

特に2-Tierアーキテクチャの採用時に有効

http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/iam-roles.html

Page 59: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

IAM Roleのポリシー変数でIdentityIDごとに制御

59

アクセス可能なS3のプレフィクスを制限

http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/iam-roles.html

{

"Version": "2012-10-17",

"Statement": [

{

"Action": ["s3:ListBucket"],

"Effect": "Allow",

"Resource": ["arn:aws:s3:::mybucket"],

"Condition": {

"StringLike": {"s3:prefix": ["${cognito-identity.amazonaws.com:sub}/*”]}

}

},{

"Action": ["s3:GetObject", "s3:PutObject"],

"Effect": "Allow",

"Resource": ["arn:aws:s3:::mybucket/${cognito-identity.amazonaws.com:sub}/*”]

}

]

}

Page 60: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

IAM Roleのポリシー変数でIdentityIDごとに制御

60

アクセス可能なDynamoDBのキーを制限

http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/iam-roles.html

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Action": [

"dynamodb:Query",

"dynamodb:PutItem",

"dynamodb:UpdateItem" ],

"Resource": ["arn:aws:dynamodb:us-west-2:123456789012:table/MyTable"],

"Condition": {

"ForAllValues:StringEquals": {

"dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"]

}

}

}

]

}

Page 61: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

SAMLプロバイダでカスタムRoleを指定

61

SAML IdPをIAMコンソールで設定

Identity PoolにSAML IdPを紐付け

SAML IdPで認証し、SAML アサーションを取得

https://aws.amazon.com/SAML/Attributes/Roleクレームで指定したIAM Roleが認証済みユーザに割り当てられる

https://aws.amazon.com/jp/blogs/mobile/announcing-saml-support-for-amazon-cognito/http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html

Page 62: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Identityがカバーするユースケース

Business to Consumer

IoT

Business to Employee

SAML Federation

EnterpriseDirectory

app

app

Partner A

Partner B

app

Business to Business

AWS IoT

API Gateway with Lambda

Allow

CustomAuthorizer

Access Control for AWS Resources

AWS IAM

62

Deny

Page 63: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Sync

63

Page 64: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Sync

64

User Data Storage andSync

…Any PlatformiOS/Android/FireOS/Webブラウザ

ユーザのデータ、設定や情報を保存アプリとデバイスのデータをクラウドに保存でき、未認証Identityで保存したデータは認証後にマージ

クロスデバイス/クロス OS な同期数行のコードでデバイスやプラットフォームをまたがってユーザのデータや設定を同期

オフライン動作データは常にローカルのストレージにまず保存されるので電波が不安定もしくは不通であってもシームレスに動作

k/v data

Identity pool

バックエンド不要スケーラブルで信頼性の高いデータ同期基盤をシンプルなクライアント SDK を組み込むだけで利用可能

Page 65: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Cognito Federated IdentityとCognito Sync のデータモデル

Identity Pool: アプリユーザのPool。アプ

リ間で共有する場合もある

Identity: 個々のユーザ。IDプロバイダ間

をまたいでユニーク。ゲストユーザも可

Dataset: ユーザごとのデータのグループ

Record: Key/Valueのユーザデータ

AWS Account

Dataset

IdentityIdentityIdentity

DatasetDataset

Identity

Pool

1:60

1:n

1:20

DatasetDatasetRecord

1:1024

You

Your App

Your App Users

User Data Container

User Data

65

Page 66: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

2種類の同期処理

synchronize接続が不安定な場合などのエラー時の処理は自分で実装する必要がある

コールされるとクラウド上の変更がpullされ、ローカルの変更はpushされる

synchronizeOnConnectivity実行時に接続可能であれば通常のsynchronizeメソッドと同様の振る舞いをする

接続できなかったときは接続状態を監視し可能になったら同期される

複数回呼び出した場合は最後のオペレーションがキープされる

66

Page 67: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

コード例(Android)

// Cognito Sync client の初期化

CognitoSyncManager syncClient = new CognitoSyncManager(getApplicationContext(),Regions.AP_NORTHEAST_1, // RegioncredentialsProvider);

//Datasetをオープンし、レコードを追加

Dataset dataset = syncClient.openOrCreateDataset("myDataset");dataset.put("myKey", "myValue");

//同期処理の実行

dataset.synchronize(new DefaultSyncCallback() {@Overridepublic void onSuccess(Dataset dataset, List newRecords) {

//Your handler code here}

});

http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/handling-callbacks.html67

Page 68: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

コード例(JavaScript)

// Cognito Sync clientの初期化AWS.config.credentials.get(function(){

var syncClient = new AWS.CognitoSyncManager();syncClient.openOrCreateDataset('myDataset', function(err, dataset) {

dataset.put('myKey', 'myValue', function(err, record){dataset.synchronize({

onSuccess: function(data, newRecords) {// ハンドラを実装

},/*onFailure: function(error) {},onConflict: function(data, conflicts, callback) {},onDatasetDeleted: function(dataset, deletedDataset, callback) {},onDatasetMerged: function(dataset, merges, callback) {}*/

});});

});});

http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/handling-callbacks.html68

Page 69: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

モバイルアプリ(デバイス1)

Mobile SDK Amazon CognitoSync Dataset

2. データ同期

モバイルアプリ(デバイス2)

Mobile SDKAmazon SNSMobile Push

3. プッシュ通知

4. データ同期

Amazon SNS Mobile Push との連携

Amazon Cognito がデータセットが更新されたタイミングで、Amazon SNS Mobile Push と連携して、データセットにサブスクライブしている各デバイスにプッシュ通知を送信できる。プッシュ通知を受け取ったアプリはデータストアの再同期を行うように実装するなど。

Amazon Cognito Push Sync

69

1. サブスクライブ

Page 70: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

Amazon Kinesis との連携

Amazon Cognito のデータセットが更新されたタイミングで、Amazon Kinesis ストリームで更新や同期のデータを受け取ることができる。

モバイルアプリ

Mobile SDK

Amazon CognitoSync Store

1. データ同期

Amazon Kinesis

2. StreamContent

ストリームの内容

3. 例えば

{

"identityPoolId" : "Pool Id”

"identityId" : "Identity Id ”

"dataSetName" : "Dataset Name”

"operation" : "(replace|remove)”

"kinesisSyncRecords" : [

{

"key" : "Key",

"value" : "Value",

"syncCount" : 1,

"lastModifiedDate" : 1424801824343,

"deviceLastModifiedDate" : 1424801824343,

"op": "(replace|remove)" }, ...

],

"lastModifiedDate": 1424801824343,

"kinesisSyncRecordsURL": "S3Url",

"payloadType" : "(S3Url|Inline)",

"syncCount" : 1

}

Amazon Cognito Stream

70

AWSLambda

Page 71: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

モバイルアプリ

Mobile SDK Amazon CognitoSync Store

1. データ同期AWS Lambda

2. Sync Trigger

Amazon Lambda との連携

3. 何か処理

Amazon Cognito Events

Key Value

住所 東京都□渋谷区□松濤□1丁目

Key Value

住所 東京都渋谷区松濤1丁目

元データ

修正済みデータ空白を削除

するプログラム

Lambda Function

71

Page 72: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

料金体系

72

Page 73: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

料金体系

Cognito Identity

Federated Identities: 無料

Your User Pools:

73 https://aws.amazon.com/jp/cognito/pricing/

最初の 50,000 MAU まで 無料

次の 50,000 MAU まで 0.00550 USD

次の 900,000 MAU まで 0.00460 USD

次の 9,000,000 MAU まで 0.00325 USD

10,000,000 MAU を超える分 0.00250 USD

Cognito Sync

Syncオペレーション1万回につき0.15 USD/月

1GBの保存容量につき0.15 USD/月

最初12ヶ月間の無料枠中はSync 100万回/月 と保存容量10GB/月 が無料

※MFAや電話番号検証にSMSを送信する場合は別途Amazon SNSの料金が必要

Page 74: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

課金ボリュームと計算のシミュレーション

74

例User Poolsを使った100万登録ユーザ、15万MAUの大規模なサービス

各ユーザが毎日3回データをSync

ユーザあたりのデータ保存量は10KB、全体の総保存容量は10GB

計算User Pools

(50,000MAU * 0.00550 USD) + (50,000MAU * 0.00460 USD) = 505 USD

Cognito Sync

(150,000 MAU * 3 Sync * 31 Days) / 10000 * 0.15 USD = 209.25 USD

10 * 0.15 = 1.5 USD

計: 505 + 209.25 + 1.5 = 715.75 USD/月

Page 75: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

参考資料

Amazon Cognito 開発者用リソースhttps://aws.amazon.com/jp/cognito/dev-resources/

AWS Mobile Bloghttps://aws.amazon.com/jp/blogs/mobile/

Amazon Cognito よくある質問https://aws.amazon.com/jp/cognito/faqs/

75

Page 76: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

オンラインセミナー資料の配置場所

• AWS クラウドサービス活用資料集– http://aws.amazon.com/jp/aws-jp-introduction/

• AWS Solutions Architect ブログ– 最新の情報、セミナー中のQ&A等が掲載されています

– http://aws.typepad.com/sajp/

76

Page 77: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

公式Twitter/FacebookAWSの最新情報をお届けします

@awscloud_jp

検索

最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを日々更新しています!

もしくはhttp://on.fb.me/1vR8yWm

77

Page 78: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

AWSの導入、お問い合わせのご相談

AWSクラウド導入に関するご質問、お見積り、資料請求をご希望のお客様は以下のリンクよりお気軽にご相談くださいhttps://aws.amazon.com/jp/contact-us/aws-sales/

※「AWS 問い合わせ」で検索してください

78

Page 79: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

ご参加ありがとうございました

79

Page 80: AWS Black Belt Online Seminar · 【AWS Black Belt Online Seminar】 Amazon Cognito Amazon Web Services Japan K.K. Solutions Architect Akihiro Tsukada 2017.05.17 Add user sign-up,

80