DVA-C02:AWS Certified Developer - Associate アプリケーションのセキュリティ 問2
アプリケーションのセキュリティ/アプリと AWS サービスの認証・認可の実装EC2 上で動くアプリが他の AWS サービスを呼び出す際の認証について、ベストプラクティスはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「アプリケーションのセキュリティ」に対応。実際の試験問題ではありません)
- Aアクセスキーを環境変数にハードコードして使う
- BIAM ロールを引き受け(EC2 ならインスタンスプロファイル)、AWS SDK が自動取得する一時認証情報で認証済みの呼び出しを行う
- Cルートユーザーのアクセスキーを使う
- D認証なしで呼び出せるよう、対象のサービスをすべて公開する
正解:B
解説
アプリが AWS サービスを呼び出す際は、長期的なアクセスキーを使わず、IAM ロールを引き受けて得られる一時認証情報を使うのがベストプラクティスです。EC2 ではインスタンスプロファイルで関連付けたロールの認証情報を AWS SDK が自動的に取得・更新するため、キーをコードや環境変数に埋め込む必要がありません。
選択肢ごとの解説
- A誤り。アクセスキーのハードコードは漏えいリスクが高く、ローテーションも困難です。
- B正しい。IAM ロールを引き受け、SDK が自動取得する一時認証情報を使うのが、認証のベストプラクティスです。
- C誤り。ルートユーザーのキー使用は最も避けるべき運用です。
- D誤り。サービスを公開して認証をなくすのは、重大なセキュリティリスクです。