Proteggi i dati sensibili nei CloudWatch registri utilizzando Amazon Macie - 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à.

Proteggi i dati sensibili nei CloudWatch registri utilizzando Amazon Macie

Anisha Salunkhe, Omar Franco e David Guardiola, Amazon Web Services

Riepilogo

Questo modello mostra come utilizzare Amazon Macie per rilevare automaticamente i dati sensibili in un gruppo di log di Amazon CloudWatch Logs implementando un flusso di lavoro completo di monitoraggio della sicurezza. La soluzione utilizza Amazon Data Firehose per lo streaming delle voci di CloudWatch log su Amazon Simple Storage Service (Amazon S3). Macie analizza periodicamente questo bucket alla ricerca di informazioni di identificazione personale (PII), dati finanziari e altri contenuti sensibili. L'infrastruttura viene distribuita tramite un AWS CloudFormation modello che fornisce tutte le configurazioni e le configurazioni necessarie. Servizi AWS

CloudWatch I log spesso contengono dati applicativi che possono includere inavvertitamente informazioni riservate sugli utenti. Ciò può creare rischi per la conformità e la sicurezza. Gli approcci tradizionali di monitoraggio dei registri non dispongono di funzionalità automatizzate di rilevamento dei dati sensibili. Ciò può rendere difficile identificare e rispondere alle potenziali esposizioni dei dati in tempo reale.

Questo modello aiuta i team di sicurezza e i responsabili della conformità a mantenere la riservatezza dei dati fornendo rilevazioni e avvisi automatici per i dati sensibili nei sistemi di registrazione. Questa soluzione consente una risposta proattiva agli incidenti tramite le notifiche di Amazon Simple Notification Service (Amazon SNS) e isola automaticamente i dati sensibili in un bucket Amazon S3 sicuro. Puoi personalizzare i modelli di rilevamento e integrare il flusso di lavoro con i processi operativi di sicurezza esistenti.

Prerequisiti e limitazioni

Prerequisiti

Limitazioni

Architecture

Architettura Target

Il diagramma seguente mostra il flusso di lavoro per l'utilizzo di Macie per esaminare le voci di registro di CloudWatch Logs alla ricerca di dati sensibili.

 

Il flusso di lavoro mostra i seguenti passaggi:

  1. Il gruppo CloudWatch Logs log genera i log, che sono soggetti al filtro di sottoscrizione.

  2. Il filtro di sottoscrizione inoltra i log ad Amazon Data Firehose.

  3. I log vengono crittografati con una chiave AWS Key Management Service (AWS KMS) quando passano attraverso il flusso di distribuzione di Amazon Data Firehose.

  4. Il flusso di consegna consegna i log nel bucket di log esportati in Amazon S3.

  5. Ogni giorno alle 4 del mattino, Amazon EventBridge avvia una AWS Lambda funzione che avvia una scansione Macie alla ricerca di dati sensibili nel bucket dei log esportati.

  6. Se Macie identifica dati sensibili nel bucket, una funzione Lambda rimuove il registro dal bucket di log esportato e lo crittografa con un. AWS KMS key

  7. La funzione Lambda isola i log che contengono dati sensibili nel bucket di isolamento dei dati.

  8. L'identificazione di dati sensibili avvia un argomento di Amazon SNS.

  9. Amazon SNS invia una notifica e-mail a un indirizzo e-mail configurato con informazioni sui log che contengono dati sensibili.

Risorse distribuite

Il CloudFormation modello distribuisce le seguenti risorse nel target Account AWS e: Regione AWS

Tools (Strumenti)

Servizi AWS

  • AWS CloudFormationti aiuta a configurare AWS le risorse, fornirle in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita in Account AWS e. Regioni AWS

  • Amazon CloudWatch Logs ti aiuta a centralizzare i log di tutti i tuoi sistemi e applicazioni, Servizi AWS così puoi monitorarli e archiviarli in modo sicuro.

  • Amazon Data Firehose ti aiuta a distribuire dati di streaming in tempo reale ad altri Servizi AWS endpoint HTTP personalizzati e endpoint HTTP di proprietà di provider di servizi terzi supportati.

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

  • AWS Key Management Service (AWS KMS) consente di creare e controllare chiavi crittografiche per proteggere i dati.

  • 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.

  • Amazon Macie ti aiuta a scoprire dati sensibili, offre visibilità sui rischi per la sicurezza dei dati e consente la protezione automatizzata contro tali rischi.

  • 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.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

Repository di codici

Il codice per questo pattern è disponibile nel repository GitHub sample-macie-for-securing-cloudwatch-logs.

Best practice

Segui le migliori pratiche riportate nella documentazione.CloudFormation CloudFormation

Epiche

OperazioneDescriptionCompetenze richieste

Clona il repository del codice.

Immettete il seguente comando per clonare il repository sulla vostra workstation locale:

git clone https://github.com/aws-samples/sample-macie-for-securing-cloudwatch-logs
Sviluppatore di app

(Facoltativo) Modifica il modello. CloudFormation

  1. Apri il file main.yaml.

  2. Personalizzate il modello effettuando una delle seguenti operazioni:

    • È possibile rinominare le risorse.

    • Nella parameter sezione è possibile modificare i valori predefiniti.

    • È possibile modificare il modello di filtro degli abbonamenti. Per ulteriori informazioni, consulta Filtri di sottoscrizione a livello di gruppo di log nella documentazione di CloudWatch Logs.

  3. Salva e chiudi il file main.yaml.

Sviluppatore di app

Opzione 1: distribuzione tramite script con parametri della riga di comando.

Immetti il seguente comando per distribuire la soluzione utilizzando i parametri della riga di comando, dove il valore enable-macie è true solo se Amazon Macie non è già abilitato:

./scripts/test-macie-solution.sh --deploy-stack \ --stack-name <stack name> \ --email <email address> \ --enable-macie <true or false> \ --region <region> \ --resource-name <prefix for all resources> \ --bucket-name <bucket name>
Informazioni generali su AWS

Opzione 2: implementazione tramite script con variabili di ambiente.

  1. Inserisci i seguenti comandi per definire le variabili di ambiente, il cui valore ENABLE_MACIE è true solo se Amazon Macie non è già abilitato:

    export STACK_NAME=<stack name> export SNS_EMAIL=<email address> export ENABLE_MACIE=<true or false> export REGION=<region> export RESOURCE_NAME=<prefix for all resources> export BUCKET_NAME=<bucket name>
  2. Inserisci il seguente comando per convalidare i parametri prima della distribuzione:

    ./scripts/test-macie-solution.sh \ --validate-params \ --email <email address> \ --region <region>
  3. Immettere il comando seguente per distribuire la soluzione:

    ./scripts/test-macie-solution.sh --deploy-stack
Informazioni generali su AWS

Opzione 3: distribuisci utilizzando. AWS CLI

Immetti il seguente comando per distribuire la soluzione utilizzando AWS CLI, dove il valore per EnableMacie è true solo se Amazon Macie non è già abilitato:

aws cloudformation create-stack \ --region us-east-1 \ --stack-name macie-for-securing-cloudwatch-logs \ --template-body file://app/main.yml \ --capabilities CAPABILITY_IAM \ --parameters \ ParameterKey=ResourceName,ParameterValue=<prefix for all resources> \ ParameterKey=BucketName,ParameterValue=<bucket name> \ ParameterKey=LogGroupName,ParameterValue=<path for log group> \ ParameterKey=SNSTopicEndpointEmail,ParameterValue=<email address> \ ParameterKey=EnableMacie,ParameterValue=<true or false>

Opzione 4: distribuzione tramite. Console di gestione AWS

  1. Apri la AWS CloudFormation console.

  2. Nella barra di navigazione nella parte superiore dello schermo, scegli in cui Regione AWS creare lo stack.

  3. Dalla pagina Stack, scegli Crea stack in alto a destra, poi scegli Con nuove risorse (standard).

  4. Nella pagina Crea stack, per Prerequisito - Prepara modello, scegli Scegli un modello esistente.

  5. In Specificare modello, scegli Carica un file modello, quindi carica il modello main.yaml dal tuo repository clonato.

  6. Scegli Next (Successivo).

  7. Nella pagina Specificare i dettagli dello stack, nella casella Nome dello stack, inserisci un nome per lo stack.

  8. Nella sezione Parametri, specificate i valori per i seguenti parametri del modello.

    • ResourceName: prefisso per tutte le risorse

    • BucketName: nome univoco per il bucket Amazon S3

    • LogGroupName: nome del gruppo di log per Logs CloudWatch

    • SNSTopicEndpointEmail: indirizzo e-mail per le notifiche

    • EnableMacie: Imposta true se Macie non è già abilitato

    • (Facoltativo)Region: il Regione AWS punto in cui desideri distribuire lo stack.

    • (Facoltativo)TemplatePath: percorso verso il modello CloudFormation

  9. Scegli Next (Successivo).

  10. Per Funzionalità, scegli Riconosco che questo modello può creare risorse IAM per specificare che desideri utilizzare le risorse IAM nel modello.

  11. Scegli Next (Successivo).

  12. Nella pagina Rivedi e crea, rivedi i dettagli dello stack.

  13. Scegli Invia per avviare lo stack.

Informazioni generali su AWS

Monitora lo stato della distribuzione e conferma la distribuzione.

  1. Immettete il seguente comando per monitorare lo stato della distribuzione:

    ./scripts/test-macie-solution.sh \ --deployment-status \ --stack-name <stack name>
    Nota

    Puoi anche monitorare l'avanzamento e lo stato della creazione dello stack nella scheda Eventi per il tuo nuovo stack. Per ulteriori informazioni, consulta Monitorare l'avanzamento dello stack.

  2. Quando lo stato cambia in CREATE_COMPLETE, esamina gli output dello stack per le informazioni sulle risorse.

Informazioni generali su AWS

Conferma l'abbonamento ad Amazon SNS.

Segui le istruzioni in Conferma l'abbonamento ad Amazon SNS nella documentazione di Amazon SNS per confermare l'abbonamento ad Amazon SNS.

Sviluppatore di app
OperazioneDescriptionCompetenze richieste

Opzione 1: test con report automatizzati.

Se hai utilizzato il nome dello stack predefinito, inserisci il seguente comando per testare la soluzione:

./scripts/test-macie-solution.sh \ --full-test

Se hai usato un nome di stack personalizzato, inserisci il seguente comando per testare la soluzione:

./scripts/test-macie-solution.sh \ --full-test \ --stack-name <stack name>

Se hai usato un nome di stack personalizzato e parametri personalizzati, inserisci il seguente comando per testare la soluzione:

./scripts/test-macie-solution.sh --full-test \ --stack-name <stack name> \ --region <region> \ --log-group <log group path>
Informazioni generali su AWS

Opzione 2: test con convalida mirata.

  1. Immettete il seguente comando per generare dati di test con informazioni sensibili:

    ./scripts/test-macie-solution.sh \ --generate-test-data \ --stack-name <stack name>

    Questo comando funziona nel modo seguente:

    • Crea CloudWatch voci di registro che contengono modelli di dati sensibili realistici, tra cui dipendenti, brevetti IDs IDs, numeri di carte di credito, numeri di previdenza sociale e indirizzi e-mail

    • Genera voci di registro sensibili e non sensibili per test completi

    • Fornisce una registrazione dettagliata del processo di generazione dei dati di test

  2. Immettete il seguente comando per verificare il flusso della pipeline di dati:

    ./scripts/test-macie-solution.sh \ --verify-pipeline \ --stack-name <stack name>

    Questo comando funziona nel modo seguente:

    • Conferma che le voci dei CloudWatch log vengono trasmesse in streaming ad Amazon Data Firehose

    • Verifica che i dati di log siano stati consegnati al bucket Amazon S3 con una crittografia adeguata

    • Verifica che lo storage di oggetti Amazon S3 abbia la struttura dei prefissi corretta

    • Verifica lo stato di crittografia degli oggetti archiviati

    • Monitora la tempistica del flusso di dati e fornisce periodi di attesa per l'elaborazione

  3. Immettete il seguente comando per avviare il processo di classificazione di Macie:

    ./scripts/test-macie-solution.sh \ --trigger-macie-job \ --stack-name <stack name>

    Questo comando funziona nel modo seguente:

    • Attiva manualmente il processo di classificazione Macie tramite una funzione Lambda

    • Monitora lo stato di esecuzione del lavoro e fornisce feedback

    • Convalida la disponibilità del servizio Macie prima dell'esecuzione

    • Gestisce i casi in cui Macie non è abilitato nell'account

    • Fornisce risultati dettagliati sull'esecuzione del lavoro

  4. Immettete il seguente comando per convalidare gli avvisi e l'isolamento dei dati:

    ./scripts/test-macie-solution.sh \ --verify-alerts \ --stack-name <stack name>

    Questo comando funziona nel modo seguente:

    • Conferma che EventBridge le regole sono configurate e attive correttamente

    • Convalida la configurazione dell'argomento Amazon SNS e lo stato dell'abbonamento

    • Verifica la configurazione e le autorizzazioni del bucket di isolamento dei dati

    • Monitora lo spostamento dei dati sensibili verso il bucket di isolamento

    • Verifica la funzionalità completa del flusso di lavoro di avviso

Informazioni generali su AWS
OperazioneDescriptionCompetenze richieste

Opzione 1: eseguire la pulizia automatica.

Se hai utilizzato il nome dello stack predefinito, inserisci il seguente comando per eliminare lo stack:

./scripts/cleanup-macie-solution.sh \ --full-cleanup

Se hai usato un nome di stack personalizzato, inserisci il seguente comando per eliminare lo stack:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name>

Se hai usato un nome di stack personalizzato e parametri personalizzati, inserisci il seguente comando per eliminare lo stack:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name> \ --region <region> \ --disable-macie <true or false>
Informazioni generali su AWS

Opzione 2: eseguire step-by-step la pulizia.

  1. Immettere il seguente comando per interrompere i processi attivi:

    ./scripts/cleanup-macie-solution.sh \ --stop-processes \ --stack-name <stack name>

    Questo comando funziona nel modo seguente:

    • Disattiva EventBridge le regole per impedire l'esecuzione di nuovi lavori

    • Interrompe tutti i processi di classificazione di Macie attualmente in esecuzione

    • Annulla le esecuzioni dei job di Macie in sospeso

    • Cancella tutti i messaggi Amazon SNS in sospeso nella coda

    • Fornisce aggiornamenti sullo stato per ogni processo interrotto

  2. Inserisci il seguente comando per svuotare i bucket Amazon S3:

    ./scripts/cleanup-macie-solution.sh \ --empty-buckets \ --stack-name <stack name>

    Questo comando funziona nel modo seguente:

    • Rimuove tutti gli oggetti dal bucket per i log CloudWatch

    • Rimuove tutti gli oggetti dal bucket di isolamento dei dati Amazon S3

    • Elimina tutti i caricamenti multiparte incompleti

    • Gestisce gli oggetti con versione se il controllo delle versioni di Amazon S3 è abilitato

    • Fornisce aggiornamenti sul conteggio degli oggetti e sull'avanzamento dell'eliminazione

  3. Immettete il seguente comando per eliminare lo CloudFormation stack:

    ./scripts/cleanup-macie-solution.sh \ --delete-stack \ --stack-name <stack name>

    Questo comando funziona nel modo seguente:

    • Avvia il processo di eliminazione dello CloudFormation stack

    • Monitora l'avanzamento dell'eliminazione con aggiornamenti di stato in tempo reale

    • Gestisce gli errori di eliminazione con una segnalazione dettagliata degli errori

    • Attende la rimozione completa dello stack prima di procedere

    • Fornisce la cronologia degli eventi dello stack per la risoluzione dei problemi

  4. Immettete il seguente comando per ripulire le risorse di Macie:

    ./scripts/cleanup-macie-solution.sh \ --cleanup-macie \ --stack-name <stack name>

    Questo stack esegue le seguenti operazioni:

    • Rimuove gli identificatori di dati personalizzati creati dalla soluzione

    • Pulisce tutti gli artefatti e i risultati del lavoro di Macie rimanenti

    • Disattiva la sessione Macie se è stata abilitata dallo stack

    • Gestisce i casi in cui le risorse Macie vengono condivise con altre applicazioni

    • Fornisce lo stato di pulizia dettagliato per ogni componente Macie

Informazioni generali su AWS

Verifica la pulizia.

  1. Immettete il seguente comando per verificare che lo stack sia stato eliminato:

    aws cloudformation describe-stacks \ --stack-name <stack name> \ --region <region>
  2. Inserisci il seguente comando per verificare che i bucket Amazon S3 siano stati eliminati:

    aws s3 ls | grep macie
  3. Inserisci il seguente comando per verificare che gli identificatori di dati personalizzati Macie siano stati rimossi:

    aws macie2 list-custom-data-identifiers \ --region <region>
  4. Inserisci il seguente comando per verificare la presenza di eventuali risorse rimanenti:

    ./scripts/cleanup-macie-solution.sh \ --verify-cleanup \ --stack-name <stack name>
Informazioni generali su AWS

risoluzione dei problemi

ProblemaSoluzione

CloudFormation lo stato dello stack mostra CREATE_FAILED.

Il CloudFormation modello è configurato per pubblicare i log in Logs. CloudWatch Puoi visualizzare i log in in Console di gestione AWS modo da non doverti connettere alla tua EC2 istanza Amazon. Per ulteriori informazioni, consulta Visualizzare CloudFormation i log nella console (post delAWS blog).

CloudFormation delete-stackil comando fallisce.

Alcune risorse devono essere vuote prima di poter essere eliminate. Ad esempio, devi eliminare tutti gli oggetti in un bucket Amazon S3 o rimuovere tutte le istanze in un gruppo di EC2 sicurezza Amazon prima di poter eliminare il bucket o il gruppo di sicurezza. Per ulteriori informazioni, consulta Delete stack fail nella documentazione di Amazon S3.

Errore durante l'analisi di un parametro.

Quando usi la console AWS CLI o la CloudFormation console per passare un valore, aggiungi le virgolette.

Risorse correlate