,

Cloud Terraform / OpenTofu AWS role policy

# Définition des rôles rattachés aux machines EC2
# Chaque machine a son propre rôle ce qui permet d'affiner au cas par cas


# Référence à la policy managée AWS pour les Agent Cloudwatch
# Commun à tous les rôles des machines EC2
data "aws_iam_policy" "AWSCloudWatchAgentServerPolicy" {
  arn = "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy"
}


# Définition une seule fois pour le document d'assume rôle
# Réutilisé dans toutes les policies ci-dessous
data "aws_iam_policy_document" "policy-assume-role-ec2" {
    statement {
        actions = ["sts:AssumeRole"]

        principals {
            type        = "Service"
            identifiers = [ "ec2.amazonaws.com" ]
        }
   }
}


# serveur1
resource "aws_iam_role" "role-ec2-serveur1" {
  name = "${var.prefix}-role-ec2-serveur1"
  assume_role_policy = data.aws_iam_policy_document.policy-assume-role-ec2.json
}

resource "aws_iam_instance_profile" "profile-serveur1" {
  name = aws_iam_role.role-ec2-serveur1.name
  role = aws_iam_role.role-ec2-serveur1.name
}

resource "aws_iam_role_policy_attachment" "attach-CloudWatchAgentServerPolicy-serveur1" {
  role       = aws_iam_role.role-ec2-serveur1.name
  policy_arn = data.aws_iam_policy.AWSCloudWatchAgentServerPolicy.arn
}