現場実践|IAMロール実践設計

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

「EC2からS3にアクセスするにはどうすればいい?」「アクセスキーをコードに書きたくない」——IAMロールとインスタンスプロファイルを使った、アクセスキー不要の安全な権限付与の仕組みを解説します。

読了目安:約15分更新日:2026年4月

💡 アクセスキーをEC2内にハードコードするのは最も危険な設定の一つ。IAMロール+インスタンスプロファイルを使えばアクセスキー不要でEC2からAWSサービスに安全にアクセスできます。

この記事を書いた人
現役ITエンジニア・IT講師(経験14年)
CCNA・CCNP 取得LPIC-1 保有SES現場を複数経験

AWS環境のIAM設計・セキュリティ設計を多数担当してきた立場から解説します。

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種類を適切に設定する

キャリアの疑問、一緒に解決しませんか?

Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。

※IAMの仕様はAWSにより変更される場合があります。

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営