Cognitoを理解するため、機能をまとめる
AWS Cognitoとは何か
Webアプリやモバイルアプリケーションに認証機能を提供するサービス
機能
ユーザープール
- サインアップ、サインインを簡単にアプリケーションに実装
- カスタム可能な組み込みサインインUI
- ユーザープロファイルの管理(ログイン情報、ステータス管理など)
- MFA,本人確認などユーザー認証の一般的な機能
- アドバンスドセキュリティ機能:有効にすると、ユーザープールに記録されたID、パスワードが漏洩した時にユーザーブロックが自動で可能
- Lambdaトリガー(サインインをトリガーにLambda実行など)
- Web IDフェデレーション(Facebook,Googleなど)
ユーザープール = 認証
* 二重管理になるので、ログイン情報はcognitoで、その他の情報はDBの方が良い
- API Gateway、ALB AppSyncはユーザープールと連携できるので、サインイン済みユーザーが認証なしでリソースにアクセスできる
- lambdaトリガーを使用して、ログの収集が可能
- AWS Pinpointとの連携で、対象ユーザーの利用情報が分析できる
- Cloud Trailとの連携でログが記録され、監査やトラブルシューティングに役立つ(一部のサインイン方法では使えない)
- CloudWacthとの連携によって失敗成功回数がわかるので、どれくらい使われているかわかる
IDプール
S3やDynamoにユーザーが一時的にAWS credentialsを発行しアクセスできる。
IDはアイデンティティという意味。
IDプール = 認可(アクセスコントロール)