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

ある企業がAPI Gateway REST APIを公開しています。クライアントはサードパーティのOIDCプロバイダー(Auth0)が発行したJWTをAuthorizationヘッダーで送信します。API GatewayでこのJWTの署名とトークン内のカスタムクレームを検証し、アクセスを制御したいと考えています。最小限の運用負荷で実現する方法はどれですか。

A
Cognito User Poolオーソライザーを設定し、Auth0が発行したJWTをそのまま検証させてアクセスを制御する
Cognito User PoolオーソライザーはCognito User Poolが発行したトークン専用で、外部IdPであるAuth0のJWTを検証できません。サードパーティOIDCトークンのクレーム評価には利用できないため要件を満たしません。
B
Lambdaオーソライザー(TOKENタイプ)を作成し、JWKSで署名とクレームを検証してIAMポリシーを返す
✓ 正解
TOKENタイプのLambdaオーソライザーはAuthorizationヘッダーのJWTを受け取り、関数内でJWKSによる署名検証とカスタムクレーム評価を行ってIAMポリシーを返せます。結果はキャッシュでき運用負荷も低いため最適です。
C
API GatewayでIAM認証を有効にし、クライアントに毎回SigV4署名付きリクエストを送らせて制御する
IAM認証は呼び出し元のIAM資格情報をSigV4署名として検証する仕組みで、JWTの署名やトークン内クレームの評価はできません。クライアントにIAM資格情報も必要になり要件と一致しません。
D
リソースポリシーでAuthorizationヘッダーの文字列を条件評価し、一致した場合のみアクセスを許可する
リソースポリシーは送信元IP・VPC・アカウントなどの条件でアクセス可否を判断する仕組みで、JWTの署名検証やクレームの動的評価には対応できません。トークンベースの認可には不適切です。

解説

REST APIでサードパーティOIDC(Auth0)のJWTを検証するには、Lambdaオーソライザーが適切です。TOKENタイプはAuthorizationヘッダーのトークンを受け取り、関数内でJWKSを使った署名検証とカスタムクレームの評価を行い、IAMポリシー(Allow/Deny)を返します。検証結果はTTL付きでキャッシュでき、毎リクエストの関数実行を避けられるため運用負荷も抑えられます。 選択肢のCognito User Poolオーソライザーは、Cognito User Poolが発行したトークンの検証専用で、外部IdPであるAuth0のJWTは検証できません。 選択肢のIAM認証は、呼び出し元のIAM資格情報によるSigV4署名を検証する仕組みで、JWTのクレーム評価はできません。 選択肢のリソースポリシーは、送信元IPやVPC・アカウントなどの条件でアクセスを制御する仕組みで、JWTの署名検証やクレーム評価はできません。

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

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

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