Inizia a usare i servizi AWS Edge

Tutorial pratici e contenuti che coprono i concetti di base.

Servizi AWS Edge

Una Regione AWS è un luogo fisico in cui AWS raggruppa i cluster di data center e gestisce servizi regionali, come EC2 e S3. Nel caso specifico delle applicazioni online, il traffico degli utenti può attraversare più reti pubbliche per raggiungere un'infrastruttura regionale. Se desideri risolvere gli svantaggi dell'attraversamento di reti non controllate in termini di prestazioni, affidabilità e sicurezza, è necessario considerare l'aggiunta dei servizi edge di AWS alla tua architettura. I Servizi AWS Edge, come Amazon CloudFront e AWS Global Accelerator, operano su centinaia di Point of Presence (PoP) distribuiti in tutto il mondo al di fuori delle Regioni AWS. Gli utenti vengono serviti da questi PoP in media entro 20-30 millisecondi e, quando serve, il loro traffico viene trasferito all'infrastruttura regionale tramite la rete globale AWS anziché passare attraverso la rete Internet pubblica. L'infrastruttura globale di AWS è un'infrastruttura privata appositamente costruita, ad alta disponibilità e a bassa latenza, costruita su una rete in fibra metropolitana globale, completamente ridondante, collegata tramite cavi terrestri e transoceanici in tutto il mondo.

Distribuisci contenuti in modo sicuro a bassa latenza e alta velocità di trasferimento.

Proteggi le tue applicazioni Web dalle minacce più comuni.

Massimizza la disponibilità e la reattività delle applicazioni con la protezione DDoS.

Configura e gestisci centralmente le regole di firewall sugli account.

Migliora la disponibilità, le prestazioni e la sicurezza delle applicazioni attraverso la rete globale di AWS.

Amazon CloudFront, il CDN di AWS

CloudFront è la rete di distribuzione di contenuti (CDN) di Amazon. CloudFront viene utilizzato per accelerare le applicazioni web basate su HTTP(S) e migliorarne disponibilità e sicurezza. CloudFront può essere utilizzato in casi d'uso come la distribuzione completa di siti web, la protezione e l'accelerazione delle API, lo streaming video adattivo e il download di software. Per utilizzare questo servizio devi creare una distribuzione CloudFront, configurare la tua origine (qualsiasi origine che abbia un nome di dominio accessibile al pubblico), emettere e allegare un certificato TLS valido utilizzando Amazon Certificate Manager, quindi configurare il tuo server DNS autorevole in modo che punti il nome di dominio della tua applicazione web al nome di dominio generato dalla distribuzione (xyz.cloudfront.net). Durante la fase di risoluzione DNS, quando gli utenti accedono alla tua applicazione web, viene indirizzata una richiesta dinamica HTTP(S) al miglior PoP di CloudFront in termini di latenza e disponibilità. Una volta selezionato il PoP, l'utente termina la connessione TCP, incluso l'handshake TLS, su uno dei server del PoP e quindi invia la richiesta HTTP. Se il contenuto è memorizzato nella cache in uno dei livelli di cache di CloudFront, la richiesta sarà soddisfatta localmente da CloudFront. In caso contrario, la richiesta viene inoltrata all'origine. L’infrastruttura di CloudFront è composta da due livelli. Il primo livello è basato sulle posizioni edge, in cui le connessioni degli utenti vengono interrotte e gli attacchi DDoS di livello 3/4 sono mitigati. Questo livello fornisce funzionalità di memorizzazione nella cache e, se configurate, eseguono le funzioni CloudFront e applicano le regole WAF. Il secondo livello è basato sulle cache edge regionali, ospitate nelle Regioni AWS. Questo livello fornisce tempi di conservazione della cache più lunghi, migliora la percentuale di riscontri della cache ed esegue le funzioni Lambda@Edge quando configurato. CloudFront ottimizza dinamicamente l'uso di questi livelli per ogni HTTP in base alla sua natura. Ad esempio, le richieste HTTP contrassegnate come dinamiche (ad esempio memorizzazione nella cache disabilitata, richieste POST/PUT/DELETE, richieste di oggetti contrassegnati come non memorizzabili nella cache utilizzando l'intestazione di risposta Cache-Control, ecc.) saltano i livelli di memorizzazione nella cache e, di conseguenza, vengono inviate dalle posizioni edge direttamente all'origine.
Infine, CloudFront esegue la logica in un ordine specifico. CloudFront esegue prima i suoi controlli di sicurezza nativi (ad esempio policy TLS, reindirizzamento da HTTP a HTTPS, blocco geografico, URL firmati), poi esegue le regole di una WebACL di AWS WAF se configurata, quindi esegue il codice di una funzione edge se configurata sull'evento di richiesta del visualizzatore, in seguito controlla se la richiesta è memorizzabile nella cache, esegue il codice di Lambda@Edge se configurato sull'evento di richiesta di origine e, infine, se necessario, inoltra la richiesta all'origine. Per saperne di più sul ciclo di vita di una richiesta HTTP all'interno dei livelli di CloudFront, guarda il seguente intervento su re:Invent. Tieni presente che la funzionalità Funzioni CloudFront non era ancora stata lanciata quando l’intervento è stato registrato.

AWS WAF per proteggere le applicazioni web a livello 7

AWS WAF è un Web Application Firewall che può essere utilizzato per proteggere le applicazioni web dalle minacce a livello di applicazione. Le minacce a livello di applicazione includono:

  • Attacchi DDoS (ad esempio flood HTTP) che mirano a consumare le risorse dell'applicazione per renderla indisponibile agli utenti legittimi. 
  • Attacchi che tentano di sfruttare le vulnerabilità a livello di applicazione e quindi di condurre attività dannose, come il furto di dati o l'utilizzo delle risorse in modo non autorizzato, come il mining di bitcoin. 
  • Attacchi condotti da bot automatici che possono danneggiare la tua azienda in diversi modi, ad esempio l'acquisizione di account e lo scraping dei contenuti. 

Per utilizzare AWS WAF, è necessario creare regole in una WebACL e collegarla alle risorse che necessitano di protezione. Le WebACL globali possono essere collegate alle distribuzioni CloudFront, mentre le WebACL regionali possono essere collegate a risorse all'interno della stessa regione, come ALB e gateway API. Quando una WebACL WAF è collegata a una risorsa, il servizio sottostante della risorsa (ad esempio CloudFront o ALB) invia una copia della richiesta HTTP al servizio AWS WAF per valutare le regole configurate entro un millisecondo. In base alla valutazione delle regole, il servizio AWS WAF indica al servizio sottostante come elaborare la richiesta (ad esempio blocca, inoltra, sfida, ecc.). Tieni presente che la logica di AWS WAF si basa esclusivamente sugli attributi di richiesta HTTP (invece che agli attributi di risposta).

Una WebACL di WAF appena creata contiene solo una regola predefinita che consente tutte le richieste, a cui è possibile aggiungerne altre di diverso tipo. Per prima cosa, puoi creare regole personalizzate basate sugli attributi (ad esempio IP, intestazioni, cookie, URL, ecc.) della richiesta HTTP ispezionata. Le regole possono anche essere raggruppate in gruppi di regole per facilitarne la gestione. In secondo luogo, puoi aggiungere le Regole gestite di AWS o di fornitori sul Marketplace AWS, che vengono aggiunte come gruppi di regole configurabili alla tua WebACL. Ad esempio, puoi aggiungere Gruppi Gestiti AWS come Regola Core Impostata e Lista IP Anonimi. Le regole gestite più avanzate, come Rilevamento dei botl e Prevenzione Acquisizione Account, richiedono l'integrazione dell'SDK lato client. Le regole possono essere configurate con le seguenti azioni in fase di abbinamento: Allow and Count (con la possibilità di inviare le intestazioni a monte), Block (con la possibilità di rispondere con una risposta personalizzata), Rate Limit e infine Challenge, tramite CAPTCHA o sfide silenziose. Le regole, come le Regole Gestite AWS, emettono etichette che potrebbero essere utilizzate nella logica delle regole successive se raggiunte dalla valutazione WAF. Puoi configurare le tue regole per emettere etichette, che saranno disponibili nei record di log di WAF.

AWS Global Accelerator, un'accelerazione a livello di rete

AWS Global Accelerator è un servizio di rete che migliora le prestazioni, l'affidabilità e la sicurezza delle tue applicazioni online utilizzando l’Infrastruttura globale AWS. Dato che AWS Global Accelerator opera al livello 4 del modello OSI, può essere utilizzato con qualsiasi applicazione TCP/UDP. I casi d'uso di esempio includono: giochi multiplayer basati su UDP/TCP, Voice and Video over IP (VoIP), IoT, acquisizione di video e caricamenti FTP e altri casi d'uso come VPN, Git e offerte AdTech. 

AWS Global Accelerator può essere distribuito davanti ai tuoi Network Load Balancer, Application Load Balancer, istanze AWS EC2 e IP elastici, ognuno dei quali potrebbe fungere da endpoint regionale per la tua applicazione. Per utilizzare questo servizio, crea un acceleratore che fornisca due indirizzi IPv4 anycast statici globali che fungano da punto di ingresso fisso all'applicazione. Con Global Accelerator puoi avere più endpoint applicativi presenti in una o più Regioni AWS, ma è possibile accedervi a tutti tramite lo stesso indirizzo IP anycast. In seguito, configura il tuo server DNS autorevole per indirizzare il nome di dominio della tua applicazione web agli IP statici dedicati dell'acceleratore. Questi IP anycast vengono annunciati in tutti i PoP di Global Accelerator per instradare il traffico degli utenti al PoP più vicino, per poi inoltrarlo all'endpoint regionale tramite la rete globale AWS.

Risorse di apprendimento per gli sviluppatori

  • Priorità
1

Questa pagina ti è stata utile?