Limitazione della distribuzione geografica del contenuto - Amazon CloudFront

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

Limitazione della distribuzione geografica del contenuto

Puoi utilizzare le restrizioni geografiche, a volte note come blocchi geografici, per impedire agli utenti di aree geografiche specifiche di accedere ai contenuti che distribuisci tramite una distribuzione Amazon CloudFront . Per utilizzare le restrizioni geografiche, sono disponibili due opzioni:

  • Utilizza la funzione di restrizioni CloudFront geografiche. Utilizzare questa opzione per limitare l'accesso a tutti i file associati a una distribuzione e per limitare l'accesso a livello di Paese.

  • Utilizzare un servizio di geolocalizzazione di terze parti. Utilizza questa opzione per limitare l'accesso a un sottoinsieme dei file associati a una distribuzione o per limitare l'accesso a un livello più dettagliato che a livello di paese.

Utilizzo delle restrizioni CloudFront geografiche

Quando un utente richiede i tuoi contenuti, CloudFront in genere fornisce il contenuto richiesto indipendentemente da dove si trova l'utente. Se devi impedire agli utenti di determinati paesi di accedere ai tuoi contenuti, puoi utilizzare la funzionalità di restrizioni CloudFront geografiche per eseguire una delle seguenti operazioni:

  • Accordare agli utenti il permesso di accedere al contenuto solo se si trovano in uno dei Paesi inclusi in una lista di Paesi consentiti.

  • Impedire agli utenti di accedere al contenuto se si trovano in uno dei Paesi inclusi in un elenco di Paesi rifiutati.

Ad esempio, se una richiesta proviene da un paese in cui non sei autorizzato a distribuire i tuoi contenuti, puoi utilizzare le restrizioni CloudFront geografiche per bloccare la richiesta.

Nota

CloudFront determina la posizione degli utenti utilizzando un database di terze parti. La precisione della mappatura tra indirizzi IP e paesi varia in base alla regione. Sulla base di test recenti, la precisione globale è del 99,8%. Se non è in CloudFront grado di determinare la posizione di un utente, CloudFront fornisce il contenuto richiesto dall'utente.

Di seguito viene descritto il funzionamento delle restrizioni geografiche:

  1. Supponiamo che hai i diritti per distribuire il tuo contenuto solo in Liechtenstein. Aggiorna la tua CloudFront distribuzione per aggiungere una lista consentita che contiene solo il Liechtenstein. In alternativa, puoi aggiungere un elenco di Paesi rifiutati che contiene ogni Paese eccetto il Liechtenstein.

  2. Un utente di Monaco richiede i tuoi contenuti e il DNS indirizza la richiesta a una CloudFront edge location a Milano, Italia.

  3. La posizione edge a Milano cerca la distribuzione e determina che l'utente a Monaco non ha l'autorizzazione per scaricare il contenuto.

  4. CloudFront restituisce un codice di stato HTTP 403 (Forbidden) all'utente.

Facoltativamente, è possibile CloudFront configurare la restituzione di un messaggio di errore personalizzato all'utente e specificare per quanto tempo si desidera CloudFront memorizzare nella cache la risposta all'errore per il file richiesto. Il valore predefinito è 10 secondi. Per ulteriori informazioni, consulta Creazione di una pagina personalizzata di errore per codici di stato HTTP specifici.

Le restrizioni geografiche sono applicabili a un'intera distribuzione. Se devi applicare una restrizione a una parte dei tuoi contenuti e una restrizione diversa (o nessuna restrizione) a un'altra parte dei tuoi contenuti, devi creare CloudFront distribuzioni separate o utilizzare un servizio di geolocalizzazione di terze parti.

Se abiliti i log CloudFront standard (log di accesso), puoi identificare le richieste CloudFront rifiutate cercando le voci di registro in cui è riportato il valore di (il codice di sc-status stato HTTP). 403 Tuttavia, utilizzando solo i log standard, non è possibile distinguere una richiesta CloudFront rifiutata in base alla posizione dell'utente da una richiesta CloudFront rifiutata perché l'utente non aveva l'autorizzazione ad accedere al file per un altro motivo. Se disponi di un servizio di geolocalizzazione di terze parti come Digital Element or MaxMind, puoi identificare la posizione delle richieste in base all'indirizzo IP nella colonna c-ip (IP client) nei log di accesso. Per ulteriori informazioni sui log CloudFront standard, vedere. Configurazione e utilizzo di registri standard (registri di accesso)

La procedura seguente spiega come utilizzare la CloudFront console per aggiungere restrizioni geografiche a una distribuzione esistente. Per informazioni su come utilizzare la console per creare una distribuzione, consulta Creazione di una distribuzione.

Per aggiungere restrizioni geografiche alla tua distribuzione CloudFront web (console)
  1. Accedi a AWS Management Console e apri la CloudFront console all'indirizzohttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Nel pannello di navigazione, scegli Distribuzioni, quindi scegli la distribuzione che desideri aggiornare.

  3. Scegli la scheda Sicurezza, quindi scegli Restrizioni geografiche.

  4. Scegli Modifica.

  5. Seleziona Allow list (Elenco consentiti) per creare un elenco di Paesi consentiti, oppure Block list (Elenco di blocchi) per creare un elenco di Paesi bloccati.

  6. Aggiungi i Paesi desiderati all'elenco, quindi scegli Save changes (Salva modifiche).

Utilizzo di un servizio di geolocalizzazione di terza parte

Con la funzione di restrizioni CloudFront geografiche, puoi controllare la distribuzione dei tuoi contenuti a livello nazionale per tutti i file che distribuisci con una determinata distribuzione web. Se hai un caso d'uso per le restrizioni geografiche in cui le restrizioni non seguono i confini nazionali o se desideri limitare l'accesso solo ad alcuni dei file che servi tramite una determinata distribuzione, puoi utilizzare un servizio di geolocalizzazione di terze parti. CloudFront Puoi così avere il controllo del contenuto in base non solo al Paese ma anche alla città, al CAP o persino alla latitudine e longitudine.

Quando utilizzi un servizio di geolocalizzazione di terze parti, ti consigliamo di utilizzare URL CloudFront firmati, con i quali puoi specificare una data e un'ora di scadenza dopo le quali l'URL non è più valido. Inoltre, ti consigliamo di utilizzare un bucket Amazon S3 come origine perché puoi quindi utilizzare un controllo di accesso di CloudFront origine per impedire agli utenti di accedere ai tuoi contenuti direttamente dall'origine. Per ulteriori informazioni su URL firmati e controllo di accesso origine, consulta Esecuzione di contenuti privati con URL firmati e cookie firmati.

La procedura seguente descrive come controllare l'accesso ai file utilizzando un servizio di geolocalizzazione di terza parte.

Utilizzare un servizio di geolocalizzazione di terze parti per limitare l'accesso ai file in una distribuzione CloudFront
  1. Ottieni un account con un servizio di geolocalizzazione.

  2. Carica il tuo contenuto in un bucket Amazon S3 (S3).

  3. Configura Amazon CloudFront e Amazon S3 per offrire contenuti privati. Per ulteriori informazioni, consulta Esecuzione di contenuti privati con URL firmati e cookie firmati.

  4. Scrivi la tua applicazione Web per eseguire le operazioni seguenti:

    • Inviare l'indirizzo IP per ogni richiesta utente al servizio di geolocalizzazione.

    • Valuta il valore restituito dal servizio di geolocalizzazione per determinare se l'utente si trova in un luogo in cui desideri CloudFront distribuire i tuoi contenuti.

    • Se desideri distribuire i tuoi contenuti nella posizione dell'utente, genera un URL firmato per i tuoi CloudFront contenuti. Se non si desidera distribuire i contenuti in tale posizione, restituire il codice di stato HTTP 403 (Forbidden) all'utente. In alternativa, puoi CloudFront configurare la restituzione di un messaggio di errore personalizzato. Per ulteriori informazioni, consulta Creazione di una pagina personalizzata di errore per codici di stato HTTP specifici.

    Per ulteriori informazioni, consulta la documentazione del servizio di geolocalizzazione che stai utilizzando.

Puoi utilizzare una variabile di server Web per ottenere gli indirizzi IP degli utenti che visitano il tuo sito Web. Nota quanto segue:

  • Se il tuo server Web non è connesso a Internet attraverso un sistema di bilanciamento del carico, puoi utilizzare una variabile di server Web per ottenere l'indirizzo IP remoto. Tuttavia, questo indirizzo IP non è sempre l'indirizzo IP dell'utente. Può anche essere l'indirizzo IP di un server proxy, a seconda di come l'utente è connesso a Internet.

  • Se il server Web è connesso a Internet attraverso un sistema di bilanciamento del carico, una variabile di server Web potrebbe contenere l'indirizzo IP del sistema di bilanciamento del carico e non l'indirizzo IP dell'utente. In questa configurazione, consigliamo di utilizzare l'ultimo indirizzo IP nell'intestazione HTTP X-Forwarded-For. Questa intestazione in genere contiene più di un indirizzo IP, molti dei quali sono per proxy o sistemi di bilanciamento del carico. L'ultimo indirizzo IP nell'elenco è quello che probabilmente è associato alla posizione geografica dell'utente.

Se il server Web non è connesso a un sistema di bilanciamento del carico, ti consigliamo di utilizzare variabili di server Web anziché l'intestazione X-Forwarded-For per evitare lo spoof di indirizzi IP.