-- Views
March 11, 26
スライド概要
外部インターネット、パブリックサブネット、プライベートサブネットの3つのネットワークエリアに分け、モバイルアプリがインターネット経由で Cognito ユーザープールにサインインし、取得した認証トークンを ID プールに渡して一時的認証情報を取得します。その情報で API Gateway のパブリックエンドポイントにリクエストし、Gateway がプライベートサブネットの Lambda 関数へ転送し、Lambda が S3 や DynamoDB へアクセスします。認証は MFA などを含み、認可は IAM ロールで管理し、プライベートサブネットはマルチ AZ 構成で高可用性を確保しています。この構成はセキュリティと可用性を最大化するように設計しています。
Amazon Cognito による 認証(ユーザープール)と認可(IDプール) の統合設計
1. コンポーネントの配置 この図では、大きく3つのネットワークエリアに配置を分けています。 ①外部インターネット:モバイルアプリ (ユーザー端末) がここに配置されます。 ②VPC (Virtual Private Cloud) - パブリックサブネット:インターネットから直接アクセス可能なエリアです。 ③VPC - プライベートサブネット (Multi-AZ構成):インターネットから直接アクセスできない、安全なエリアです。 ① ② ③
2. 通信の流れ: 通信の制御とAWSサービス 通信は大きく2つのステージに分かれ、それぞれがセキュアに制御されています。 ステージA:認証・認可 (インターネット上での流れ) ①認証 (Authentication): アプリはインターネット経由でユーザープールにアクセスし、サインインします。 「認証トークン」を受け取ります。 ②認可 (Authorization): アプリは認証トークンをインターネット経由でIDプールに渡し、 AWSリソースにアクセスするための「一時的認証情報(アクセスキー)」と交換します。 この時、適切なIAMロールが一時的に割り当てられます。 ① ②
ステージB:安全なAPIアクセス (VPCへの流れ) ①アプリは、一時的認証情報を使用して、パブリック API Gateway(インターネットゲートウェイ経由) にリクエストを送信します 無効なリクエストはここで遮断されます。 ②API Gatewayは、検証済みリクエストをプライベートサブネット内のLambda 関数に転送します。 ③Lambda関数は、さらにバックエンドのデータベース(S3/DynamoDB)にアクセスします。 ① ② ③
3. この構成の意図 この構成は、提示された要件を、セキュリティ、可用性、運用の観点から最適に満たすように設計されています。 ①ユーザーのサインアップ、サインイン、セキュリティ要件 (MFA, MFA) 図にある通り、このマネージドサービス単体で、サインアップ/サインインから MFA、パスワードポリシー、アカウント回復まで、すべての要件を満たす包括的なユーザー管理機能を提供します。 ②保護されたバックエンド AWS リソースへのアクセス IDプール、IAMロール、API Gatewayによる階層防御を行います。 ③高可用性 (Multi-AZ) プライベートサブネットを複数のアベイラビリティゾーンにまたがって構成し(Zone A / Zone B)、 Lambda、S3、DynamoDBなどのリソースを冗⾧化することで、単一障害点(SPOF)を排除しています。 この詳細なネットワーク構成図によって、単なるCognitoの機能的な役割だけでなく、 AWS上のインフラとしてどのようにセキュリティ、可用性、可用性を担保しているかがより深く理解できると思います。