DVAセキュリティ
あるSaaS企業はOktaをIDプロバイダーとして使用しており、OktaがRSA署名付きのJWTアクセストークンを発行しています。このJWTトークンを用いてAmazon API Gateway REST APIへのアクセスを制御したい場合、最も適切な認証・認可の実装方法はどれですか?
AAmazon Cognito ユーザープールオーソライザーを API Gateway に設定し、Okta が発行した JWT を Cognito 経由で検証する
Cognito ユーザープールオーソライザーは Cognito User Pools が発行した ID トークン・アクセストークンの検証に特化しており、Okta が発行した JWT をそのまま受け付けて検証する機能はない。
BAPI Gateway に IAM 認証(SigV4)を有効化し、クライアントが AWS 署名バージョン4 付きリクエストを送信できるよう設定する
IAM 認証(SigV4)はリクエストを AWS 認証情報で署名する方式で、外部ユーザーが Okta JWT を使って認証するシナリオには適さない。クライアントに AWS の一時認証情報を別途配布する必要が生じる。
CAPI Gateway に Lambda オーソライザー(TOKEN タイプ)を設定し、Okta の JWT 署名とクレームを検証するロジックを Lambda 関数に実装する
✓ 正解
Lambda オーソライザー(TOKEN タイプ)はベアラートークンをカスタムロジックで検証できるため、Okta の公開鍵で JWT 署名を検証し、クレームに基づいた IAM ポリシーを返す実装が可能であり要件を完全に満たす。
DAPI Gateway の使用量プランと API キーを設定し、すべてのリクエストに X-API-Key ヘッダーを必須として認可する
API キーはクライアントの識別とレート制限に使う機能であり、JWT を使ったユーザー認証・認可の代替にはならない。API キーを知る者なら誰でもアクセスできてしまうためセキュリティとして不十分。
解説
Lambda オーソライザー(TOKEN タイプ)は Authorization ヘッダーのベアラートークンを受け取り、開発者がカスタムロジックで検証できる柔軟な仕組みです。Okta の JWKS エンドポイントから公開鍵を取得して JWT の署名・有効期限・クレームを検証し、許可の場合は IAM ポリシードキュメントを返します。これにより Cognito 以外のあらゆる IdP に対応でき、組織固有の認可ロジックも実装できます。
選択肢AのAmazon Cognito ユーザープールオーソライザーは Cognito User Pools が発行したトークンのみを検証する設計であり、Okta などサードパーティ IdP の JWT をそのまま検証することはできない。
選択肢BのIAM認証(SigV4)は AWS サービス間・マシン間通信向けの仕組みであり、Okta で認証した外部エンドユーザーのトークン検証には利用できない。
選択肢Dの使用量プランと API キーはスロットリングやクォータ管理が主目的の機能であり、ユーザー認証・認可の代替にはならない。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →