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 dans le même Compte AWS formulaire AWS Managed Microsoft AD en utilisant l' AWS Lambda automatisation
Créé par le Dr Rahul Sharad Gaikwad (AWS) et Tamilselvan (P) AWS
Dépôt de code : terraform-aws-lambda-ad-cleanup | Environnement : PoC ou pilote | Technologies : infrastructure DevOps, stockage et sauvegarde, gestion et gouvernance |
Charge de travail : Toutes les autres charges de travail ; Microsoft | AWSservices : AWS Managed Microsoft AD ; AWS Lambda ; Amazon EC2 ; AWS Identity and Access Management ; AWS Directory Service ; AWS Systems Manager ; Amazon EventBridge ; AWS Auto Scaling |
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. 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 en raison de la baisse des frais de bande passante et des ressources informatiques.
Tenez les attaquants potentiels à distance grâce à un Active Directory propre.
Conditions préalables et limitations
Prérequis
Un actif Compte AWS.
Git est installé
et configuré sur un poste de travail local. Terraform installé
et configuré sur un poste de travail local. Ordinateur Windows doté de modules Active Directory (
ActiveDirectory
).Un répertoire AWS Managed Microsoft AD et des informations d'identification stockées dans un paramètre du AWS Systems Manager Parameter Store.
AWS Identity and Access Management (IAM) rôle avec autorisations d'accès à la Services AWS liste dans Outils. Pour plus d'informationsIAM, consultez la section Ressources connexes.
Limites
Ce modèle ne prend pas en charge la configuration entre comptes.
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 les composants du flux de travail et de l'architecture de ce modèle.
Le schéma suivant illustre le flux de travail suivant :
Amazon EventBridge déclenche la AWS Lambda fonction en fonction d'une expression cron. (Pour ce modèle, le calendrier des expressions cron est d'une fois par jour.)
Le IAM rôle et la politique requis sont créés et attachés AWS Lambda via Terraform.
La AWS Lambda fonction est exécutée et appelle Amazon Elastic Compute Cloud (AmazonEC2) Auto Scaling Groups à l'aide du module Python boto. La fonction Lambda obtient l'identifiant d'instance aléatoire. L'identifiant d'instance est utilisé pour exécuter AWS Systems Manager des commandes.
AWS Lambda effectue un autre appel à Amazon à l'EC2aide du module boto et obtient les adresses IP privées des serveurs Windows en cours d'exécution et les stocke dans une variable temporaire.
AWS 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 le PowerShell script sur les serveurs Amazon EC2 Windows pour obtenir les adresses IP privées des ordinateurs connectés à AD.
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 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 3.
Amazon EC2 se connecte AWS Directory Service à l'aide de PowerShell commandes et supprime les ordinateurs inutilisés ou inactifs.
Outils
AWSservices
AWS Directory Servicepropose plusieurs manières d'utiliser Microsoft Active Directory (AD) avec d'autres, Services AWS comme Amazon Elastic Compute Cloud (AmazonEC2), Amazon Relational Database Service (RDSAmazon) SQL for Server et FSx Amazon for 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 (AmazonEC2) 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'HTTPinvocation utilisant des API destinations 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. Vous pouvez ainsi 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. IAM 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 C
Le code de ce modèle est disponible dans le référentiel de solutions GitHub Custom AD Cleanup Automation
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 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 |
Tâche | Description | Compétences requises |
---|---|---|
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 |
Nettoyez l'infrastructure. | Pour nettoyer l'infrastructure que vous avez créée, utilisez la commande suivante.
Pour confirmer la commande de destruction, tapez | 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 |
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 :
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 les infrastructures. | Pour nettoyer l'infrastructure que vous avez créée, utilisez la commande suivante.
Pour confirmer la commande de destruction, tapez | 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 |
---|---|
Si vous essayez de supprimer l'ordinateur AD, le message « Accès refusé » s'affiche. L'ordinateur AD ne peut pas être supprimé car, par défaut, l'action tente de supprimer deux adresses IP privées connectées dans le cadre des services AD. | Pour éviter cette erreur, utilisez l'opération Python suivante pour ignorer les deux premiers ordinateurs lorsque vous listez les différences entre la sortie d'un ordinateur AD et la sortie de votre machine exécutant Windows.
|
Lorsque Lambda exécute un PowerShell script sur un serveur Windows, il s'attend à ce que les modules Active Directory soient disponibles par défaut. Si les modules ne sont pas disponibles, une fonction Lambda crée une erreur indiquant « Get- n'AdComputer est pas installé sur l'instance ». | Pour éviter cette erreur, installez les modules requis en utilisant les données utilisateur des EC2 instances. Utilisez le EC2WindowsUserdata |
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)