Automatisation Intelligente : Suppression Automatique des Instances EC2 dans AWS Managed Microsoft AD avec Lambda
Contexte et Problématique
Dans l’écosystème cloud moderne, la gestion automatisée des ressources est devenue un pilier essentiel de l’efficacité opérationnelle. L’intégration entre Amazon EC2 et AWS Managed Microsoft Active Directory offre une expérience seamless pour l’authentification et la gestion des identités.
Contexte Métier
Les entreprises migrant vers AWS adoptent massivement AWS Managed Microsoft AD pour :
- Maintenir leur infrastructure d’authentification existante ;
- Centraliser la gestion des identités et des accès ;
- Appliquer les stratégies de groupe (GPO) sur leurs instances EC2
- Garantir la conformité avec leurs politiques de sécurité
La Problématique Centrale
Un défi persistant émerge dans cette architecture hybride: comment maintenir la cohérence automatique entre les instances EC2 supprimées et leurs entrées correspondantes dans Active Directory ?
Actuellement, la plupart des organisations gèrent cette problématique de manière réactive et manuelle, créant des inefficacités opérationnelles et des risques de sécurité.
Cet article présente une solution élégante et entièrement automatisée utilisant AWS Lambda pour résoudre ce problème récurrent, transformant une tâche manuelle fastidieuse en un processus intelligent et autonome.
Lire aussi aussi Automatisez les sauvegardes basées sur les événements depuis Amazon S3 GitHub à l’aide CodeBuild et EventBridge
Le Défi Technique : Entrées Orphelines dans Active Directory
Contexte Technique
Lorsque des instances Amazon EC2 sont intégrées à un domaine AWS Managed Microsoft AD, elles créent automatiquement des comptes d’ordinateurs dans l’Active Directory. Ces comptes permettent :
- L’authentification Kerberos des instances
- L’application des stratégies de groupe (GPO)
- La gestion centralisée des permissions
- L’audit et la traçabilité des accès
Le Défi Opérationnel
Problème central : Lorsqu’une instance EC2 est terminée (volontairement ou par Auto Scaling), son compte d’ordinateur correspondant reste actif dans l’Active Directory, créant plusieurs problèmes :
En résumé: C’est une façon simple et moderne de publier et router des applications conteneurisées.
Impacts Techniques
- Pollution de l’annuaire : Accumulation d’objets informatiques obsolètes
- Complexité de gestion : Difficulté à distinguer les machines actives des machines supprimées
- Risques de sécurité : Comptes dormants potentiellement exploitables
- Performance dégradée : Ralentissement des requêtes LDAP sur de gros volumes
Impacts Business
- Coûts cachés : Temps administrateur pour le nettoyage manuel
- Non-conformité : Violation des politiques de gouvernance IT
- Audit complexifié : Difficulté à tracer les accès légitimes
- Scalabilité limitée : Problème amplifié dans les environnements à haute vélocité
La Solution : Architecture Event-Driven avec AWS Lambda
Vue d’Ensemble de l’Architecture
Notre solution implémente un workflow entièrement automatisé basé sur les événements AWS
Composants Clés
- Amazon EventBridge – Le Déclencheur Intelligent
- Rôle : Capture en temps réel les événements de terminaison EC2
- Avantage : Réactivité instantanée sans polling
- Pattern d’événement : EC2 Instance State-change Notification
- AWS Lambda – Le Cerveau de l’Automatisation
- Fonction : Orchestre la logique de suppression
- Bénéfices :
- Exécution serverless (pas de serveur à maintenir)
- Coût proportionnel à l’usage
- Scalabilité automatique
- Haute disponibilité native
- AWS Systems Manager – Le Pont vers Active Directory
- Utilisation : Exécution de commandes PowerShell à distance
- Avantages :
- Sécurité renforcée (pas de RDP/SSH requis)
- Audit intégré des actions
- Gestion centralisée des permissions
- AWS IAM – La Sécurité par Design
- Principe : Moindre privilège appliqué
- Permissions granulaires : Accès limité aux ressources nécessaires
Prérequis et Architecture Cible
Prérequis Techniques
Avant d’implémenter cette solution, assurez-vous de disposer des éléments suivants :
Infrastructure AWS Requise
- Compte AWS actif avec permissions administratives, pour les personnes qui n’ont pas compte, créez-en un en suivant les étapes ici: Commencer à créer sur AWS dès aujourd’hui.
- Un bucket S3 Stockage centralisé du state Terraform
- DynamoDB déjà configuré pour verrouillage pour éviter les conflits concurrents
- Terraform Installé sur votre machine pour le provisionning automatique
- AWS CLI configuré avec profil administrateur
Compétences Techniques Recommandées
- AWS Services : Lambda, EventBridge, Systems Manager, IAM, EC2
- Active Directory : Concepts de base et commandes PowerShell
- Terraform : Pour la configuration des ressources AWS
Considérations de Sécurité
Principe du Moindre Privilège
- Rôle Lambda : Permissions strictement limitées aux actions nécessaires
- Systems Manager : Exécution avec comptes de service dédiés
- Active Directory : Droits minimaux pour la suppression de comptes machines
Audit et Traçabilité
- CloudWatch Logs pour le monitoring des exécutions
- EventBridge pour l’historique des événements
Temps de lecture: 15 minutes
Public Cible
- Ingénieurs DevOps
- Ingénieurs Cloud
- FinOps
- AWS Solution Architect
Implémentation Technique étape par étape
Structure finale du projet Terraform
Lien du template du projet: Lahda
Étape 1 – Préparer la fondation Terraform
Fichiers versions.tf, providers, variables.tf, outputs.tf, terraform.tfvars.
- Configure le provider AWS et le backend du state (ex: S3 + DynamoDB).
- Définis les variables globales : project, environment, tags, region, vpc_id.
Étape 2 – Créer les rôles IAM
Créer le premier dossier du projet nommé module qui comporte les différents services ou ressources du projet. On commence par: iam.
- Programme les rôles nécessaires :
- rôle Lambda avec AWSLambdaBasicExecutionRole
- rôle EC2 avec AmazonSSMManagedInstanceCore
- rôle EventBridge pour invoquer Lambda
- Exposez les ARN via outputs.tf.
Étape 3 – implémenter Lambda
Module lambda.
- Lambda reçoit les événements et exécute la logique.
- Entrées : role_arn depuis IAM, code packagé depuis scripts/.
- Sorties : lambda_arn.
Étape 4 – Ajouter EventBridge comme déclencheur
Module eventbridge.
- Programme une règle (cron ou event AWS).
- Configure la cible = lambda_arn.
- Crée aws_lambda_permission pour autoriser EventBridge.
Étape 5 – Préparer les documents et paramètres SSM
Module ssm.
- Crée des documents (aws_ssm_document) qui définissent les actions (par ex. joindre un domaine).
- Stocke les secrets et configs (ex: mot de passe admin AD) dans Parameter Store.
- Associe les documents aux instances via aws_ssm_association.
Étape 6 – implémenter le Directory Service
Module directory.
- Déploie AWS Managed Microsoft AD dans deux subnets privés.
- Expose directory_id et dns_ip_addresses.
Stocke le mot de passe admin AD dans Parameter Store.
Étape 7 – Créer les instances EC2 + Auto Scaling
Module ec2.
- Déploie les instances via Auto Scaling Group ou Launch Template.
- Attache iam_instance_profile_name du module IAM.
- Ajoutez une ssm_association pour joindre automatiquement les instances au Directory.
Étape 8 – Tests et validation
Dossier tests/terraform_test.go.
- Vérifie avec Terratest :
- Que la Lambda existe et peut être invoquée,
- Que les EC2 sont enregistrées dans SSM,
- Que Directory est actif et les instances joint
Déploiement et Test du projet
Vérification de la création effective des ressources:
- Les ressources à créer manuellement en amont:
- Un bucket s3
- Une table dynamoDB
- Les Rôles IAM Nécessaires:
La fonction Lambda
- EventBridge Rules
- AWS SSM parameters et documents
SSM Documents
AWS Managed Microsoft Active Directory
Amazon EC2:
Auto-Scaling-Group (ASG)
Tests
- Affichez les résultats de la fonction Lambda.
Dans ce modèle, une EventBridge règle exécute la fonction Lambda une fois par jour. Pour afficher les résultats de la fonction Lambda, procédez comme suit :
Connectez-vous à la AWS Lambda console AWS Management Console et ouvrez-la. Ouvrez la page Fonctions et sélectionnez le nom de la fonction lambda, exécutez-la.
Cliquez sur l’onglet Surveiller, puis sur Afficher CloudWatch les journaux.
Dans la CloudWatch console, la page Log groups affiche les résultats de la fonction Lambda.
- Essayez de supprimer le serveur qui est en cours d’exécution, et voyez si l’auto scaling lance effectivement un nouveau serveur a la place..
- Vous pouvez aussi avoir les détails sur l’état de l’alarme
Suppression des ressources créées
- Pour nettoyer l’infrastructure que vous avez créée, utilisez la commande suivante.
- terraform destroy
Pour confirmer la commande de destruction, tapez yes. Vérifiez après le nettoyage.
- Vérifiez que les ressources ont été correctement supprimées.
Valeur Ajoutée Business
ROI Quantifiable
Économies Directes
- Temps administrateur économisé : 2h/semaine
- Réduction des coûts de licence : Optimisation des CAL Active Directory
- Minimisation des incidents sécurité : Réduction des surfaces d’attaque
Bénéfices Opérationnels
- Conformité automatique : Respect des politiques de gouvernance IT
- Agilité accrue : Déploiements plus rapides sans crainte de pollution AD
- Visibilité améliorée : Annuaire Active Directory toujours à jour
Impact Stratégique
Pour les Équipes IT
- Focus sur la valeur : Moins de tâches manuelles, plus d’innovation
- Fiabilité opérationnelle : Réduction des erreurs humaines
- Évolutivité : Solution qui s’adapte à la croissance
Pour l’Organisation
- Time-to-Market réduit : Déploiements plus agiles
- Posture sécuritaire renforcée : Réduction des comptes dormants
- Excellence opérationnelle : Automatisation alignée sur les best practices
Perspectives d’Évolution
Extensions Possibles
Fonctionnalités Avancées
- Intégration Slack/Teams : Notifications des suppressions
- Dashboard CloudWatch : Métriques en temps réel
- Multi-région : Support des déploiements globaux
Cas d’Usage Étendus
- Autres services AWS : Extension à RDS, ECS, EKS
- Gestion du cycle de vie : Automatisation complète AD
- Intégration CI/CD : Nettoyage automatique des environnements temporaires.
Conclusion
Cette solution d’automatisation AWS Lambda représente un exemple parfait de l’ingénierie orientée valeur. En transformant une problématique opérationnelle récurrente en opportunité d’automatisation, nous obtenons :
- Efficacité opérationnelle maximisée
- Réduction significative des risques
- ROI mesurable et immédiat
- Fondation pour l’innovation future
L’approche event-driven combinée à l’écosystème AWS natif offre une solution robuste, évolutive et économique qui s’intègre parfaitement dans une stratégie cloud moderne.
L’automatisation n’est plus un luxe, c’est une nécessité stratégique. D’ailleurs, pour des personnes qui souhaitent avoir une formation bien structurée axée projet sur respectivement AWS et Terraform, nous offrons un BootCamp AWS Cloud Engineer, un Parcours développeur cloud AWS et Terraform Associate et Terraform Cloud.
Cet article technique démontre comment transformer les défis opérationnels en opportunités d’innovation grâce à l’automatisation intelligente AWS.
Si vous souhaitez explorer et pratiquer avec des articles percutants dans le même sens, nous avons: Construction d’une application serverless en utilisant Step Functions, API Gateway, Lambda et S3 dans AWS, Héberger une application statique sur AWS avec le CICD impliquant AWS AWS CodeCommit, CodePipeline et S3, Optimisation des coûts dans le Cloud en 2024 Comment réduire les dépenses tout en maintenant les performances
Références
Auteur
- LAHDA BIASSOU Alphonsine, Consultant Cloud/DevOps & Formatrice
- LinkedIn: Alphonsine LAHDA
- GitHub: Lahda
