Présentation

Les politiques de blocage géographique sont mises en œuvre sur les applications Web pour différentes raisons, par exemple pour se conformer aux réglementations relatives aux pays sous embargo ou pour bloquer le streaming vidéo dans les pays où l'application Web ne dispose pas de droits de diffusion.

Cas d'utilisation courants

Le blocage géographique peut être mis en œuvre à l'aide des restrictions géographiques natives de CloudFront, à l'aide de fonctions de périphérie ou à l'aide d'AWS WAF. Chaque méthode fournit une granularité correspondante différente, une logique personnalisable et un niveau de prix. Les méthodes peuvent également être combinées, sachant que CloudFront évalue d'abord sa règle de restrictions géographiques, puis AWS WAF évalue ses règles de géo-correspondance et enfin les fonctions de périphérie sont exécutées pour évaluer la logique de blocage géographique dans leur code. Notez que CloudFront et AWS WAF déterminent la localisation de vos utilisateurs à l'aide d'une base de données tierce. La précision du mappage entre les adresses IP et les pays varie selon les régions.

Blocage géographique à l'aide des services de périphérie d'AWS

Restrictions géographiques simples et globales dans CloudFront

Utilisez les restrictions géographiques de CloudFront pour soumettre les pays à des restrictions au niveau de la distribution, sans frais supplémentaires. Vous pouvez autoriser ou bloquer un ensemble spécifique de pays, appliqué à toutes les demandes reçues par votre distribution CloudFront. Les spectateurs soumis à des restrictions géographiques configurées recevront une réponse 403 Forbidden de CloudFront. Vous pouvez utiliser les pages d'erreur personnalisées de CloudFront pour proposer une page d'erreur amicale.

Logique de blocage géographique avancée utilisant les fonctions CloudFront

Utilisez les fonctions CloudFront, configurées lors d'un événement de demande de l'utilisateur, pour implémenter la logique de blocage géographique avancée à l'aide de javascript. Les fonctions CloudFront peuvent être utilisées de manière granulaire avec un comportement de cache CloudFront spécifique (par exemple, les chemins /api/*), et la logique peut être plus granulaire dans le code et combinée avec d'autres logiques de contrôle d'accès comme l'autorisation. Pour implémenter une logique basée sur la géolocalisation dans les fonctions CloudFront, vous devez autoriser la liste des en-têtes CloudFront nécessaires (par exemple, CloudFront-Viewer-Country ou CloudFront-Viewer-Country-Region) dans une politique de demande d'origine associée au même comportement de cache CloudFront auquel la fonction est associée.

L'exemple de fonction CloudFront ci-dessous bloque les spectateurs des régions de Donetsk (14) ou de Luhansk (9) en Ukraine.

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;
}

Ressources

Cette page vous a-t-elle été utile ?