モバイルアプリからのAPI呼出しの認可

Cognitoユーザープールのオーソライザーは、API Gatewayでトークンを検証し、無効な要求をバックエンドに渡す前に拒否する。Lambda側での検証コードを減らせる。 モバイル端末のIPは変わり、会員かどうかの判定にもならない。サインイン状態による認可を実現しない。 長期キーを端末へ配るとキーが漏えいした際の影響が大きく、数多くの会員の管理にも向かない。 APIキーは利用の識別や流量の制御に使う。会員の本人確認や認可の手段としては推奨されない。

モバイルアプリの会員がAPI GatewayのREST APIを呼び出す。会員の登録とサインインは既にCognitoユーザープールで行っている。APIはサインイン済みの会員だけが呼べるようにし、バックエンドのLambdaでトークンを手作業で検証するコードは書きたくない。

最も適切なものを1つ選択してください。

出典AWS非公式・オリジナル問題
ア
APIのリソースポリシーで会員の端末のIPアドレス範囲だけを許可する
イ
会員ごとにIAMユーザーを作成し、長期アクセスキーをアプリへ埋め込んで要求に署名させる
ウ
APIキーと使用量プランを会員ごとに発行し、APIキーの一致で本人を確認する
エ
REST APIにCognitoユーザープールのオーソライザーを設定し、トークンを検証させる