無限ノック › DVA 練習問題一覧 › 問題
DVAセキュリティ

あるSaaSプロバイダーが Amazon API Gateway REST API でマルチテナントAPIを構築しています。認可ロジックは、`Authorization` ヘッダーの JWT・`X-Tenant-ID` ヘッダー・リクエストパスの3つを組み合わせて判断する必要があります。これら3つの入力すべてにアクセスして認可ロジックを実装できる設定はどれですか?

A
TOKEN タイプの Lambda オーソライザーを設定し、identitySource に $request.header.Authorization を指定して JWT を検証する
TOKEN タイプのオーソライザーは identitySource に指定した単一のソース(通常は Authorization ヘッダー)のみを Lambda に渡す設計。X-Tenant-ID ヘッダーやリクエストパスを同時に参照できず、3入力を組み合わせる認可ロジックを実装できないため要件を満たせない。
B
REQUEST タイプの Lambda オーソライザーを設定し、Lambda 関数のイベントから複数のヘッダーとリクエストパスを参照して認可する
✓ 正解
REQUEST タイプのオーソライザーはリクエスト全体(ヘッダー・パス・クエリ文字列・ステージ変数)をイベントとして受け取る。event.headers['X-Tenant-ID'] や event.path を参照して複合的な認可ロジックを Lambda 内に自由に実装できるため、要件を満たす正しい設定。
C
Amazon Cognito ユーザープールオーソライザーを設定し、JWT のカスタムクレームに X-Tenant-ID を含めて認可ロジックを実装する
Cognito ユーザープールオーソライザーは Cognito 発行 JWT の署名と有効期限の検証に特化した機能。追加ヘッダーやリクエストパスを組み合わせたカスタム認可ロジックを記述する仕組みは提供しておらず、この要件には適合しない。
D
API Gateway の使用量プランとテナントごとの API キーを設定し、X-Tenant-ID ヘッダーの値と組み合わせて認可を行う
API Gateway の使用量プランと API キーは、API の利用量制限やスロットリング管理を目的とした機能であり、認可(Authorization)の仕組みではない。AWS はセキュリティ上の理由から API キーを認証・認可手段として使用することを推奨していない。

解説

REQUEST タイプの Lambda オーソライザーは、HTTP リクエスト全体(すべてのヘッダー・クエリ文字列・パスパラメータ・ステージ変数・リクエストコンテキスト)を Lambda 関数のイベントオブジェクトとして渡します。event.headers['Authorization']・event.headers['X-Tenant-ID']・event.path の3つをイベントから参照できるため、複合的な認可ロジックを自由に実装できます。 選択肢AのTOKEN タイプ Lambda オーソライザーは、identitySource で指定した単一のトークン(通常は Authorization ヘッダー)のみを受け取る設計で、他のヘッダーやパスには直接アクセスできないため要件を満たせない。 選択肢CのAmazon Cognito ユーザープールオーソライザーは、Cognito が発行した JWT の検証に特化しており、X-Tenant-ID ヘッダーやパスを組み合わせた独自の認可ロジックを記述する拡張機能を持たない。 選択肢DのAPI Gateway 使用量プランと API キーは、スロットリングや利用量管理のための機能であり、IAM または Lambda オーソライザーによるセキュリティ認可の代替にはならない。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る