DVA-C02:AWS Certified Developer - Associate アプリケーションのセキュリティ 問1
アプリケーションのセキュリティ/アプリと AWS サービスの認証・認可の実装モバイルアプリでユーザーを認証したうえで、Amazon API Gateway の API 呼び出しを認可したいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「アプリケーションのセキュリティ」に対応。実際の試験問題ではありません)
- AAmazon Cognito でユーザーを認証してトークンを発行し、API Gateway の Cognito オーソライザー(トークン検証)で API 呼び出しを認可する
- B各ユーザーに長期的な IAM アクセスキーを配布して使わせる
- CAPI を認証なしで公開し、アプリ側の実装だけでアクセスを制御する
- Dルートユーザーの認証情報をアプリに埋め込んで使う
正解:A
解説
Amazon Cognito のユーザープールでエンドユーザーを認証すると、ID トークンやアクセストークン(JWT)が発行されます。API Gateway に Cognito オーソライザーを設定すれば、API 呼び出し時にそのトークンを検証して認可できます。これにより、アプリ利用者ごとの認証・認可を、長期的な IAM 認証情報を配布せずに実現できます。
選択肢ごとの解説
- A正しい。Cognito で認証してトークンを発行し、API Gateway の Cognito オーソライザーで検証すれば、API 呼び出しを安全に認可できます。
- B誤り。エンドユーザーへの長期 IAM アクセスキー配布は、漏えいリスクが高く運用も困難で、ベストプラクティスに反します。
- C誤り。認証なしで公開しアプリ側だけで制御するのは、API を直接叩かれると保護になりません。
- D誤り。ルートユーザー認証情報の埋め込みは最も避けるべき運用です。