Q1. ある企業がEC2インスタンス上で動くアプリケーションからS3バケットへ読み書きさせようとしています。セキュリティ部門から「長期の静的認証情報をインスタンス内に一切置かないこと」と指示されました。最も適切な方法はどれですか?
- A. IAMユーザーのアクセスキーを作成し、ユーザーデータスクリプトで~/.aws/credentialsに書き込む
- B. S3アクセス権限を持つIAMロールを作成し、インスタンスプロファイルとしてEC2にアタッチする
- C. アクセスキーをSystems Manager Parameter StoreのSecureStringに保存し、起動時にアプリが取得する
- D. ルートユーザーのアクセスキーを発行し、環境変数として設定する
答えと解説を見る
正解:B
A アクセスキーは長期認証情報そのもので、要件に真っ向から反する。ユーザーデータはメタデータサービス経由で参照できるため、キーの露出リスクも高い
B(正解) 正解。インスタンスメタデータ経由で自動ローテーションされる一時認証情報が配布され、インスタンス上に静的キーを置かずに済む
C Parameter Storeを読むための認証情報が別途必要になるうえ、取得後もアクセスキー自体は長期認証情報のまま。問題を先送りしているだけ
D ルートユーザーのアクセスキーはそもそも作成すべきでない最悪の選択。権限も無制限で最小権限の原則に反する