ある企業が、EC2 インスタンス上で動作するアプリケーションから Amazon S3 バケットにアクセスする必要がある。セキュリティチームは、アクセスキーやシークレットキーをアプリケーションコードや設定ファイルに埋め込むことを禁止している。最小限の運用負荷で安全に S3 へのアクセスを許可する最も適切な方法はどれか。
- A. S3 バケットを一時的にパブリックアクセスに設定し、処理完了後に元に戻す。
- B. EC2 インスタンスに IAM ロールをアタッチし、S3 へのアクセス権限をロールのポリシーに付与する。
- C. 専用の IAM ユーザーを作成してアクセスキーを発行し、EC2 インスタンスの環境変数に設定する。
- D. S3 バケットポリシーで EC2 インスタンスのパブリック IP アドレスを許可リストに追加する。
解答と解説を見る
正解: B
EC2 インスタンスに IAM ロールをアタッチすると、インスタンスメタデータサービス(IMDS)経由で一時的な認証情報が自動的に提供される。コードや設定ファイルに認証情報を埋め込む必要がなく、認証情報のローテーションも AWS が自動で行うため、最も安全で運用負荷も低い。選択肢Cはアクセスキーを環境変数に設定しており、コードへの埋め込みは避けているものの静的なアクセスキーを使用しているため、漏洩リスクや定期ローテーションの運用負荷が生じる。選択肢DはIPアドレスによる制御であり、動的IPを使うインスタンスでは管理が困難で、IPスプーフィングのリスクもある。選択肢AはS3を一時的でもパブリックにするという重大なセキュリティリスクを伴い、要件に反する。
📚 関連サービスの解説: Amazon EC2 ・ AWS IAM