πŸ”₯ 3️⃣ Fine-grained IAM

πŸ“Œ 문제 해석

πŸ‘‰ IAM 문제


🧠 μ•„ν‚€ν…μ²˜

EC2 β†’ IAM Role β†’ S3

βœ… Terraform μ½”λ“œ

resource "aws_iam_role" "role" {
  name = "fine-role"

  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [{
      Effect = "Allow"
      Principal = { Service = "ec2.amazonaws.com" }
      Action = "sts:AssumeRole"
    }]
  })
}

resource "aws_iam_policy" "policy" {
  name = "fine-policy"

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [{
      Effect = "Allow"
      Action = ["s3:GetObject"]
      Resource = "arn:aws:s3:::my-bucket/*"
    }]
  })
}

resource "aws_iam_role_policy_attachment" "attach" {
  role       = aws_iam_role.role.name
  policy_arn = aws_iam_policy.policy.arn
}

🚨 μ‹œν—˜ 포인트