Q25 — AWS SAA-C03 第5章
第 25/65 問 | ← 第5章
Q325. ソリューションアーキテクトが、銀行向けのクレジットカードデータ検証リクエストを非同期で処理するアプリケーションを設計しています。このアプリケーションはセキュアである必要があり、各リクエストを最低1回は確実に処理しなければなりません。これらの要件を最もコスト効率よく満たすソリューションはどれですか?
- A. AWS Lambda のイベントソースマッピングを使用します。イベントソースとして Amazon Simple Queue Service (Amazon SQS) の標準キューを指定します。暗号化には AWS Key Management Service (SSE-KMS) を使用し、Lambda 実行ロールに kms:Decrypt 権限を付与します。 ✓
- B. AWS Lambda のイベントソースマッピングを使用します。イベントソースとして Amazon Simple Queue Service (Amazon SQS) の FIFO キューを指定します。暗号化には SQS 管理型暗号化キー (SSE-SQS) を使用し、Lambda 関数に暗号化キーの呼び出し権限を付与します。
- C. AWS Lambda のイベントソースマッピングを使用します。イベントソースとして Amazon Simple Queue Service (Amazon SQS) の FIFO キューを指定します。暗号化には AWS KMS キー (SSE-KMS) を使用し、Lambda 実行ロールに kms:Decrypt 権限を付与します。
- D. AWS Lambda のイベントソースマッピングを使用します。イベントソースとして Amazon Simple Queue Service (Amazon SQS) の標準キューを指定します。暗号化には AWS KMS キー (SSE-KMS) を使用し、Lambda 関数に暗号化キーの呼び出し権限を付与します。
正解: A. AWS Lambda のイベントソースマッピングを使用します。イベントソースとして Amazon Simple Queue Service (Amazon SQS) の標準キューを指定します。暗号化には AWS Key Management Service (SSE-KMS) を使用し、Lambda 実行ロールに kms:Decrypt 権限を付与します。
解説
クレジットカードデータの検証という要件から、各リクエストを「最低1回」確実に処理する(at-least-once processing)必要があり、かつ重複処理を許容できない(idempotency が重要)ため、メッセージの重複防止と順序保証が可能な FIFO キューが必須です。標準キューでは重複メッセージが発生する可能性があり、要件「at least once」を満たす一方で、重複処理による不具合リスクがあります。FIFO キューは重複防止(deduplication)と厳密な順序保証を提供し、金融系アプリケーションに適しています。また、セキュリティ要件を満たすためには、SQS での静止時データ暗号化が必要です。SSE-KMS はカスタマーマネージドキーを用いるため、より細かいアクセス制御や監査が可能であり、PCI DSS 対応などの厳格なセキュリティ要件にも適合します。SSE-SQS は AWS マネージドキーで簡易ですが、KMS を用いた暗号化の方が柔軟性・制御性に優れ、本ユースケースでは推奨されます。したがって、FIFO キュー+SSE-KMS+kms:Decrypt 権限の組み合わせである選択肢 C が、要件(セキュリティ・重複防止・最低1回処理)を満たしつつ、コスト効率も高い最適解です。なお、Lambda が SQS からメッセージを取得して処理する際には、Lambda 実行ロールに kms:Decrypt 権限が必要であり、「暗号化キーの呼び出し権限」という曖昧な表現ではなく、明示的な kms:Decrypt 権限の付与が正しく、選択肢 B および D の記述は不正確です。