Panoramica

Le politiche di blocco geografico vengono implementate sulle applicazioni web per diversi motivi, ad esempio per rispettare le normative relative ai Paesi sottoposti a embargo o per bloccare lo streaming video nei Paesi in cui l'applicazione web non dispone di diritti di streaming.

Casi d'uso comuni

Il blocco geografico può essere implementato utilizzando le restrizioni geografiche native di CloudFront, utilizzando le funzioni edge o utilizzando AWS WAF. Ogni metodo fornisce una granularità di abbinamento, una logica personalizzabile e un livello di prezzo diversi. I metodi possono anche essere combinati, sapendo che CloudFront valuta prima la regola delle restrizioni geografiche, quindi AWS WAF valuta le sue regole di geo-matching e, infine, le funzioni edge vengono eseguite per valutare la logica di blocco geografico nel loro codice. Tieni presente che CloudFront e AWS WAF determinano la posizione dei tuoi utenti utilizzando un database di terze parti. L'accuratezza della mappatura tra indirizzi IP e Paesi varia in base alla Regione.

Blocco geografico tramite AWS Edge Services

Restrizioni geografiche semplici e globali in CloudFront

Utilizza le restrizioni geografiche di CloudFront per escludere alcuni Paesi a livello di distribuzione, senza costi aggiuntivi. Puoi consentire o bloccare un insieme specifico di Paesi, applicato a tutte le richieste ricevute dalla tua distribuzione CloudFront. I visualizzatori limitati dalle restrizioni geografiche configurate riceveranno una risposta 403 Forbidden da CloudFront. Puoi utilizzare le pagine di errore personalizzate di CloudFront per pubblicare una pagina di errore intuitiva.

Logica di blocco geografico avanzata con le Funzioni CloudFront

Utilizza le Funzioni CloudFront, configurate sull'evento di richiesta del visualizzatore, per implementare la logica avanzata di blocco geografico utilizzando javascript. Le Funzioni CloudFront possono essere utilizzate in modo granulare con uno specifico comportamento della cache di CloudFront (ad esempio percorsi /api/ *). La logica può essere più granulare nel codice e può essere combinata con altre logiche di controllo degli accessi, come ad esempio l'autorizzazione. Per implementare la logica a base geografica nelle Funzioni CloudFront, devi consentire l'elenco delle intestazioni CloudFront richieste (ad esempio, CloudFront-Viewer-Country o CloudFront-Viewer-Country-Region) in una policy di richiesta di origine allegata allo stesso comportamento della cache di CloudFront a cui è associata la funzione.

L'esempio seguente della funzione CloudFront blocca i visualizzatori delle regioni ucraine di Donetsk (14) o Luhansk (9).

function handler(event) {
  var request = event.request;
  var country = request.headers['cloudfront-viewer-country'];
  var region = request.headers['cloudfront-viewer-country-region'];

  if (country && country.value === 'UA' && region && (region.value === '9' || region.value === '14')) {
    return {
      statusCode: 403,
      statusDescription: 'Forbidden',
    };
  }
  return request;
}

Risorse

Questa pagina è stata utile?