Q33 — AWS SAA-C03 第8章
第 33/65 問 | ← 第8章
Q528. ある企業のWebアプリケーションは、AWS Lambda関数の前にAmazon API Gateway APIを配置し、そのLambda関数がビジネスロジックを処理し、Amazon DynamoDBテーブルがデータをホストする構成で構成されています。アプリケーションでは、ユーザーの識別にAmazon Cognitoユーザープールが使用されています。ソリューションアーキテクトは、このアプリケーションを更新して、サブスクリプションを持つユーザーのみがプレミアムコンテンツにアクセスできるようにする必要があります。この要件を、最も少ない運用オーバーヘッドで満たすソリューションはどれですか?
- A. API Gateway APIでAPIキャッシュおよびレート制限(スロットリング)を有効化します。
- B. API Gateway APIにAWS WAFを設定します。サブスクリプションを持つユーザーをフィルタリングするルールを作成します。
- C. DynamoDBテーブル内のプレミアムコンテンツに対して、細かい粒度のIAM権限を適用します。
- D. API利用プランとAPIキーを実装して、サブスクリプションを持たないユーザーのアクセスを制限します。 ✓
正解: D. API利用プランとAPIキーを実装して、サブスクリプションを持たないユーザーのアクセスを制限します。
解説
正解はDです。API利用プランとAPIキーは、API Gatewayの組み込み機能であり、サブスクリプション状態に基づくアクセス制御をシンプルかつ低オーバーヘッドで実現できます。APIキーはCognitoユーザープールと連携して、認証済みユーザーごとに発行・管理でき、利用プランによりアクセス頻度や機能制限も設定可能です。一方、Aはパフォーマンス向上策でありアクセス制御にはなりません。BのAWS WAFはIPベースやHTTPヘッダーに基づくフィルタリングが主で、Cognitoによるユーザー認証状態(サブスクリプション有無)を直接判定できません。CはDynamoDBレベルのアクセス制御ですが、API GatewayからLambdaを経由してアクセスされる場合、Lambda関数自体がDynamoDBにアクセスするため、Lambdaの実行ロールに権限を付与する必要があり、ユーザー単位の動的なサブスクリプションチェックには不向きです。したがって、運用オーバーヘッドが最小で、要件を正確に満たすのはDです。