Entfernen Sie EC2 Amazon-Einträge in derselben AWS-Konto Form AWS Managed Microsoft AD mithilfe von AWS Lambda Automatisierung - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Entfernen Sie EC2 Amazon-Einträge in derselben AWS-Konto Form AWS Managed Microsoft AD mithilfe von AWS Lambda Automatisierung

Erstellt von Dr. Rahul Sharad Gaikwad () und Tamilselvan P () AWS AWS

terraform-aws-lambda-adCode-Repository: -cleanup

Umgebung: PoC oder Pilot

Technologien: DevOps; Infrastruktur; Speicher und Backup; Verwaltung und Verwaltung

Arbeitslast: Alle anderen Workloads; Microsoft

AWSDienste: AWS Verwaltetes Microsoft AD; AWS Lambda; AmazonEC2; AWS Identity and Access Management; AWS Directory Service; AWS Systems Manager; Amazon EventBridge; AWS Auto Scaling

Übersicht

Active Directory (AD) ist ein Microsoft-Skripttool, das Domäneninformationen und Benutzerinteraktionen mit Netzwerkdiensten verwaltet. Es wird häufig von Managed Services Providern (MSPs) verwendet, um die Anmeldeinformationen und Zugriffsberechtigungen von Mitarbeitern zu verwalten. Da AD-Angreifer mit inaktiven Konten versuchen können, sich in ein Unternehmen zu hacken, ist es wichtig, inaktive Konten zu finden und sie im Rahmen eines routinemäßigen Wartungsplans zu deaktivieren. Mit AWS Directory Service for Microsoft Active Directory können Sie Microsoft Active Directory als verwalteten Dienst ausführen.

Dieses Muster kann Ihnen helfen, die AWS Lambda Automatisierung so zu konfigurieren, dass inaktive Konten schnell gefunden und entfernt werden. Wenn Sie dieses Muster verwenden, können Sie die folgenden Vorteile nutzen:

  • Verbessern Sie die Datenbank- und Serverleistung und beheben Sie Sicherheitslücken, die auf inaktive Konten zurückzuführen sind.

  • Wenn Ihr AD-Server in der Cloud gehostet wird, kann das Entfernen inaktiver Konten auch die Speicherkosten senken und gleichzeitig die Leistung verbessern. Ihre monatlichen Rechnungen könnten sinken, da sowohl die Bandbreitenkosten als auch die Rechenressourcen sinken können.

  • Halten Sie potenzielle Angreifer mit einem sauberen Active Directory in Schach.

Voraussetzungen und Einschränkungen

Voraussetzungen

Einschränkungen

  • Dieses Muster unterstützt keine kontenübergreifende Einrichtung.

  • Einige AWS-Services sind nicht in allen AWS-Regionen verfügbar. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie AWS-Services unter Nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Produktversionen

Architektur

Das folgende Diagramm zeigt den Workflow und die Architekturkomponenten für dieses Muster.

Prozess zur Verwendung der Lambda-Automatisierung zum Entfernen von EC2 Einträgen aus Managed Microsoft AD.

Das Diagramm zeigt den folgenden Workflow:

  1. Amazon EventBridge löst die AWS Lambda Funktion auf der Grundlage eines Cron-Ausdrucks aus. (Bei diesem Muster erfolgt der Zeitplan für Cron-Ausdrücke einmal täglich.)

  2. Die erforderliche IAM Rolle und Richtlinie werden AWS Lambda über Terraform erstellt und angehängt.

  3. Die AWS Lambda Funktion wird ausgeführt und ruft Amazon Elastic Compute Cloud (AmazonEC2) Auto Scaling Groups mithilfe des Python-Boto-Moduls auf. Die Lambda-Funktion ruft die zufällige Instanz-ID ab. Die Instanz-ID wird zur Ausführung von AWS Systems Manager Befehlen verwendet.

  4. AWS Lambda ruft Amazon EC2 mithilfe des Boto-Moduls erneut auf und ruft die privaten IP-Adressen der laufenden Windows-Server ab und speichert die Adressen in einer temporären Variablen.

  5. AWS Lambda ruft Systems Manager erneut auf, um die Computerinformationen abzurufen, mit denen eine Verbindung hergestellt ist AWS Directory Service.

  6. Ein AWS Systems Manager Dokument hilft dabei, das PowerShell Skript auf Amazon EC2 Windows-Servern auszuführen, um die privaten IP-Adressen der Computer abzurufen, die mit AD verbunden sind.

  7. Der Benutzername und die Passwörter der AD-Domain werden im AWS Systems Manager Parameter Store gespeichert. AWS Lambda und Systems Manager rufen Parameter Store auf und rufen die Werte für Benutzername und Passwort ab, die für die Verbindung mit AD verwendet werden sollen.

  8. Mithilfe des Systems Manager Manager-Dokuments wird das PowerShell Skript auf dem Amazon EC2 Windows-Server unter Verwendung der zuvor in Schritt 3 abgerufenen Instance-ID ausgeführt.

  9. Amazon EC2 stellt mithilfe AWS Directory Service von PowerShell Befehlen eine Verbindung her und entfernt die Computer, die nicht verwendet oder inaktiv sind.

Tools

AWSDienstleistungen

  • AWS Directory Servicebietet mehrere Möglichkeiten, Microsoft Active Directory (AD) mit anderen AWS-Services wie Amazon Elastic Compute Cloud (AmazonEC2), Amazon Relational Database Service (AmazonRDS) for SQL Server und Amazon FSx for Windows File Server zu verwenden.

  • AWS Directory Service for Microsoft Active Directoryermöglicht Ihren verzeichnissensitiven Workloads und AWS Ressourcen die Verwendung von Microsoft Active Directory in der. AWS Cloud

  • Amazon Elastic Compute Cloud (AmazonEC2) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.

  • Amazon EventBridge ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP Aufruf-Endpunkte, die API Ziele verwenden, oder Event-Busse in anderen. AWS-Konten

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden. Mit können Sie festlegenIAM, wer oder was auf Dienste und Ressourcen zugreifen kann AWS, detaillierte Berechtigungen zentral verwalten und den Zugriff analysieren, um die Berechtigungen übergreifend zu verfeinern. AWS

  • AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • AWS Systems Managerhilft Ihnen bei der Verwaltung Ihrer Anwendungen und Infrastruktur, die in der ausgeführt AWS Cloud werden. Es vereinfacht das Anwendungs- und Ressourcenmanagement, verkürzt die Zeit für die Erkennung und Lösung betrieblicher Probleme und hilft Ihnen, Ihre AWS Ressourcen sicher und in großem Umfang zu verwalten.

  • AWS Systems Manager Dokumente definieren die Aktionen, die Systems Manager auf Ihren verwalteten Instanzen ausführt. Systems Manager umfasst mehr als 100 vorkonfigurierter Dokumente, die Sie verwenden können, indem Sie zur Laufzeit Parameter angeben.

  • AWS Systems Manager Parameter Store ist eine Funktion von AWS Systems Manager und bietet sicheren, hierarchischen Speicher für die Verwaltung von Konfigurationsdaten und Geheimnissen.

Andere Tools

  • HashiCorp Terraform ist ein Open-Source-Tool für Infrastruktur als Code (IaC), mit dem Sie mithilfe von Code Cloud-Infrastruktur und -Ressourcen bereitstellen und verwalten können.

  • PowerShellist ein Automatisierungs- und Konfigurationsverwaltungsprogramm von Microsoft, das unter Windows, Linux und macOS läuft.

  • Python ist eine Allzweck-Computerprogrammiersprache.

C-Code-Repository

Der Code für dieses Muster ist im Lösungs-Repository für GitHub benutzerdefinierte AD Cleanup Automation verfügbar.

Bewährte Methoden

  • Automatisch Domänen beitreten.Wenn Sie eine Windows-Instanz starten, die Teil einer AWS Directory Service Domäne sein soll, treten Sie der Domäne während der Instanzerstellung bei, anstatt die Instanz später manuell hinzuzufügen. Um einer Domäne automatisch beizutreten, wählen Sie beim Starten einer neuen Instanz das richtige Verzeichnis aus der Dropdownliste zum Domänenbeitrittsverzeichnis aus. Weitere Informationen finden Sie unter Nahtloses Hinzufügen einer Amazon EC2 Windows-Instance zu Ihrem AWS Managed Microsoft AD Active Directory im AWS Directory Service Administratorhandbuch.

  • Löschen Sie ungenutzte Konten.Es ist üblich, in AD Konten zu finden, die noch nie verwendet wurden. Wie deaktivierte oder inaktive Konten, die im System verbleiben, können vernachlässigte, ungenutzte Konten Ihr AD-System verlangsamen oder Ihr Unternehmen anfällig für Datenschutzverletzungen machen.

  • Automatisieren Sie Active Directory-Säuberungen.Um Sicherheitsrisiken zu minimieren und zu verhindern, dass veraltete Konten die AD-Leistung beeinträchtigen, sollten AD-Bereinigungen in regelmäßigen Abständen durchgeführt werden. Sie können die meisten AD-Verwaltungs- und Bereinigungsaufgaben erledigen, indem Sie Skripts schreiben. Zu den Aufgaben gehören beispielsweise das Entfernen deaktivierter und inaktiver Konten, das Löschen leerer und inaktiver Gruppen und das Auffinden abgelaufener Benutzerkonten und Kennwörter.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie einen Projektordner und fügen Sie die Dateien hinzu.

Gehen Sie wie folgt vor, um das Repository zu klonen und einen Projektordner zu erstellen:

  1. Öffnen Sie das GitHub Repository dieses Musters.

  2. Wählen Sie die Code-Schaltfläche, um die Optionen zum Klonen in der Dropdownliste „Klonen“ zu sehen.

  3. Kopieren Sie auf der HTTPSRegisterkarte den unter Clone using the web URL URL bereitgestellten Code.

  4. Erstellen Sie einen Ordner auf Ihrem Computer und benennen Sie ihn mit Ihrem Projektnamen.

  5. Öffnen Sie ein Terminal auf Ihrem lokalen Computer und navigieren Sie zu diesem Ordner.

  6. Verwenden Sie den folgenden Befehl, um das Git-Repository zu klonen.

    git clone <repository-URL>.git

  7. Nachdem das Repository geklont wurde, verwenden Sie den folgenden Befehl, um zum geklonten Verzeichnis zu wechseln.

    cd <directory name>

  8. Öffnen Sie dieses Projekt im geklonten Repository in einer integrierten Entwicklungsumgebung (IDE) Ihrer Wahl.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Initialisieren Sie die Terraform-Konfiguration.

Führen Sie den folgenden Befehl aus, um Ihr Arbeitsverzeichnis zu initialisieren, das die Terraform-Dateien enthält.

terraform init

DevOps Ingenieur

Änderungen in der Vorschau anzeigen.

Sie können eine Vorschau der Änderungen anzeigen, die Terraform an der Infrastruktur vornehmen wird, bevor Ihre Infrastruktur bereitgestellt wird. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Terraform die Änderungen nach Bedarf vornimmt.

terraform plan

DevOps Ingenieur

Führen Sie die vorgeschlagenen Aktionen aus.

Gehen Sie wie folgt vor, um zu überprüfen, ob die Ergebnisse des terraform plan Befehls den Erwartungen entsprechen:

  1. Führen Sie den folgenden Befehl aus.

    terraform apply

  2. Melden Sie sich bei der an AWS Management Console, und stellen Sie sicher, dass die Ressourcen vorhanden sind.

DevOps Ingenieur

Säubere die Infrastruktur.

Verwenden Sie den folgenden Befehl, um die von Ihnen erstellte Infrastruktur zu bereinigen.

terraform destroy

Geben Sie ein, um den Befehl destroy zu bestätigenyes.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Führen Sie die Lambda-Funktion aus und testen Sie sie.

Gehen Sie wie folgt vor, um zu überprüfen, ob die Bereitstellung erfolgreich durchgeführt wurde:

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Konsole. Öffnen Sie die Seite Funktionen und wählen Sie den Funktionsnamen aus, der mit ADcleanup-Lambda-* beginnt.

  2. Wählen Sie auf der Funktionsübersichtsseite auf der Registerkarte Code im Abschnitt Codequelle die Option Test aus.

  3. Um das Testereignis zu speichern, geben Sie einen Namen für das Ereignis ein und wählen Sie Speichern. Um das Ereignis zu testen, wählen Sie dann erneut Testen aus.

Die Ausführungsergebnisse zeigen die Ausgabe der Funktion.

DevOps Ingenieur

Sehen Sie sich die Ergebnisse der Lambda-Funktion an.

In diesem Muster führt eine EventBridge Regel die Lambda-Funktion einmal täglich aus. Gehen Sie wie folgt vor, um die Ergebnisse der Lambda-Funktion anzuzeigen:

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Lambda Konsole. Öffnen Sie die Seite Funktionen und wählen Sie den Funktionsnamen aus, der mit ADcleanup-Lambda-* beginnt.

  2. Wählen Sie die Registerkarte „Überwachen“ und dann „Protokolle anzeigen“. CloudWatch

In der CloudWatch Konsole werden auf der Seite Protokollgruppen die Ergebnisse der Lambda-Funktion angezeigt.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Infrastruktur aufräumen.

Verwenden Sie den folgenden Befehl, um die von Ihnen erstellte Infrastruktur zu bereinigen.

terraform destroy

Geben Sie ein, um den Befehl destroy zu bestätigenyes.

DevOps Ingenieur

Nach der Säuberung überprüfen.

Stellen Sie sicher, dass die Ressourcen erfolgreich entfernt wurden.

DevOps Ingenieur

Fehlerbehebung

ProblemLösung

Wenn Sie versuchen, den AD-Computer zu entfernen, erhalten Sie die Meldung „Zugriff verweigert“. Der AD-Computer kann nicht entfernt werden, da die Aktion standardmäßig versucht, zwei private IP-Adressen zu entfernen, die als Teil der AD-Dienste miteinander verbunden sind.

Um diesen Fehler zu vermeiden, verwenden Sie den folgenden Python-Vorgang, um die ersten beiden Computer zu ignorieren, wenn Sie die Unterschiede zwischen einer AD-Computerausgabe und der Ausgabe Ihres Computers auflisten, auf dem Windows ausgeführt wird.

Difference = Difference[2:]

Wenn Lambda ein PowerShell Skript auf einem Windows-Server ausführt, erwartet es, dass Active Directory-Module standardmäßig verfügbar sind. Wenn die Module nicht verfügbar sind, erzeugt eine Lambda-Funktion einen Fehler, der besagt, dass „Get- AdComputer ist nicht auf der Instanz installiert“.

Um diesen Fehler zu vermeiden, installieren Sie die erforderlichen Module mithilfe der Benutzerdaten der EC2 Instanzen. Verwenden Sie das EC2WindowsUserdataSkript, das sich im GitHub Repository dieses Musters befindet.

Zugehörige Ressourcen

AWS Dokumentation

Sonstige Ressourcen