Vai al contenuto principale

CloudFront

Intro

CloudFront, sviluppata da Amazon Web Services (AWS), è una rete di distribuzione dei contenuti (CDN) all'avanguardia che svolge un ruolo fondamentale nel plasmare l'esperienza web moderna. Questa servizio distribuito ottimizza l'invio dei contenuti statici e dinamici agli utenti, memorizzando e fornendo dati da edge locations geograficamente sparse. Sfruttando caching avanzato, routing delle richieste e presenza globale, CloudFront garantisce una consegna dei contenuti ultra-veloce, riducendo la latenza e migliorando le prestazioni del sito web. Le sue funzionalità di sicurezza comprendono la crittografia SSL/TLS, proteggendo i contenuti in transito, mentre l'infrastruttura scalabile consente di scalare senza problemi per accogliere picchi di traffico massicci.

Prerequisiti

Per prima cosa, è necessario ottenere accesso alla Cubbit Web Console oppure https://console.[your-tenant].cubbit.eu. Si possono seguire queste istruzioni su come iniziare con un account Cubbit.

Installazione

È quindi necessario registrarsi, accedere alla console di AWS e accedere al pannello di controllo di CloudFront.

CloudFront dashboard

Cubbit permessi public read

Per accedere a un oggetto pubblicamente all'interno di un bucket S3, è necessario concedere i permessi di lettura pubblica all'oggetto. Gli screenshot seguenti illustrano come assegnare questo permesso all'oggetto individuale dalla console di Cubbit. Seleziona "Object details" facendo clic sui tre punti sul lato destro dell'oggetto come mostrato di seguito

Object details

Poi, nel campo ACL, seleziona "All Users" e "Read" e seleziona "Share with ACL"

Read permission

Clicca su save per applicare le impostazioni. Vedrai l'aggiunta della voce di autorizzazione all'ACL attivo.

Salva impostazioni

suggerimento

Se preferisci, puoi anche concedere permessi di lettura pubblica su un oggetto utilizzando l'AWS CLI, puoi usare il comando AWS s3 con il sottocomando put-object-acl. Ecco la sintassi di base:

aws s3api put-object-acl --bucket <bucket-name> --key <object-key> --acl public-read

bucket-name è il nome del bucket S3 che contiene l'oggetto.

object-key è la chiave (o nome) dell'oggetto a cui si desidera concedere l'accesso di lettura pubblica.

In alternativa, puoi utilizzare l'opzione --acl public-read con il comando cp per caricare simultaneamente un oggetto e impostare le sue autorizzazioni come public read.

aws s3 cp index.html s3://aws-test-tx --endpoint-url=https://s3.cubbit.eu --acl public-read

Questo comando aggiornerà l'Access Control List (ACL) dell'oggetto specificato per consentire l'accesso pubblico in lettura. Possiamo ora accedere al nostro oggetto pubblicamente sul web.

Oggetto pubblico

AWS CloudFront

Per avviare il processo di setup di CloudFront, naviga nel pannello di controllo di CloudFront all'interno della console di gestione di AWS. Da lì, clicca su "Create distribution" e procedi con la configurazione come segue:

important

Non dimenticare di cambiare il bucket utilizzato nelle schermate con quello che utilizzerai effettivamente.

Primo screen

Secondo screen

Terzo screen

Congratulazioni! Puoi adesso accedere agli oggetti con permessi di lettura pubblici attraverso la nuova distribuzione CloudFront.

suggerimento

Ricorda di:

Scegli l'origine giusta: assicurati di scegliere l'origine giusta per la tua distribuzione CDN in base alla tua posizione geografica e alle esigenze degli utenti.

Ottimizza il comportamento della cache: configura i comportamenti della cache per controllare come CloudFront memorizza nella cache il tuo contenuto. Puoi impostare regole di caching diverse in base ai pattern di percorso, il che ti consente di ottimizzare le prestazioni per gli asset statici (come immagini e script) mentre gestisci il contenuto dinamico in modo diverso.

Abilita la registrazione e il monitoraggio: abilita i log di accesso di CloudFront per tracciare le richieste e monitorare i modelli di utilizzo. Questi dati possono aiutarti a comprendere le tendenze del traffico, identificare problemi di prestazioni e prendere decisioni informate sull'ottimizzazione delle impostazioni di distribuzione. Inoltre, considera l'utilizzo di AWS CloudWatch per il monitoraggio in tempo reale delle prestazioni della tua distribuzione.

Migliorare la sicurezza della distribuzione CloudFront

La sicurezza deve essere garantita a due livelli differenti:

  1. Accesso ai contenuti statici da Cubbit: sarà concesso solo a un elenco/sotto-elenco di indirizzi IP pubblici di CloudFront. Qui è dove sono elencati gli IP CDN: IP-ranges. Questo sarà realizzato configurando la policy di accesso del tenant nella sezione nginx del Gateway di Cubbit. Questo evita di esporre direttamente i contenuti originali a qualsiasi utente.

  2. Accesso ai contenuti ridistribuiti da CloudFront: sarà regolato sfruttando altri servizi AWS, come le funzioni Lambda (vedi esempio qui sotto), seguendo gli standard e le buone pratiche di AWS.

Esempio:

Per connettere una funzione Lambda che regola l'accesso a una risorsa distribuita da CloudFront, segui questo articolo. Crea una funzione Lambda@Edge e associala alla distribuzione CloudFront durante l'evento di richiesta dell'utente; la funzione verrà attivata ogni volta che un utente tenta di accedere a una risorsa statica (come un'immagine o un video). La funzione Lambda@Edge eseguirà la validazione del token prima di servire la risorsa.

Lambda origin

Per ottenere ulteriori informazioni riguardo AWS CloudFront, raccomandiamo di consultare la documentazione ufficiale.