AWS Certified Solutions Architect Associate(SAA-C03) 練習問題 4:タスクロールとEC2インスタンスロールとの使い分け
AWSでアプリケーションがAWSリソース(S3やDynamoDBなど)にアクセスする際のIAM権限付与に関して、正しい説明はどれか。
- EC2インスタンス上で動くアプリケーションにはIAMユーザーのアクセスキーをコードにハードコードするのが推奨される方法である。
- ECSタスクで動くコンテナアプリケーションにはEC2インスタンスロールをタスクに適用することで権限を付与する。
- EC2インスタンスロールはEC2インスタンスにアタッチするIAMロールであり、インスタンス上のアプリケーションはインスタンスメタデータ経由で一時的な認証情報を取得できる。
- ECSタスクロールとEC2インスタンスロールは同一の概念であり、どちらも同じ方法でコンテナとインスタンスの両方に適用できる。
- Lambda関数にAWSリソースへのアクセス権を与える場合は、リソースベースポリシーのみで設定するのが正しい方法であり、Lambda実行ロール(IAMロール)のアタッチは不要である。
Qraftユーザーの成績:正答率 40%(4/10回正解)
正解と解説を見る
正解:EC2インスタンスロールはEC2インスタンスにアタッチするIAMロールであり、インスタンス上のアプリケーションはインスタンスメタデータ経由で一時的な認証情報を取得できる。
AWSリソースへのアクセス権限をアプリケーションに付与する際、IAMユーザーのアクセスキーをコードにハードコードすることはセキュリティリスクが高く、AWSのベストプラクティスでは禁止されています。
正しいのは「EC2インスタンスロールをインスタンスにアタッチすることで、インスタンスメタデータ経由で一時的な認証情報を取得できる」という内容です。EC2インスタンスにIAMロールをアタッチすると、インスタンスメタデータサービス(IMDS)を通じて自動的に一時クレデンシャルが提供されます。
ECSの場合は「ECSタスクロール(Task Role)」を別途設定します。ECSタスクロールはタスク定義で指定し、コンテナ内のアプリケーションに対してAWSリソースへのアクセス権を付与します。EC2インスタンスロールはECSコンテナランタイムが使うロール(ECSコンテナエージェントの権限)であり、タスク内のアプリケーションが使うタスクロールとは別物です。この使い分けを正しく理解することがSAA試験の重要ポイントです。