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 | 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
Ein aktiver AWS-Konto.
Git wurde auf einer lokalen Workstation installiert
und konfiguriert. Terraform wurde auf einer lokalen Workstation installiert
und konfiguriert. Windows-Computer mit Active Directory-Modulen ()
ActiveDirectory
.Ein Verzeichnis in AWS Managed Microsoft AD und Anmeldeinformationen, die in einem Parameter im AWS Systems Manager Parameter Store gespeichert sind.
AWS Identity and Access Management (IAM) Rolle mit Berechtigungen für die in Tools AWS-Services aufgelisteten. Weitere Informationen zu IAM finden Sie unter Verwandte Ressourcen.
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.
Das Diagramm zeigt den folgenden Workflow:
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.)
Die erforderliche IAM Rolle und Richtlinie werden AWS Lambda über Terraform erstellt und angehängt.
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.
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.
AWS Lambda ruft Systems Manager erneut auf, um die Computerinformationen abzurufen, mit denen eine Verbindung hergestellt ist AWS Directory Service.
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.
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.
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.
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. PowerShell
ist 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
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
Aufgabe | Beschreibung | Erforderliche 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:
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche 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.
| 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.
| DevOps Ingenieur |
Führen Sie die vorgeschlagenen Aktionen aus. | Gehen Sie wie folgt vor, um zu überprüfen, ob die Ergebnisse des
| DevOps Ingenieur |
Säubere die Infrastruktur. | Verwenden Sie den folgenden Befehl, um die von Ihnen erstellte Infrastruktur zu bereinigen.
Geben Sie ein, um den Befehl destroy zu bestätigen | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche 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:
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:
In der CloudWatch Konsole werden auf der Seite Protokollgruppen die Ergebnisse der Lambda-Funktion angezeigt. | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Infrastruktur aufräumen. | Verwenden Sie den folgenden Befehl, um die von Ihnen erstellte Infrastruktur zu bereinigen.
Geben Sie ein, um den Befehl destroy zu bestätigen | DevOps Ingenieur |
Nach der Säuberung überprüfen. | Stellen Sie sicher, dass die Ressourcen erfolgreich entfernt wurden. | DevOps Ingenieur |
Fehlerbehebung
Problem | Lö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.
|
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 EC2WindowsUserdata |
Zugehörige Ressourcen
AWS Dokumentation
Sonstige Ressourcen
AWS Anbieter
(Terraform-Dokumentation) Python-Boto-Modul
(Python-Paketindex-Repository) Laden Sie die Terraform-Binärdatei herunter
(Terraform-Dokumentation)