Q57 — AWS DVA-C02 第3章
第 57/100 問 | ← 第3章
ある会社が、Amazon CognitoユーザープールをIDプロバイダーとして使用するアプリケーションを運用しています。この会社は、ユーザーレコードへのアクセスを安全に保つ必要があります。すでに多要素認証(MFA)を設定済みです。さらに、ユーザーが毎回ログインする際に、メールでログイン活動通知を送信したいと考えています。この要件を最も効率的に満たす解決策はどれですか?
- A. Amazon Simple Email Service (Amazon SES) を用いてメール通知を送信するAWS Lambda関数を作成します。この関数を呼び出すためのAmazon API Gateway APIを追加します。ログイン確認を受け取った後、クライアント側からAPIを呼び出します。
- B. Amazon Simple Email Service (Amazon SES) を用いてメール通知を送信するAWS Lambda関数を作成します。この関数にAmazon Cognitoの「認証後」Lambdaトリガーを追加します。 ✓
- C. Amazon Simple Email Service (Amazon SES) を用いてメール通知を送信するAWS Lambda関数を作成します。Amazon CloudWatch Logsのログサブスクリプションフィルターを作成し、ログイン状態に基づいてこの関数を呼び出します。
- D. Amazon CognitoがすべてのログをAmazon Kinesis Data Firehoseにストリーミングするよう設定します。ストリーミングされたログを処理し、各ユーザーのログイン状態に基づいてメール通知を送信するAWS Lambda関数を作成します。
正解: B. Amazon Simple Email Service (Amazon SES) を用いてメール通知を送信するAWS Lambda関数を作成します。この関数にAmazon Cognitoの「認証後」Lambdaトリガーを追加します。
解説
Amazon SESは、コスト効率が高く信頼性のあるメール配信サービスであり、通知メールの送信に最適です。AWS Lambdaは、イベント駆動型のサーバーレス計算サービスであり、認証処理と通知送信に非常に適しています。Amazon Cognitoの「認証後」Lambdaトリガーは、ユーザーがログインするたびに自動的にLambda関数を実行します。これにより、ログイン活動通知メールを即座に送信するロジックを実装できます。このアプローチは、効率的かつセキュアで、リアルタイム性も確保されます。他の選択肢と比較すると:AはCloudWatch Logsのサブスクリプションとフィルター設定が手動で複雑であり、明確な認証イベントトリガーがありません。Cはクライアント側からのAPI呼び出しを必要とし、自動通知要件を満たしません。DはKinesis Data FirehoseとLambdaを用いたログストリーミングは、直接的ではなく遅延が生じやすく、複雑性も高まります。したがって、最もシンプルで直接的かつリアルタイム性を満たす解決策はBです。