ある開発チームは EC2 インスタンス上で動作するアプリケーションから DynamoDB テーブルにアクセスする必要があります。セキュリティチームは「アクセスキーをコードや環境変数にハードコードしてはならない」という方針を設けています。最小権限かつ運用負荷が最も少ない方法はどれですか?
- A. IAM ユーザーを作成してアクセスキーを発行し、設定ファイルに記述する
- B. アクセスキーを AWS Secrets Manager に保存し、起動時にアプリケーションが取得する
- C. DynamoDB へのアクセス権を持つ IAM ロールを作成し、EC2 インスタンスプロファイルとしてアタッチする
- D. EC2 起動時にユーザーデータスクリプトでアクセスキーを環境変数に設定する
解答と解説を見る
正解: C
EC2 インスタンスプロファイル(IAM ロール)を使用すると、AWS SDK が自動的にインスタンスメタデータサービス(IMDS)から一時認証情報を取得・更新するため、アクセスキーの管理が一切不要です。これが最も安全で運用負荷が低い方法です。D はユーザーデータへの記述がコード外露出リスクを生み、方針違反です。B は Secrets Manager コールのための初期認証が問題になり、追加コストも発生します。A はアクセスキーをファイルに記述することになり、方針に直接違反します。
📚 関連サービスの解説: Amazon DynamoDB ・ AWS IAM