5. IAM Role
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.62.0"
}
}
required_version = ">= 1.0.8"
}
provider "aws" {
region = "eu-central-1"
}
data "terraform_remote_state" "secrets" {
backend = "local"
config = {
"path" = "../secrets/terraform.tfstate"
}
}
resource "aws_iam_role" "ec2_role" {
name = "terraform-workshops-ec2-role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = "sts:AssumeRole"
Effect = "Allow"
Sid = ""
Principal = {
Service = "ec2.amazonaws.com"
}
},
]
})
}
resource "aws_iam_instance_profile" "ec2_profile" {
name = "terraform-workshops-ec2-profile"
role = aws_iam_role.ec2_role.name
}
resource "aws_iam_role_policy" "ec2_policy" {
name = "terraform-workshops-ec2-policy"
role = aws_iam_role.ec2_role.id
policy = <<-EOT
{
"Version" : "2012-10-17",
"Statement" : {
"Effect" : "Allow",
"Action" : "secretsmanager:GetSecretValue",
"Resource" : "${data.terraform_remote_state.secrets.outputs.db_secert_arn}"
}
}
EOT
}
Last updated