Rimuovi EC2 le voci Amazon nello stesso Account AWS modulo AWS Managed Microsoft AD utilizzando l' AWS Lambda automazione - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Rimuovi EC2 le voci Amazon nello stesso Account AWS modulo AWS Managed Microsoft AD utilizzando l' AWS Lambda automazione

Creato dal dott. Rahul Sharad Gaikwad () e Tamilselvan P () AWS AWS

terraform-aws-lambda-adArchivio di codice: -cleanup

Ambiente: PoC o pilota

Tecnologie: DevOps; Infrastruttura; Archiviazione e backup; Gestione e governance

Carico di lavoro: tutti gli altri carichi di lavoro; Microsoft

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

Riepilogo

Active Directory (AD) è uno strumento di scripting di Microsoft che gestisce le informazioni sul dominio e le interazioni degli utenti con i servizi di rete. È ampiamente utilizzato dai fornitori di servizi gestiti (MSPs) per gestire le credenziali dei dipendenti e le autorizzazioni di accesso. Poiché gli aggressori di AD possono utilizzare account inattivi per cercare di hackerare un'organizzazione, è importante trovare account inattivi e disattivarli secondo un programma di manutenzione ordinaria. Con AWS Directory Service for Microsoft Active Directory, puoi eseguire Microsoft Active Directory come servizio gestito.

Questo modello può aiutarti a configurare AWS Lambda l'automazione per trovare e rimuovere rapidamente gli account inattivi. Quando si utilizza questo modello, è possibile ottenere i seguenti vantaggi:

  • Migliora le prestazioni di database e server e correggi le vulnerabilità di sicurezza dovute agli account inattivi.

  • Se il server AD è ospitato nel cloud, la rimozione degli account inattivi può anche ridurre i costi di archiviazione migliorando al contempo le prestazioni. Le bollette mensili potrebbero diminuire perché sia i costi della larghezza di banda che le risorse di elaborazione possono diminuire.

  • Tieni a bada i potenziali aggressori con un Active Directory pulito.

Prerequisiti e limitazioni

Prerequisiti

Limitazioni

  • Questo modello non supporta la configurazione tra account.

  • Alcuni Servizi AWS non sono disponibili in tutti Regioni AWS. Per la disponibilità per regione, vedi Servizi AWS per regione. Per endpoint specifici, consulta Endpoints and quotas del servizio e scegli il link relativo al servizio.

Versioni del prodotto

Architettura

Il diagramma seguente mostra i componenti del flusso di lavoro e dell'architettura per questo modello.

Processo per utilizzare l'automazione Lambda per rimuovere EC2 voci da Managed Microsoft AD.

Il diagramma mostra il flusso di lavoro seguente:

  1. Amazon EventBridge attiva la AWS Lambda funzione in base a un'espressione cron. (Per questo modello, la pianificazione delle espressioni cron è una volta al giorno.)

  2. Il IAM ruolo e la politica richiesti vengono creati e collegati AWS Lambda tramite Terraform.

  3. La AWS Lambda funzione viene eseguita e chiama i gruppi di Auto Scaling di Amazon Elastic Compute Cloud (AmazonEC2) utilizzando il modulo di avvio Python. La funzione Lambda ottiene l'id casuale dell'istanza. L'id dell'istanza viene utilizzato per eseguire AWS Systems Manager i comandi.

  4. AWS Lambda effettua un'altra chiamata ad Amazon EC2 utilizzando il modulo boto e ottiene gli indirizzi IP privati dei server Windows in esecuzione e li archivia in una variabile temporanea.

  5. AWS Lambda effettua un'altra chiamata a Systems Manager per ottenere le informazioni sul computer a cui è connesso AWS Directory Service.

  6. Un AWS Systems Manager documento aiuta a eseguire lo PowerShell script sui server Amazon EC2 Windows per ottenere gli indirizzi IP privati dei computer collegati ad AD.

  7. Il nome utente e le password del dominio AD sono archiviati nel AWS Systems Manager Parameter Store. AWS Lambda e Systems Manager effettuano una chiamata a Parameter Store e ottengono i valori di nome utente e password da utilizzare per connettere AD.

  8. Utilizzando il documento Systems Manager, lo PowerShell script viene eseguito sul server Amazon EC2 Windows utilizzando l'id dell'istanza ottenuto in precedenza nel passaggio 3.

  9. Amazon EC2 si connette AWS Directory Service utilizzando PowerShell i comandi e rimuove i computer non in uso o inattivi.

Strumenti

AWSservizi

  • AWS Directory Serviceoffre diversi modi per utilizzare Microsoft Active Directory (AD) con altri Servizi AWS come Amazon Elastic Compute Cloud (AmazonEC2), Amazon Relational Database Service (RDSAmazon) SQL for Server e FSx Amazon for Windows File Server.

  • AWS Directory Service for Microsoft Active Directoryconsente ai carichi di lavoro e alle risorse compatibili con le directory di AWS utilizzare Microsoft Active Directory in. Cloud AWS

  • Amazon Elastic Compute Cloud (AmazonEC2) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.

  • Amazon EventBridge è un servizio di bus eventi senza server che ti aiuta a connettere le tue applicazioni con dati in tempo reale provenienti da una varietà di fonti. Ad esempio, AWS Lambda funzioni, endpoint di HTTP invocazione che utilizzano API destinazioni o bus di eventi in altro modo. Account AWS

  • AWS Identity and Access Management (IAM) consente di gestire in modo sicuro l'accesso alle AWS risorse controllando chi è autenticato e autorizzato a utilizzarle. ConIAM, puoi specificare chi o cosa può accedere ai servizi e alle risorse AWS, gestire centralmente le autorizzazioni dettagliate e analizzare l'accesso per perfezionare le autorizzazioni. AWS

  • AWS Lambda è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.

  • AWS Systems Managerti aiuta a gestire le applicazioni e l'infrastruttura in esecuzione in. Cloud AWS Semplifica la gestione delle applicazioni e delle risorse, riduce i tempi di rilevamento e risoluzione dei problemi operativi e aiuta a gestire le AWS risorse in modo sicuro su larga scala.

  • AWS Systems Manager i documenti definiscono le azioni che Systems Manager esegue sulle istanze gestite. Systems Manager include più di 100 documenti preconfigurati che è possibile utilizzare specificando i parametri nel runtime (tempo di esecuzione).

  • AWS Systems Manager Parameter Store è una funzionalità AWS Systems Manager e fornisce uno storage gerarchico sicuro per la gestione dei dati di configurazione e la gestione dei segreti.

Altri strumenti

  • HashiCorp Terraform è uno strumento open source di infrastruttura come codice (IaC) che consente di utilizzare il codice per fornire e gestire l'infrastruttura e le risorse cloud.

  • PowerShellè un programma di gestione dell'automazione e della configurazione di Microsoft che funziona su Windows, Linux e macOS.

  • Python è un linguaggio di programmazione per computer generico.

Deposito di codice C

Il codice per questo pattern è disponibile nell'archivio della soluzione GitHub Custom AD Cleanup Automation.

Best practice

  • Unisci automaticamente i domini.Quando avvii un'istanza Windows che deve far parte di un AWS Directory Service dominio, unisciti al dominio durante il processo di creazione dell'istanza anziché aggiungere manualmente l'istanza in un secondo momento. Per aggiungere automaticamente un dominio, seleziona la directory corretta dall'elenco a discesa Domain join directory quando avvii una nuova istanza. Per maggiori dettagli, consulta Unire senza problemi un'istanza Amazon EC2 Windows alla tua AWS Managed Microsoft AD Active Directory nella Guida all'AWS Directory Service amministrazione.

  • Elimina gli account non utilizzati.È comune trovare account in AD che non sono mai stati utilizzati. Come gli account disabilitati o inattivi che rimangono nel sistema, gli account trascurati e inutilizzati possono rallentare il sistema AD o rendere l'organizzazione vulnerabile alle violazioni dei dati.

  • Automatizza le pulizie di Active Directory.Per contribuire a mitigare i rischi per la sicurezza e impedire che gli account obsoleti influiscano sulle prestazioni di AD, è necessario eseguire le pulizie di AD a intervalli regolari. Puoi eseguire la maggior parte delle attività di gestione e pulizia di AD scrivendo script. Le attività di esempio includono la rimozione di account disabilitati e inattivi, l'eliminazione di gruppi vuoti e inattivi e l'individuazione di account utente e password scaduti.

Epiche

AttivitàDescrizioneCompetenze richieste

Crea una cartella di progetto e aggiungi i file.

Per clonare il repository e creare una cartella di progetto, procedi come segue:

  1. Apri l'archivio di questo pattern. GitHub

  2. Scegli il pulsante Codice per visualizzare le opzioni per la clonazione nel menu a discesa Clone.

  3. Nella HTTPSscheda, copia quanto URL fornito in Clone utilizzando il web. URL

  4. Crea una cartella sul tuo computer e assegnale il nome del tuo progetto.

  5. Apri un terminale nel tuo computer locale e accedi a questa cartella.

  6. Per clonare il repository git, usa il seguente comando.

    git clone <repository-URL>.git

  7. Dopo che il repository è stato clonato, usa il seguente comando per andare alla directory clonata.

    cd <directory name>

  8. Nel repository clonato, aprite questo progetto in un ambiente di sviluppo integrato () di vostra scelta. IDE

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Inizializza la configurazione Terraform.

Per inizializzare la directory di lavoro che contiene i file Terraform, esegui il seguente comando.

terraform init

DevOps ingegnere

Visualizza in anteprima le modifiche.

Puoi visualizzare in anteprima le modifiche che Terraform apporterà all'infrastruttura prima che l'infrastruttura venga implementata. Per verificare che Terraform apporti le modifiche necessarie, esegui il seguente comando.

terraform plan

DevOps ingegnere

Esegui le azioni proposte.

Per verificare che i risultati del terraform plan comando siano quelli previsti, effettuate le seguenti operazioni:

  1. Esegui il comando seguente.

    terraform apply

  2. Accedere a AWS Management Console e verificare che le risorse siano presenti.

DevOps ingegnere

Pulisci l'infrastruttura.

Per ripulire l'infrastruttura che hai creato, usa il seguente comando.

terraform destroy

Per confermare il comando destroy, digitateyes.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Esegui e testa la funzione Lambda.

Per verificare che la distribuzione sia avvenuta correttamente, procedi come segue:

  1. Accedi a AWS Management Console e apri la console. Aprire la pagina Funzioni e selezionare il nome della funzione che inizia con ADcleanup-Lambda-*.

  2. Nella pagina di panoramica delle funzioni, scegliete Test nella scheda Codice nella sezione Codice sorgente.

  3. Per salvare l'evento di test, fornite un nome per l'evento e scegliete Salva. Quindi, per testare l'evento, scegli di nuovo Test.

I risultati dell'esecuzione mostrano l'output della funzione.

DevOps ingegnere

Visualizza i risultati della funzione Lambda.

In questo modello, una EventBridge regola esegue la funzione Lambda una volta al giorno. Per visualizzare i risultati della funzione Lambda, effettuate le seguenti operazioni:

  1. Accedi a AWS Management Console e apri la AWS Lambda console. Aprire la pagina Funzioni e selezionare il nome della funzione che inizia con ADcleanup-Lambda-*.

  2. Scegliete la scheda Monitor e scegliete Visualizza registri. CloudWatch

Nella CloudWatch console, la pagina Log groups mostra i risultati della funzione Lambda.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Pulisci l'infrastruttura.

Per ripulire l'infrastruttura che hai creato, usa il seguente comando.

terraform destroy

Per confermare il comando destroy, digitateyes.

DevOps ingegnere

Verifica dopo la pulizia.

Verifica che le risorse siano state rimosse correttamente.

DevOps ingegnere

Risoluzione dei problemi

ProblemaSoluzione

Se si tenta di rimuovere il computer AD, viene visualizzato il messaggio «Accesso negato». Il computer AD non può essere rimosso perché, per impostazione predefinita, l'azione tenta di rimuovere due indirizzi IP privati collegati come parte dei servizi AD.

Per evitare questo errore, utilizzate la seguente operazione Python per ignorare i primi due computer quando elencate le differenze tra l'output di un computer AD e l'output del computer che esegue Windows.

Difference = Difference[2:]

Quando Lambda esegue PowerShell uno script su un server Windows, si aspetta che i moduli Active Directory siano disponibili per impostazione predefinita. Se i moduli non sono disponibili, una funzione Lambda crea un errore che indica «Get- non AdComputer è installato sull'istanza».

Per evitare questo errore, installa i moduli richiesti utilizzando i dati utente delle EC2 istanze. Usa lo EC2WindowsUserdatascript che si trova nel GitHub repository di questo pattern.

Risorse correlate

AWS documentazione

Altre risorse