IAMロールとインスタンスプロファイルの実践|EC2・Lambda・ECSへの安全な権限付与

IAMロールとインスタンスプロファイルの実践|EC2・Lambda・ECSへの安全な権限付与
「EC2からS3にアクセスするにはどうすればいい?」「アクセスキーをコードに書きたくない」——IAMロールとインスタンスプロファイルを使った、アクセスキー不要の安全な権限付与の仕組みを解説します。
💡 アクセスキーをEC2内にハードコードするのは最も危険な設定の一つ。IAMロール+インスタンスプロファイルを使えばアクセスキー不要でEC2からAWSサービスに安全にアクセスできます。
1. なぜアクセスキーをコードに書いてはいけないか
GitHubにアクセスキーを含むコードをpushした場合、秒単位でbotに検出されて不正利用される事例が多発しています。「privateリポジトリだから大丈夫」は危険な思い込みです。AWSはアクセスキーの漏洩を自動検知して通知するサービスも提供していますが、被害は既に発生している可能性があります。
2. IAMロールとインスタンスプロファイルの仕組み
IAMロールをEC2に付与するには「インスタンスプロファイル」という中間レイヤーを通じます。EC2にインスタンスプロファイルを設定すると、EC2内のアプリケーションはインスタンスメタデータエンドポイント(169.254.169.254)から一時的な認証情報を自動取得してAWSサービスに接続できます。boto3(Python)やAWS SDK等は自動的にこの認証情報を使用します。
3. Terraformでの設定例
# IAMロールの作成
resource "aws_iam_role" "ec2_role" {
name = "ec2-app-role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Action = "sts:AssumeRole"
Effect = "Allow"
Principal = { Service = "ec2.amazonaws.com" }
}]
})
}
# S3読み取り権限をロールにアタッチ
resource "aws_iam_role_policy_attachment" "s3_read" {
role = aws_iam_role.ec2_role.name
policy_arn = "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"
}
# インスタンスプロファイルの作成
resource "aws_iam_instance_profile" "ec2_profile" {
name = "ec2-app-profile"
role = aws_iam_role.ec2_role.name
}
# EC2にインスタンスプロファイルを付与
resource "aws_instance" "app" {
iam_instance_profile = aws_iam_instance_profile.ec2_profile.name
# ... 他の設定
}4. LambdaとECSへのIAMロール付与
- Lambda実行ロール:LambdaにはLambda用の実行ロール(Lambda Execution Role)を作成してアタッチする。CloudWatchLogsへの書き込み権限は必ず含める
- ECSタスクロール:ECSのタスク定義にはタスクロール(タスク内のコンテナがAWSを使う権限)とタスク実行ロール(ECSがECRからイメージをプルする権限)の2種類を設定する
- EC2へのIAMロール付与にはインスタンスプロファイルを使う。アクセスキーのハードコードは禁止
- インスタンスメタデータ経由で一時的な認証情報が自動取得されAWS SDKが自動的に使用する
- LambdaはLambda実行ロール・ECSはタスクロールとタスク実行ロールの2種類を適切に設定する
キャリアの疑問、一緒に解決しませんか?
Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
📚 関連記事
業務効率化やAI活用の進め方に迷ったら、Route Bloomの無料相談窓口もご利用ください。
この記事を読んでいる方へのおすすめ:
本記事はRoute Bloom編集部が公式ドキュメント・技術仕様書の一次情報をもとに作成しています。ITインフラ・技術情報は急速に変化するため、実装前に最新の公式ドキュメントをご確認ください。情報の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。
本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
本記事はRoute Bloom編集部が各ベンダー・技術標準の公式ドキュメントをもとに作成しています。 インフラ・クラウド技術に関する最終判断は実際の環境・バージョンで検証のうえ実施してください。 情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
この記事で学んだスキルをさらに深めたい方へ
AWS・クラウド技術をさらに深く学びたい方に。試験対策から実践まで網羅した参考書を活用しましょう。
Amazonアソシエイトプログラムを利用しています。




