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
}