URL firmati, cookie firmati e restrizioni geografiche
Limiterete l'accesso ai contenuti premium usando URL e cookie firmati e bloccherete gli utenti di determinati Paesi con le restrizioni geografiche.
URL firmati, cookie firmati e restrizioni geografiche è una lezione AWS Solutions Architect gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AWS Solutions Architect, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AWS Solutions Architect include 4 lezioni in totale.
Limitare l'accesso ai contenuti CloudFront
Per impostazione predefinita, CloudFront fornisce i contenuti a qualsiasi visualizzatore che conosca l'URL. Per i contenuti premium o privati, come corsi video, download di software a pagamento e risorse riservate agli iscritti, è necessario limitare l'accesso affinché solo gli utenti autorizzati possano recuperarli.
CloudFront offre due meccanismi per l'accesso autorizzato: Signed URLs (un URL concede l'accesso a un singolo oggetto specifico) e Signed Cookies (un insieme di cookie concede l'accesso a più oggetti che corrispondono a un pattern di percorso). Entrambi utilizzano firme crittografiche generate con una coppia di chiavi RSA.
URL firmati di CloudFront
Un URL firmato è un URL di CloudFront che include una firma crittografica contenente una scadenza e, facoltativamente, una restrizione sull'indirizzo IP. L'URL è valido solo fino alla scadenza e solo dall'IP consentito, se specificato. Dopo la scadenza, CloudFront restituisce un errore 403 Forbidden.
Gli URL firmati sono ideali per: concedere a un singolo utente l'accesso a un file specifico, ad esempio un report PDF generato; creare link per il download con validità limitata; oppure quando il client non può impostare cookie, ad esempio nelle app mobili o nello streaming RTMP.
# Generate a signed URL using AWS CLI (requires a CloudFront key pair)
aws cloudfront sign \
--url https://d1234abcdef.cloudfront.net/premium/video.mp4 \
--key-pair-id APKA1234567890 \
--private-key file://private-key.pem \
--date-less-than 2026-06-21T00:00:00ZCookie firmati di CloudFront
I cookie firmati funzionano in modo simile agli URL firmati, ma concedono l'accesso a più file senza modificare ogni URL. Dopo un'autenticazione riuscita, il server genera tre cookie (CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id) e li imposta nella risposta del browser. Le richieste successive a CloudFront provenienti da quel browser includono i cookie, consentendo l'accesso a tutti i contenuti corrispondenti.
I cookie firmati sono ideali per: concedere agli utenti autenticati l'accesso a un'intera sezione premium, ad esempio a tutti i video in /members/*; oppure quando non è possibile controllare il formato dell'URL di ogni singola risorsa.
Gruppi di chiavi attendibili
Per generare le firme di CloudFront è necessaria una coppia di chiavi CloudFront. L'approccio moderno utilizza i gruppi di chiavi attendibili: create una coppia di chiavi RSA, caricate la chiave pubblica su CloudFront, aggiungetela a un gruppo di chiavi, quindi associate il gruppo di chiavi al comportamento di cache che richiede l'accesso firmato.
La chiave privata viene archiviata in modo sicuro, ad esempio in Secrets Manager, sul server che genera le firme. Quando un utente si autentica, il server utilizza la chiave privata per firmare una policy URL o una policy cookie. CloudFront convalida le firme utilizzando la chiave pubblica corrispondente nel gruppo di chiavi attendibili.
# Upload a public key to CloudFront
aws cloudfront create-public-key \
--public-key-config '{
"Name": "MySigningKey",
"EncodedKey": "-----BEGIN PUBLIC KEY-----\n...<key>...\n-----END PUBLIC KEY-----",
"CallerReference": "2026-06-20-key"
}'Policy URL firmate predefinite e personalizzate
Gli URL firmati possono utilizzare uno dei due tipi di policy:
- Policy predefinita: la forma più semplice; specifica solo un URL della risorsa e una scadenza. La firma è compatta e facile da generare.
- Policy personalizzata: più flessibile; specifica l'URL della risorsa con caratteri jolly facoltativi (
https://d123.cloudfront.net/videos/*), un'ora di inizio facoltativa (not-before) e, facoltativamente, una restrizione sull'indirizzo IP. Il JSON della policy viene codificato in Base64 nell'URL.
Utilizzate le policy predefinite per semplici link a singoli file; utilizzate le policy personalizzate quando servono la corrispondenza con risorse tramite caratteri jolly o restrizioni basate sull'IP.
Restrizione geografica di CloudFront
La restrizione geografica, chiamata anche restrizione geografica, impedisce a CloudFront di distribuire i contenuti o ne consente la distribuzione in base al Paese dello spettatore. CloudFront determina il Paese dello spettatore dal suo indirizzo IP utilizzando un database di geolocalizzazione di terze parti.
La restrizione geografica viene configurata per distribuzione come allowlist, in cui solo i Paesi elencati possono accedere ai contenuti, oppure come blocklist, in cui i Paesi elencati vengono bloccati. Gli utenti nei Paesi soggetti a restrizioni ricevono una risposta HTTP 403. La restrizione geografica è uno strumento generale: si applica all'intera distribuzione, non ai singoli percorsi.
# Enable geo-restriction: block two countries
aws cloudfront update-distribution \
--id EDFDVBD6EXAMPLE \
--distribution-config '{
...existing config...
"Restrictions": {
"GeoRestriction": {
"RestrictionType": "blacklist",
"Quantity": 2,
"Items": ["CN", "RU"]
}
}
}' \
--if-match ETVPDKIKX0DERRestrizione geografica e geolocalizzazione di Route 53
La restrizione geografica di CloudFront e il routing basato sulla geolocalizzazione di Route 53 utilizzano entrambi la posizione geografica, ma hanno scopi diversi:
- Restrizione geografica di CloudFront: blocca o consente la distribuzione dai nodi edge dei contenuti a livello CDN; restituisce 403 ai Paesi bloccati e si applica per distribuzione
- Geolocalizzazione di Route 53: indirizza le query DNS verso endpoint diversi, cioè server o pagine differenti, in base alla posizione geografica; non blocca l'accesso, ma reindirizza verso contenuti o infrastrutture diversi
Utilizzate la restrizione geografica di CloudFront per il controllo degli accessi, ad esempio per bloccare interi Paesi. Utilizzate la geolocalizzazione di Route 53 per indirizzare gli utenti verso contenuti o infrastrutture appropriati per la loro area geografica.
Combinare URL firmati con S3 e OAC
Un'architettura completa per la distribuzione di contenuti privati:
- Il bucket S3 è privato, senza accesso pubblico
- CloudFront utilizza OAC, quindi solo la distribuzione può leggere da S3
- Il comportamento di cache per i contenuti privati richiede URL o cookie firmati, con un gruppo di chiavi attendibili associato
- Il server applicativo autentica gli utenti e rilascia URL o cookie firmati
- Gli utenti accedono ai contenuti solo tramite URL CloudFront firmati e validi per un periodo limitato
Anche se un utente indovina o condivide l'URL S3, l'accesso viene bloccato. Anche se condivide l'URL CloudFront, questo scade dopo il periodo configurato. Questo approccio a più livelli offre una difesa in profondità per i contenuti digitali.
Crittografia a livello di campo
La crittografia a livello di campo è una funzionalità avanzata di CloudFront che consente di crittografare i campi di dati sensibili nelle richieste HTTP POST al nodo edge, prima di inoltrarle all'origine. Anche se il server di origine viene compromesso, i campi crittografati, ad esempio i numeri delle carte di credito e gli SSN, rimangono illeggibili senza la chiave privata corrispondente.
CloudFront crittografa i campi specificati utilizzando una chiave pubblica sul nodo edge. Solo il servizio backend previsto, che dispone della chiave privata corrispondente, può decrittografare i dati. La crittografia a livello di campo aggiunge un ulteriore livello di protezione all'interno di una pipeline già protetta da TLS.
Controllo degli accessi basato su token
Per le applicazioni dinamiche che richiedono un controllo degli accessi granulare, oltre al blocco a livello di Paese, un modello comune è l'accesso basato su token tramite Lambda@Edge:
- L'utente si autentica con Cognito o con il servizio di autenticazione e riceve un JWT
- L'utente include il JWT come parametro di query o cookie nelle richieste a CloudFront
- La funzione Viewer-Request di Lambda@Edge convalida la firma e le attestazioni del JWT
- Se il token è valido, Lambda@Edge inoltra la richiesta all'origine; se non è valido, restituisce 401
In questo modo si ottiene un controllo degli accessi granulare per utente e per risorsa interamente sul nodo edge di CloudFront, senza raggiungere l'origine per le richieste non autorizzate.
Riepilogo dei casi d'uso reali
Scenari tipici d'esame per URL/cookie firmati e restrizioni geografiche:
- 'Link per il download a validità limitata di un file acquistato' → URL firmato con scadenza
- 'Gli utenti premium autenticati accedono a tutti i video in /premium/*' → Cookie firmati con policy basata su caratteri jolly
- 'Bloccare l'accesso agli utenti di determinati Paesi per motivi di licenza' → blocklist di restrizione geografica di CloudFront
- 'Distribuire contenuti diversi a Paesi diversi' → geolocalizzazione di Route 53 + più distribuzioni o origini
- 'Proteggere i campi delle carte di credito anche dagli amministratori dell'origine' → crittografia a livello di campo
Verifica rapida
Verificate la vostra comprensione dei concetti AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione avete imparato che gli URL firmati limitano l'accesso a singoli file con una scadenza e un'eventuale restrizione sull'IP, i cookie firmati consentono l'accesso a più file corrispondenti a un modello di percorso durante un'unica sessione autenticata e la restrizione geografica blocca o autorizza interi Paesi a livello di distribuzione CloudFront. Nella prossima lezione esploreremo CloudFront con WAF e Lambda@Edge.
Domande Frequenti
La lezione «URL firmati, cookie firmati e restrizioni geografiche» è gratuita?
Sì — il testo completo di «URL firmati, cookie firmati e restrizioni geografiche» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AWS Solutions Architect, passa a CoddyKit PRO. Il corso AWS Solutions Architect include 4 lezioni in totale.
Cosa imparerò in «URL firmati, cookie firmati e restrizioni geografiche»?
Limiterete l'accesso ai contenuti premium usando URL e cookie firmati e bloccherete gli utenti di determinati Paesi con le restrizioni geografiche. Eserciti AWS Solutions Architect con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AWS Solutions Architect?
Non è richiesta alcuna esperienza precedente. AWS Solutions Architect su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «URL firmati, cookie firmati e restrizioni geografiche»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AWS Solutions Architect?
Sì. Ogni lezione AWS Solutions Architect include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Distribuzioni e origini CloudFront
- Comportamenti della cache e impostazioni TTL
- URL firmati, cookie firmati e restrizioni geografiche
- CloudFront con WAF e Lambda@Edge