
Cognito は、アプリケーションやサービスに安全な認証・認可基盤を提供する認証基盤サービスです。
ユーザー情報を管理する User Pool (ユーザプール)では、ユーザーのサインアップ / サインイン、MFA(Multi-Factor Authentication)による多要素認証、Password Policy に基づくパスワード強度管理、異常なログイン試行を検知する Advanced Security 機能を利用できます。さらに、ユーザーの端末情報を保持して認証リスクを低減する Device Tracking、アカウント復旧を容易にする Account Recovery 機能も備えています。
Cognitoは、IdP(Identity Provider) との Federation(フェデレーション認証) に対応しており、Google や Apple などのソーシャルログイン、または SAML 2.0 による企業認証基盤との連携が可能です。この仕組みを通じて、外部認証を扱うFederated Identityを構成できます。ログイン画面には、AWSが提供する Hosted UI を利用でき、OAuth 2.0 および OIDC (OpenID Connect) に基づく標準プロトコルで認証フローを実装します。認証後には、Access Token、ID Token、Refresh Token の3種類の Token が発行され、ユーザーセッションを安全に管理します。
Identity Pool(アイデンティティプール) を使用することで、認証済みまたは匿名ユーザーに対して一意の Cognito Identity(識別ID) を発行し、AWSリソースへアクセスするための一時的なSTS(Security Token Service)一時クレデンシャル(認証情報)を払い出すことができます。この際、ユーザー属性やIdPごとに異なる権限を割り当てるための IAM Role Mapping を設定でき、柔軟なアクセス制御を実現します。
認証やサインアップの各ステップでは Cognito Trigger を利用して AWS Lambda 関数を呼び出し、カスタムロジックや追加検証処理を組み込むことが可能です。これにより、企業独自のセキュリティ要件や認証フローを容易に拡張できます。
重要用語
ユースケース
- リスト1
 - リスト2
 - リスト3
 
ベストプラクティス
- リスト1
 - リスト2
 - リスト3
 
高可用性・冗長化
- リスト1
 - リスト2
 - リスト3
 
セキュリティ
- リスト1
 - リスト2
 - リスト3
 
運用・監視
- リスト1
 - リスト2
 - リスト3
 
デフォルトのリミット値
| リミット事項 | 上限数 | 
|---|---|
| 項目1 | 上限1 | 
| 項目2 | 上限2 | 
| 項目3 | 上限3 | 
| 項目4 | 上限4 | 
| 項目5 | 上限5 | 
AWS CLIのサンプルコード
vpc を作成
#include <stdio.h>
void main(void) {
  int i;
  for (i=0; i<10; i++)
    printf("%d\n", i);
vpc を作成
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
Terraformのサンプルコード
vpc を作成
bbbbbbbbbbbbbbbbbbbbbbb
ddddddddddddddddddddddd
vpc を作成
xxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyy
課金モデル
| 項目 | 内容 | 
|---|---|
| 項目1 | 内容1 | 
| 項目2 | 内容2 | 
| 項目3 | 内容3 | 
| 項目4 | 内容4 | 
| 項目5 | 内容5 |