Setup s3 access at ec2 level

This commit is contained in:
Ian Keane 2026-08-18 13:17:40 -04:00
parent 875e715ce9
commit 865831f1de
6 changed files with 47 additions and 58 deletions

41
terraform/iam.tf Normal file
View file

@ -0,0 +1,41 @@
# IAM role for the EC2 node
# Grants the node (and all pods on it) access to AWS services via instance metadata.
# Add policies here as new services need AWS access.
resource "aws_iam_role" "node" {
name = "${var.cluster_name}-node"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Principal = { Service = "ec2.amazonaws.com" }
Action = "sts:AssumeRole"
}]
})
}
resource "aws_iam_instance_profile" "node" {
name = "${var.cluster_name}-node"
role = aws_iam_role.node.name
}
# S3 access for fluent-bit log shipping
resource "aws_iam_role_policy" "node_s3_logs" {
name = "s3-logs-write"
role = aws_iam_role.node.id
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Action = ["s3:PutObject", "s3:GetObject", "s3:ListBucket"]
Resource = [
aws_s3_bucket.logs.arn,
"${aws_s3_bucket.logs.arn}/*"
]
}
]
})
}