Monitoraggio dell'attività dell'utente root IAM - 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à.

Monitoraggio dell'attività dell'utente root IAM

Creato da Mostefa Brougui (AWS)

Archivio di codice: -activity-monitor aws-iam-root-user

Ambiente: PoC o pilota

Tecnologie: sicurezza, identità, conformità; gestione e governance

Carico di lavoro: tutti gli altri carichi di lavoro

Servizi AWS: Amazon EventBridge; AWS Lambda; Amazon SNS; AWS Identity and Access Management

Riepilogo

Ogni account Amazon Web Services (AWS) ha un utente root. Come best practice di sicurezza per AWS Identity and Access Management (IAM), consigliamo di utilizzare l'utente root per completare le attività che solo l'utente root può eseguire. Per l'elenco completo, consulta Attività che richiedono credenziali utente root nella AWS Account Management Reference Guide. Poiché l'utente root ha pieno accesso a tutte le tue risorse AWS e ai dati di fatturazione, ti consigliamo di non utilizzare questo account e di monitorarlo per eventuali attività, che potrebbero indicare che le credenziali dell'utente root sono state compromesse.

Utilizzando questo modello, configuri un'architettura basata sugli eventi che monitora l'utente root IAM. Questo modello imposta una hub-and-spoke soluzione che monitora più account AWS, gli account spoke, e centralizza la gestione e il reporting in un unico account, l'account hub.

Quando vengono utilizzate le credenziali utente root IAM, Amazon CloudWatch e AWS CloudTrail registrano l'attività rispettivamente nel log e nel trail. Nell'account spoke, una EventBridge regola Amazon invia l'evento al bus eventi centrale nell'account hub. Nell'account hub, una EventBridge regola invia l'evento a una funzione AWS Lambda. La funzione utilizza un argomento Amazon Simple Notification Service (Amazon SNS) che notifica l'attività dell'utente root.

In questo modello, utilizzi un CloudFormation modello AWS per distribuire i servizi di monitoraggio e gestione degli eventi negli account spoke. Si utilizza un modello HashiCorp Terraform per distribuire i servizi di gestione degli eventi e di notifica nell'account dell'hub.

Prerequisiti e limitazioni

Prerequisiti

  1. Autorizzazioni per distribuire risorse AWS nel tuo ambiente AWS.

  2. Autorizzazioni per distribuire set di stack CloudFormation . Per ulteriori informazioni, consulta Prerequisiti per le operazioni relative agli stack set (documentazione). CloudFormation

  3. Terraform installato e pronto all'uso. Per ulteriori informazioni, consulta Get Started — AWS (documentazione Terraform).

  4. Una traccia esistente in ogni account spoke. Per ulteriori informazioni, consulta Getting started with AWS CloudTrail (CloudTrail documentazione).

  5. Il percorso è configurato per inviare eventi a CloudWatch Logs. Per ulteriori informazioni, vedere Invio di eventi ai CloudWatch registri (CloudTrail documentazione).

  6. I tuoi account hub and spoke devono essere gestiti da AWS Organizations.

Architettura

Il diagramma seguente illustra gli elementi costitutivi dell'implementazione.

Un evento in un account spoke che crea una notifica e-mail in un account hub
  1. Quando vengono utilizzate le credenziali dell'utente root IAM, CloudWatch CloudTrail registrate l'attività rispettivamente nel log e nel trail.

  2. Nell'account spoke, una EventBridge regola invia l'evento al bus degli eventi centrale nell'account hub.

  3. Nell'account hub, una EventBridge regola invia l'evento a una funzione Lambda.

  4. La funzione Lambda utilizza un argomento di Amazon SNS che notifica l'attività dell'utente root.

Strumenti

Servizi AWS

  • AWS ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.

  • AWS ti CloudTrail aiuta a controllare la governance, la conformità e il rischio operativo del tuo account AWS.

  • Amazon CloudWatch Logs ti aiuta a centralizzare i log di tutti i tuoi sistemi, applicazioni e servizi AWS in modo da poterli monitorare e archiviare in modo sicuro.

  • 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, funzioni AWS Lambda, endpoint di invocazione HTTP che utilizzano destinazioni API o bus di eventi in altri account AWS.

  • AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

  • AWS Lambda è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.

  • Amazon Simple Notification Service (Amazon SNS) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.

Altri strumenti e servizi

  • Terraform è un'applicazione CLI per il provisioning e la gestione dell'infrastruttura e delle risorse cloud utilizzando il codice, sotto forma di file di configurazione.

Archivio di codice

Il codice sorgente e i modelli di questo pattern sono disponibili in un GitHub repository. Questo modello fornisce due modelli:

  • Un modello Terraform contenente le risorse distribuite nell'account hub

  • Un CloudFormation modello che distribuisci come istanza stack set negli account spoke

Il repository ha la seguente struttura generale.

.  |__README.md  |__spoke-stackset.yaml  |__hub.tf  |__root-activity-monitor-module      |__main.tf  # contains Terraform code to deploy resources in the Hub account      |__iam      # contains IAM policies JSON files          |__ lambda-assume-policy.json          # contains trust policy of the IAM role used by the Lambda function          |__ lambda-policy.json                 # contains the IAM policy attached to the IAM role used by the Lambda function      |__outputs  # contains Lambda function zip code

La sezione Epics fornisce step-by-step istruzioni per la distribuzione dei modelli.

Epiche

AttivitàDescrizioneCompetenze richieste

Clona il repository di codice di esempio.

  1. Apri il repository AWS IAM Root User Activity Monitor.

  2. Nella scheda Codice, sopra l'elenco dei file, scegli Codice, quindi copia l'URL HTTPS.

  3. In un'interfaccia a riga di comando, modificate la directory di lavoro nella posizione in cui desiderate archiviare i file di esempio.

  4. Immetti il comando seguente:

    git clone <repoURL>
Informazioni generali su AWS

Aggiorna il modello Terraform.

  1. Recupera l'ID della tua organizzazione. Per istruzioni, consulta Visualizzazione dei dettagli di un'organizzazione dall'account di gestione (documentazione di AWS Organizations).

  2. Nel repository clonato, apri. hub.tf

  3. Aggiorna quanto segue con i valori appropriati per il tuo ambiente:

    • OrganizationId— Aggiungi l'ID della tua organizzazione.

    • SNSTopicName— Aggiungi un nome per l'argomento Amazon SNS.

    • SNSSubscriptions— Aggiungi l'e-mail a cui inviare le notifiche di Amazon SNS.

    • Region— Aggiungi il codice della regione AWS in cui stai distribuendo le risorse. Ad esempio, eu-west-1.

    • Tags— Aggiungi i tuoi tag. Per ulteriori informazioni, consulta Tagging AWS resources (AWS General Reference).

  4. Salvare e chiudere il file hub.tf.

Informazioni generali su AWS

Distribuisci le risorse nell'account dell'hub AWS.

  1. Nell'interfaccia a riga di comando Terraform, vai alla cartella principale del repository clonato, quindi inserisci il seguente comando.

    terraform init && terraform plan
  2. Rivedi l'output e conferma di voler creare le risorse descritte.

  3. Inserire il seguente comando.

    terraform apply
  4. Quando richiesto, conferma la distribuzione yes inserendo.

Informazioni generali su AWS
AttivitàDescrizioneCompetenze richieste

Implementa il CloudFormation modello.

  1. Accedi alla Console di gestione AWS e apri la CloudFormation console.

  2. Dal pannello di navigazione, scegli StackSets.

  3. Nella parte superiore della StackSetspagina, scegli Crea StackSet.

  4. In Autorizzazioni, scegli Autorizzazioni gestite dal servizio. CloudFormation configura automaticamente le autorizzazioni necessarie per la distribuzione sugli account di destinazione gestiti da AWS Organizations.

  5. In Prerequisito - Prepara modello, scegli Il modello è pronto.

  6. In Specificare modello, scegli Carica un file modello.

  7. Scegli il file, quindi, nel repository clonato, seleziona. spoke-stackset.yaml

  8. Seleziona Successivo.

  9. Nella pagina Specificare StackSet i dettagli, inserisci un nome per il set di stack.

  10. In Parametri, inserisci l'ID dell'account hub, quindi scegli Avanti.

  11. Nella pagina Configura StackSet opzioni, sotto Tag, aggiungi i tuoi tag.

  12. In Configurazione di esecuzione, scegli Inattivo, quindi scegli Avanti.

  13. Nella pagina Imposta le opzioni di distribuzione, specifica le unità organizzative e le regioni in cui desideri distribuire lo stack set, quindi scegli Avanti.

  14. Nella pagina di revisione, seleziona Riconosco che AWS CloudFormation potrebbe creare risorse IAM, quindi scegli Invia. CloudFormation inizia a distribuire il tuo set di stack.

Per ulteriori informazioni e istruzioni, consulta Creare un set di stack (documentazione)CloudFormation .

Informazioni generali su AWS
AttivitàDescrizioneCompetenze richieste

Usa le credenziali dell'utente root.

  1. Accedi a un account spoke o all'account hub utilizzando le credenziali dell'utente root.

  2. Verifica che l'account e-mail che hai specificato riceva la notifica di Amazon SNS.

Informazioni generali su AWS

Risorse correlate

Informazioni aggiuntive

Amazon GuardDuty è un servizio di monitoraggio continuo della sicurezza che analizza ed elabora i log per identificare attività impreviste e potenzialmente non autorizzate nel tuo ambiente AWS. In alternativa a questa soluzione, se l'hai abilitata GuardDuty, può avvisarti quando sono state utilizzate le credenziali dell'utente root. Il GuardDuty risultato èPolicy:IAMUser/RootCredentialUsage, e la gravità predefinita è Bassa. Per ulteriori informazioni, consulta la sezione Gestione dei GuardDuty risultati di Amazon.