Controlla una CloudFront distribuzione Amazon per la registrazione degli accessi e HTTPS la versione TLS - 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à.

Controlla una CloudFront distribuzione Amazon per la registrazione degli accessi e HTTPS la versione TLS

Creato da SaiJeevan Devireddy () e Bijesh Bal () AWS AWS

Ambiente: produzione

Tecnologie: distribuzione dei contenuti; sicurezza, identità, conformità

Carico di lavoro: tutti gli altri carichi di lavoro

AWSservizi: AmazonSNS; Amazon AWS CloudFormation CloudWatch; AWS Lambda

Riepilogo

Questo modello verifica una CloudFront distribuzione Amazon per assicurarsi che utilizziHTTPS, utilizzi Transport Layer Security (TLS) versione 1.2 o successiva e che abbia abilitato la registrazione degli accessi. CloudFront è un servizio fornito da Amazon Web Services (AWS) che accelera la distribuzione di contenuti Web statici e dinamici, come .html, .css, .js e file di immagine, agli utenti. CloudFront fornisce i tuoi contenuti attraverso una rete mondiale di data center denominati edge location. Quando un utente richiede i contenuti che utilizzi CloudFront, la richiesta viene indirizzata all'edge location che offre la latenza (ritardo) più bassa, in modo che i contenuti vengano forniti con le migliori prestazioni possibili.

Questo modello fornisce una funzione AWS Lambda che viene avviata quando Amazon CloudWatch Events rileva la CloudFront API chiamata CreateDistribution, o. CreateDistributionWithTagsUpdateDistribution La logica personalizzata della funzione Lambda valuta tutte le CloudFront distribuzioni create o aggiornate nell'account. AWS Invia una notifica di violazione utilizzando Amazon Simple Notification Service (AmazonSNS) se rileva le seguenti violazioni:

  • Controlli globali:

    • Il certificato personalizzato non utilizza TLS la versione 1.2

    • La registrazione è disabilitata per la distribuzione

  • Controlli di origine:

    • Origin non è configurato con TLS la versione 1.2

    • La comunicazione con l'origine è consentita su un protocollo diverso da HTTPS

  • Controlli comportamentali:

    • La comunicazione comportamentale predefinita è consentita su un protocollo diverso da HTTPS

    • La comunicazione basata su comportamenti personalizzati è consentita su un protocollo diverso da HTTPS

Prerequisiti e limitazioni

Prerequisiti

  • Un AWS account attivo

  • Un indirizzo email a cui desideri ricevere le notifiche di violazione

Limitazioni

  • Questo controllo di sicurezza non verifica le distribuzioni Cloudfront esistenti a meno che non sia stato apportato un aggiornamento alla distribuzione.

  • CloudFront è considerato un servizio globale e non è legato a una regione specifica. AWS Tuttavia, la API registrazione di Amazon CloudWatch Logs e AWS Cloudtrail per i servizi globali avviene nella regione Stati Uniti orientali (Virginia settentrionale) (). us-east-1 Pertanto, questo modulo di controllo di sicurezza CloudFront deve essere implementato e mantenuto in. us-east-1 Questa singola implementazione monitora tutte le distribuzioni per. CloudFront Non utilizzare il controllo di sicurezza in altre regioni. AWS (La distribuzione in altre regioni comporterà l'impossibilità di avviare CloudWatch gli eventi e la funzione Lambda e l'SNSassenza di notifiche).

  • Questa soluzione è stata sottoposta a test approfonditi con le distribuzioni di contenuti CloudFront Web. Non copre le distribuzioni di streaming del protocollo di messaggistica in tempo reale (RTMP).

Architettura

Stack tecnologico Target

  • Funzione Lambda

  • SNSargomento

  • EventBridge Regola Amazon

Architettura Target

Automazione e scalabilità

  • Se utilizzi AWS Organizations, puoi utilizzare AWSCloudformation StackSets per distribuire il modello allegato su più account che desideri monitorare.

Strumenti

AWSservizi

  • AWS CloudFormation— CloudFormation è un servizio che consente di modellare e configurare AWS le risorse utilizzando l'infrastruttura come codice.

  • Amazon EventBridge: EventBridge fornisce un flusso di dati in tempo reale dalle tue applicazioni, applicazioni SaaS (SaaS) e AWS servizi, indirizzando tali dati verso destinazioni come le funzioni Lambda.

  • AWSLambda: Lambda supporta l'esecuzione di codice senza fornire o gestire server.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) è un servizio di storage di oggetti altamente scalabile che può essere utilizzato per un'ampia gamma di soluzioni di storage, tra cui siti Web, applicazioni mobili, backup e data lake.

  • Amazon SNS: Amazon SNS coordina e gestisce la consegna o l'invio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail. I sottoscrittori ricevono tutti gli stessi messaggi pubblicati sugli argomenti ai quali sono hanno effettuato la sottoscrizione.

Codice

Il codice allegato include:

  • Un file.zip che contiene il codice Lambda (index.py)

  • Un CloudFormation modello (file.yml) da eseguire per distribuire il codice Lambda

Epiche

AttivitàDescrizioneCompetenze richieste
Crea il bucket S3 per il codice Lambda.

Sulla console Amazon S3, crea un bucket S3 con un nome univoco che non contenga barre iniziali. Il nome di un bucket S3 è unico a livello globale e lo spazio dei nomi è condiviso da tutti gli account. AWS Il bucket S3 deve trovarsi nella regione in cui intendi distribuire il codice Lambda.

Architetto del cloud
Carica il codice Lambda nel bucket S3.

Carica il codice Lambda (file cloudfront_ssl_log_lambda.zip) fornito nella sezione Allegati nel bucket S3 che hai creato nel passaggio precedente.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste
Implementa il CloudFormation modello.

Sulla AWS CloudFormation console, nella stessa AWS regione del bucket S3, distribuisci il CloudFormation modello (cloudfront-ssl-logging.yml) fornito nella sezione Allegati. 

Architetto del cloud
Specificate il nome del bucket S3.

Per il parametro S3 Bucket, specifica il nome del bucket S3 che hai creato nella prima epic.

Architetto del cloud
Specificare il nome della chiave Amazon S3 per il file Lambda.

Per il parametro S3 Key, specifica la posizione Amazon S3 del file.zip del codice Lambda nel tuo bucket S3. Non includere barre iniziali (ad esempio, puoi inserire lambda.zip o controls/lambda.zip).

Architetto del cloud
Fornisci un indirizzo email di notifica.

Per il parametro e-mail di notifica, fornisci un indirizzo e-mail a cui desideri ricevere le notifiche di violazione.

Architetto del cloud
Definisci il livello di registrazione.

Per il parametro Lambda Logging level, definisci il livello di registrazione per la tua funzione Lambda. Seleziona uno dei seguenti valori: 

  • INFOper ricevere messaggi informativi dettagliati sullo stato di avanzamento dell'applicazione.

  • ERRORper ottenere informazioni sugli eventi di errore che potrebbero comunque consentire all'applicazione di continuare a funzionare.

  • WARNINGper ottenere informazioni su situazioni potenzialmente dannose.

Architetto del cloud
AttivitàDescrizioneCompetenze richieste
Confermare la sottoscrizione.

Quando il CloudFormation modello è stato distribuito correttamente, viene creato un nuovo SNS argomento e viene inviato un messaggio di iscrizione all'indirizzo e-mail fornito. È necessario confermare questa iscrizione via e-mail per ricevere le notifiche di violazione.

Architetto del cloud

Allegati

Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip