SAA / ドメイン1 セキュアなアーキテクチャの設計
Amazon Cognito
は、Web アプリケーションやモバイルアプリケーションの利用者を認証し、必要に応じて AWS リソースへの一時的なアクセス権を提供するサービスです。SAA では、ユーザープールとアイデンティティプールの違い、企業従業員向けの との使い分けが重要です。
概要
は、アプリ利用者のサインアップ、サインイン、、ソーシャルログイン、外部 連携を提供します。アプリケーションが独自にパスワードデータベースを実装する負担を減らせます。
主要技術
①ユーザープール ⚠️ 頻出
ユーザープールはアプリ利用者のディレクトリです。認証に成功すると ID トークン、アクセストークン、更新トークンを発行します。アプリや で「誰であるか」を確認する用途です。
②アイデンティティプール
アイデンティティプールは、認証済みまたはゲストの利用者に一時的な AWS 認証情報を提供します。 ロールと連携し、 への写真アップロードなど、クライアントから AWS リソースへ限定アクセスさせます。
| 機能 | 主目的 | 出力 |
|---|---|---|
| ユーザープール | ユーザー認証 | JWT トークン |
| アイデンティティプール | AWS リソースへの認可 | 一時的な AWS 認証情報 |
③外部IdPとMFA
SAML、OIDC、ソーシャル と連携できます。 やパスワードポリシーを利用し、認証処理をアプリケーションから分離します。
④API GatewayやALBとの統合
のオーソライザーや の認証機能と連携し、認証済み利用者だけをバックエンドへ到達させられます。認証と による AWS 認可は別の判断です。
ALB の認証機能は のルールで動き、 ユーザープールか OpenID Connect 対応の (社内の IdP など)で利用者を認証してから、ターゲットへリクエストを転送します。アプリケーションにログイン処理を実装しなくても、社員だけが社内向けアプリを使える状態を作れます。
試験対策
| 問題文の要件 | 選ぶ機能 |
|---|---|
| Web/モバイルアプリの利用者を認証 | ユーザープール |
| 認証済み利用者へ の限定権限を渡す | Cognito アイデンティティプール |
| 従業員が複数 AWS アカウントへアクセス | |
| や へ権限を付与 | ロール |
「ログイン」と「AWS リソースへの一時権限」を分けて考えると、2種類のプールを選びやすくなります。