Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Supprimez EC2 les entrées Amazon Comptes AWSAWS Managed Microsoft AD en utilisant l' AWS Lambda automatisation
Créée par le Dr Rahul Sharad Gaikwad (AWS) et Tamilselvan (AWS)
Récapitulatif
Active Directory (AD) est un outil de script Microsoft qui gère les informations de domaine et les interactions des utilisateurs avec les services réseau. Il est largement utilisé par les fournisseurs de services gérés (MSPs) pour gérer les informations d'identification et les autorisations d'accès des employés. Étant donné que les attaquants publicitaires peuvent utiliser des comptes inactifs pour tenter de pirater une organisation, il est important de trouver les comptes inactifs et de les désactiver dans le cadre d'un programme de maintenance de routine. Avec AWS Directory Service for Microsoft Active Directory, vous pouvez exécuter Microsoft Active Directory en tant que service géré. Ce modèle peut vous aider à configurer AWS Lambda l'automatisation pour trouver et supprimer rapidement les comptes inactifs.
Si les scénarios suivants s'appliquent à votre organisation, ce modèle peut vous aider :
Gestion centralisée d'AD : si votre organisation en possède plusieurs Comptes AWS, chacune avec son propre déploiement AD, il peut être difficile de gérer les comptes utilisateurs et les autorisations d'accès de manière cohérente sur tous les comptes. Avec une solution de nettoyage AD multicomptes, vous pouvez désactiver ou supprimer les comptes inactifs de toutes les instances AD de manière centralisée.
Restructuration ou migration d'AD : si votre organisation prévoit de restructurer ou de migrer son déploiement AD, une solution de nettoyage AD multi-comptes peut vous aider à préparer l'environnement. La solution peut vous aider à supprimer les comptes inutiles ou inactifs, à simplifier le processus de migration et à réduire les conflits ou problèmes potentiels.
Lorsque vous utilisez ce modèle, vous pouvez bénéficier des avantages suivants :
Améliorez les performances des bases de données et des serveurs, et corrigez les failles de sécurité liées aux comptes inactifs.
Si votre serveur AD est hébergé dans le cloud, la suppression des comptes inactifs peut également réduire les coûts de stockage tout en améliorant les performances. Vos factures mensuelles peuvent diminuer car les frais de bande passante et de ressources informatiques peuvent tous deux diminuer.
Gardez les attaquants potentiels à distance grâce à un Active Directory propre.
Conditions préalables et limitations
Prérequis
Un parent actif Compte AWS et un ou plusieurs comptes enfants. Dans ce modèle, un compte parent est l'endroit où Active Directory est créé. Les comptes enfants hébergent des serveurs Windows et sont joints via le compte parent Active Directory.
Git est installé
et configuré sur un poste de travail local. Terraform installé
et configuré sur un poste de travail local. AWS Managed Microsoft AD répertoire configuré dans le compte parent et partagé avec tous les comptes enfants. Pour plus de détails, voir Tutoriel : Partage de votre AWS Managed Microsoft AD répertoire pour une jonction de EC2 domaine fluide dans le Guide d'AWS Directory Service administration.
Une connexion d'appairage au cloud privé virtuel (VPC) ou une AWS Transit Gateway connexion disponible entre le VPC de AWS Directory Service (compte parent) et le VPC des instances Amazon Elastic Compute Cloud ( EC2Amazon) (comptes enfants). Pour plus de détails, consultez la section Configurer une connexion d'appairage VPC entre le propriétaire de l'annuaire et le compte du consommateur de l'annuaire dans le AWS Directory Service Guide d'administration.
Une machine Windows configurée avec le
EC2WindowsUserdata
script sur tous les comptes parent et enfant. Le fichier de script est disponible à la racine du référentiel de codede ce modèle. Un rôle entre comptes AWS Identity and Access Management (IAM) disponible sur chaque compte enfant configuré avec une politique de confiance autorisant l'utilisation d'une AWS Lambda fonction du compte parent. Pour plus d'informations, consultez la section Envoi et réception d'événements entre Amazon Comptes AWS EventBridge dans le guide de EventBridge l'utilisateur Amazon.
Les valeurs secrètes suivantes sont disponibles dans le AWS Systems Manager Parameter Store du compte parent :
domainJoinUser
— Nom d'utilisateur du service d'annuairedomainJoinPassword
— Mot de passe du service d'annuaire
Pour plus d'informations sur les secrets, voir Création d'un AWS Secrets Manager secret dans le Guide de AWS Secrets Manager l'utilisateur.
Limites
La création d'une ressource dans un compte enfant n'est pas automatisée avec Terraform. Vous devez créer les ressources suivantes manuellement à l'aide de AWS Management Console :
EventBridge Règle Amazon pour envoyer les événements de EC2 résiliation d'Amazon au compte parent
Création de rôles EC2 entre comptes Amazon dans le compte enfant avec politique de confiance
Peering VPC ou connexion Transit Gateway
Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, voir Services AWS par région
. Pour des points de terminaison spécifiques, consultez Points de terminaison de service et quotas, puis choisissez le lien correspondant au service.
Versions du produit
Architecture
Le schéma suivant montre l'architecture de haut niveau de la solution.

Le schéma d'architecture illustre le processus suivant :
Dans les comptes enfants, la EventBridge règle collecte tous les événements de EC2 résiliation d'Amazon. La règle envoie les EventBridge événements présents dans le compte parent.
À partir du compte parent, EventBridge collecte tous les événements et contient la règle permettant de déclencher la fonction Lambda.
ADcleanup-Lambda
Le compte parent reçoit tous les événements de résiliation du compte parent ou enfant et déclenche la fonction Lambda.
La fonction Lambda appelle les groupes Amazon EC2 Auto Scaling à l'aide du module Python boto et obtient l'ID d'instance aléatoire. L'ID d'instance est utilisé pour exécuter les commandes de Systems Manager.
La fonction Lambda effectue un autre appel à Amazon à EC2 l'aide du module boto. La fonction Lambda obtient les adresses IP privées des serveurs Windows en cours d'exécution et les stocke dans une variable temporaire. Dans les étapes 5.1 et 5.2, les EC2 instances Windows en cours d'exécution sont collectées à partir de comptes enfants.
La fonction Lambda lance un nouvel appel à Systems Manager pour obtenir les informations de l'ordinateur auquel il est connecté. AWS Directory Service
Un AWS Systems Manager document permet d'exécuter la PowerShell commande sur les serveurs Amazon EC2 Windows pour obtenir les adresses IP privées des ordinateurs connectés à AD. (Le document Systems Manager utilise l'ID d'instance obtenu à l'étape 4.)
Le nom d'utilisateur et les mots de passe du domaine AD sont stockés dans le AWS Systems Manager Parameter Store. AWS Lambda et Systems Manager appellent Parameter Store et obtiennent les valeurs du nom d'utilisateur et du mot de passe à utiliser pour se connecter à AD.
À l'aide du document Systems Manager, le PowerShell script est exécuté sur le serveur Amazon EC2 Windows à l'aide de l'identifiant d'instance obtenu précédemment à l'étape 4.
Amazon EC2 se connecte AWS Directory Service à l'aide de PowerShell commandes et supprime les ordinateurs inutilisés ou inactifs.
Outils
AWS services
AWS Directory Servicepropose plusieurs manières d'utiliser Microsoft Active Directory (AD) avec d'autres, Services AWS comme Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) pour SQL Server et FSx Amazon pour Windows File Server.
AWS Directory Service for Microsoft Active Directorypermet à vos charges de travail et à vos AWS ressources sensibles aux annuaires d'utiliser Microsoft Active Directory dans le. AWS Cloud
Amazon Elastic Compute Cloud (Amazon EC2) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
Amazon EventBridge est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, des AWS Lambda fonctions, des points de terminaison d'invocation HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS
AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser. Avec IAM, vous pouvez spécifier qui ou quoi peut accéder aux services et aux ressources AWS, gérer de manière centralisée les autorisations détaillées et analyser les accès pour affiner les autorisations entre elles. AWS
AWS Lambda est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
AWS Systems Managervous aide à gérer vos applications et votre infrastructure exécutées dans le AWS Cloud. Il simplifie la gestion des applications et des ressources, réduit le délai de détection et de résolution des problèmes opérationnels et vous aide à gérer vos AWS ressources en toute sécurité à grande échelle.
AWS Systems Manager les documents définissent les actions que Systems Manager exécute sur vos instances gérées. Systems Manager inclut plus d'une centaine de documents préconfigurés que vous pouvez utiliser en spécifiant des paramètres lors de l'exécution.
AWS Systems Manager Parameter Store est une fonctionnalité AWS Systems Manager et fournit un stockage hiérarchique sécurisé pour la gestion des données de configuration et la gestion des secrets.
Autres outils
HashiCorp Terraform
est un outil d'infrastructure open source sous forme de code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud. PowerShell
est un programme d'automatisation et de gestion de configuration Microsoft qui s'exécute sous Windows, Linux et macOS. Python
est un langage de programmation informatique polyvalent.
Référentiel de code
Le code de ce modèle est disponible dans le référentiel GitHub aws-lambda-ad-cleanup-terraform-samples
Bonnes pratiques
Joignez automatiquement des domaines.Lorsque vous lancez une instance Windows destinée à faire partie d'un AWS Directory Service domaine, rejoignez le domaine pendant le processus de création de l'instance au lieu de l'ajouter manuellement ultérieurement. Pour rejoindre automatiquement un domaine, sélectionnez le répertoire approprié dans la liste déroulante des répertoires de jointure de domaines lors du lancement d'une nouvelle instance. Pour plus de détails, consultez la section Joindre sans difficulté une instance Amazon EC2 Windows à votre AWS Managed Microsoft AD Active Directory dans le guide d'AWS Directory Service administration.
Supprimez les comptes inutilisés.Il est courant de trouver dans AD des comptes qui n'ont jamais été utilisés. Tout comme les comptes désactivés ou inactifs qui restent dans le système, les comptes non utilisés négligés peuvent ralentir votre système publicitaire ou rendre votre organisation vulnérable aux violations de données.
Automatisez les nettoyages d'Active Directory.Pour atténuer les risques de sécurité et empêcher les comptes obsolètes d'affecter les performances d'AD, effectuez des nettoyages AD à intervalles réguliers. Vous pouvez effectuer la plupart des tâches de gestion et de nettoyage d'AD en écrivant des scripts. Les tâches incluent par exemple la suppression de comptes désactivés et inactifs, la suppression de groupes vides et inactifs et la localisation de comptes utilisateurs et de mots de passe expirés.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez un rôle multicompte dans le compte enfant. | Pour créer un rôle multicompte dans un compte enfant, procédez comme suit :
| DevOps ingénieur |
Créez une règle d'événement dans le compte enfant. | Pour créer une EventBridge règle pour chaque compte enfant, procédez comme suit :
Pour plus de détails, consultez la section Création de règles qui réagissent aux événements survenus sur Amazon EventBridge dans le guide de EventBridge l'utilisateur Amazon. | DevOps ingénieur |
Créez une EC2 instance et rejoignez-la à AD. | Pour créer une EC2 instance pour Windows, procédez comme suit :
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Créez un dossier de projet et ajoutez les fichiers. | Pour cloner le référentiel et créer un dossier de projet, procédez comme suit :
| DevOps ingénieur |
Créez le | Pour compresser le
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Fournissez des valeurs pour les variables Terraform. | Pour le compte enfant, fournissez les valeurs des
| DevOps ingénieur |
Initialisez la configuration Terraform. | Pour initialiser votre répertoire de travail contenant les fichiers Terraform, exécutez la commande suivante :
| DevOps ingénieur |
Prévisualisez les modifications. | Vous pouvez prévisualiser les modifications que Terraform apportera à l'infrastructure avant que celle-ci ne soit déployée. Pour valider que Terraform apportera les modifications nécessaires, exécutez la commande suivante :
| DevOps ingénieur |
Exécutez les actions proposées. | Pour vérifier que les résultats de la
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Exécutez et testez la fonction Lambda. | Pour vérifier que le déploiement a bien eu lieu, procédez comme suit :
Les résultats de l'exécution indiquent le résultat de la fonction. | DevOps ingénieur |
Afficher les résultats de l'exécution des EventBridge règles depuis le compte parent. | Pour consulter les résultats de la EventBridge règle basée sur les événements de EC2 résiliation d'Amazon depuis le compte parent, procédez comme suit :
Dans la CloudWatch console, la page Log groups affiche les résultats de la fonction Lambda. | DevOps ingénieur |
Afficher les résultats de l'exécution des EventBridge règles depuis le compte enfant. | Pour consulter les résultats de la EventBridge règle basée sur les événements de EC2 résiliation d'Amazon liés au compte enfant, procédez comme suit :
Dans la CloudWatch console, la page Log groups affiche les résultats de la fonction Lambda. | DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Nettoyez l'infrastructure. | Pour nettoyer l'infrastructure que vous avez créée, utilisez la commande suivante :
Pour confirmer la | DevOps ingénieur |
Vérifiez après le nettoyage. | Vérifiez que les ressources ont été correctement supprimées. | DevOps ingénieur |
Résolution des problèmes
Problème | Solution |
---|---|
Problème de connexion entre AWS Directory Service (compte parent) et l' EC2 instance Amazon (compte enfant) : vous ne pouvez pas associer les ordinateurs du compte enfant à AD même si le peering VPC est disponible. | Ajoutez le routage dans le VPCs. Pour obtenir des instructions, consultez la section Configurer une connexion d'appairage VPC entre le propriétaire du répertoire et le compte du consommateur de l'annuaire dans la documentation. AWS Directory Service |
Ressources connexes
AWS documentation
Autres ressources
AWS Fournisseur
(documentation Terraform) Configuration du backend
(documentation Terraform) Module de démarrage Python
(référentiel Python Package Index) Téléchargement du binaire Terraform (documentation
Terraform)