Restriction de la distribution géographique de votre contenu - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Restriction de la distribution géographique de votre contenu

Vous pouvez utiliser des restrictions géographiques, parfois appelées blocage géographique, pour empêcher les utilisateurs de zones géographiques spécifiques d'accéder au contenu que vous distribuez via une CloudFront distribution Amazon. Pour utiliser les restrictions géographiques, vous avez deux options :

  • Utilisez la fonction de restrictions CloudFront géographiques. Choisissez cette option pour limiter l’accès à tous les fichiers associés à une distribution et pour limiter l’accès au niveau du pays.

  • Utiliser un service de géolocalisation tiers. Utilisez cette option pour limiter l’accès à un sous-ensemble des fichiers associés à une distribution ou pour le limiter à un niveau de détail plus fin que le niveau pays.

Utilisation de restrictions CloudFront géographiques

Lorsqu'un utilisateur demande votre contenu, il diffuse CloudFront généralement le contenu demandé, quel que soit l'endroit où se trouve l'utilisateur. Si vous devez empêcher les utilisateurs de certains pays d'accéder à votre contenu, vous pouvez utiliser la fonctionnalité de restrictions CloudFront géographiques pour effectuer l'une des opérations suivantes :

  • Accorder à vos utilisateurs l’autorisation d’accéder à votre contenu seulement s’ils résident dans un des pays figurant dans la liste des pays autorisés.

  • Empêcher vos utilisateurs d’accéder à votre contenu s’ils résident dans un des pays interdits de la liste d’exclusion.

Par exemple, si une demande provient d'un pays dans lequel vous n'êtes pas autorisé à diffuser votre contenu, vous pouvez utiliser des restrictions CloudFront géographiques pour bloquer la demande.

Note

CloudFront détermine l'emplacement de vos utilisateurs à l'aide d'une base de données tierce. La précision de la correspondance entre les adresses IP et les pays varie selon la région. Selon des tests récents, la précision globale est de 99,8 %. S'il n'est pas CloudFront possible de déterminer l'emplacement d'un utilisateur, CloudFront diffuse le contenu demandé par l'utilisateur.

Les restrictions géographiques fonctionnent comme suit :

  1. Imaginons que vous n’ayez le droit de distribuer votre contenu qu’au Liechtenstein. Vous mettez à jour votre CloudFront distribution pour ajouter une liste d'autorisation contenant uniquement le Liechtenstein. (Vous pouvez, à la place, ajouter une liste d’exclusion contenant tous les pays, à l’exception du Liechtenstein.)

  2. Un utilisateur monégasque demande votre contenu, et le DNS achemine la demande vers un emplacement CloudFront périphérique à Milan, en Italie.

  3. L’emplacement périphérique de Milan recherche votre distribution et détermine que l’utilisateur de Monaco n’a pas l’autorisation de télécharger votre contenu.

  4. CloudFront renvoie un code d'état HTTP 403 (Forbidden) à l'utilisateur.

Vous pouvez éventuellement configurer CloudFront pour renvoyer un message d'erreur personnalisé à l'utilisateur, et vous pouvez spécifier la durée pendant laquelle vous souhaitez CloudFront mettre en cache la réponse d'erreur pour le fichier demandé. La valeur par défaut est de 10 secondes. Pour de plus amples informations, veuillez consulter Créer une page d'erreur personnalisée pour des codes d'état HTTP spécifiques.

Les restrictions géographiques s’appliquent à la totalité d’une distribution. Si vous devez appliquer une restriction à une partie de votre contenu et une restriction différente (ou aucune restriction) à une autre partie de votre contenu, vous devez créer des CloudFront distributions distinctes ou utiliser un service de géolocalisation tiers.

Si vous activez les journaux CloudFront standard (journaux d'accès), vous pouvez identifier les demandes CloudFront rejetées en recherchant les entrées de journal contenant la valeur de sc-status (le code d'état HTTP)403. Cependant, en utilisant uniquement les journaux standard, vous ne pouvez pas distinguer une demande CloudFront rejetée en fonction de l'emplacement de l'utilisateur d'une demande CloudFront rejetée parce que l'utilisateur n'était pas autorisé à accéder au fichier pour une autre raison. Si vous disposez d'un service de géolocalisation tiers tel que Digital Element or MaxMind, vous pouvez identifier l'emplacement des demandes en fonction de l'adresse IP figurant dans la colonne c-ip (IP du client) des journaux d'accès. Pour plus d'informations sur les journaux CloudFront standard, consultezConfiguration et utilisation des journaux standard (journaux d’accès).

La procédure suivante explique comment utiliser la CloudFront console pour ajouter des restrictions géographiques à une distribution existante. Pour plus d’informations sur l’utilisation de la console pour créer une distribution, consultez Création d’une distribution.

Pour ajouter des restrictions géographiques à votre distribution CloudFront Web (console)
  1. Connectez-vous à la CloudFront console AWS Management Console et ouvrez-la à l'adressehttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Dans le panneau de navigation, choisissez Distributions, puis choisissez la distribution que vous souhaitez mettre à jour.

  3. Choisissez l'onglet Sécurité, puis sélectionnez Restrictions géographiques.

  4. Choisissez Modifier.

  5. Sélectionnez Allow list (Liste verte) pour créer une liste des pays autorisés, ou Liste rouge pour créer une liste des pays interdits.

  6. Ajoutez les pays souhaités à la liste, puis choisissez Save changes (Enregistrer les modifications).

Utilisation d’un service de géolocalisation tiers

Grâce à la fonctionnalité de restrictions CloudFront géographiques, vous contrôlez la distribution de votre contenu au niveau du pays pour tous les fichiers que vous distribuez dans le cadre d'une distribution Web donnée. Si vous avez un cas d'utilisation pour des restrictions géographiques où les restrictions ne suivent pas les frontières nationales, ou si vous souhaitez restreindre l'accès à certains des fichiers que vous diffusez par une distribution donnée, vous pouvez combiner l'utilisation CloudFront d'un service de géolocalisation tiers. Vous pouvez ainsi contrôler l’accès à votre contenu en fonction non seulement du pays, mais aussi de la ville ou du code postal, voire de la latitude et de la longitude.

Lorsque vous utilisez un service de géolocalisation tiers, nous vous recommandons d'utiliser des URL CloudFront signées, avec lesquelles vous pouvez spécifier une date et une heure d'expiration après lesquelles l'URL n'est plus valide. En outre, nous vous recommandons d'utiliser un compartiment Amazon S3 comme origine, car vous pouvez ensuite utiliser un contrôle CloudFront d'accès à l'origine pour empêcher les utilisateurs d'accéder à votre contenu directement depuis l'origine. Pour plus d’informations sur les URL signées et les contrôles d’accès à l’origine, consultez Offre de contenu privé avec des URL et des cookies signés.

Les étapes ci-après expliquent comment contrôler l’accès à vos fichiers à l’aide d’un service de géolocalisation tiers.

Utiliser un service de géolocalisation tiers pour restreindre l'accès aux fichiers d'une distribution CloudFront
  1. Obtenez un compte avec un service de géolocalisation.

  2. Chargez votre contenu sur un compartiment Amazon S3.

  3. Configurez Amazon CloudFront et Amazon S3 pour diffuser du contenu privé. Pour de plus amples informations, veuillez consulter Offre de contenu privé avec des URL et des cookies signés.

  4. Ecrivez votre application web pour exécuter ce qui suit :

    • Envoyez l’adresse IP de chaque demande utilisateur au service de géolocalisation.

    • Évaluez la valeur renvoyée par le service de géolocalisation pour déterminer si l'utilisateur se trouve dans un endroit où vous CloudFront souhaitez diffuser votre contenu.

    • Si vous souhaitez distribuer votre contenu à l'adresse de l'utilisateur, générez une URL signée pour votre CloudFront contenu. Si vous ne souhaitez pas distribuer de contenu à cet emplacement, renvoyez le code d'état HTTP 403 (Forbidden) à l'utilisateur. Vous pouvez également configurer CloudFront pour renvoyer un message d'erreur personnalisé. Pour de plus amples informations, veuillez consulter Créer une page d'erreur personnalisée pour des codes d'état HTTP spécifiques.

    Pour plus d’informations, consultez la documentation du service de géolocalisation que vous utilisez.

Vous pouvez utiliser une variable de serveur web pour obtenir les adresses IP des utilisateurs qui visitent votre site web. Notez les avertissements suivants :

  • Si votre serveur web n’est pas connecté à Internet via un équilibreur de charge, vous pouvez utiliser une variable de serveur web pour obtenir l’adresse IP distante. Toutefois, cette adresse IP n’est pas toujours l’adresse IP de l’utilisateur. Il peut également s’agir de l’adresse IP d’un serveur proxy, selon la façon dont l’utilisateur est connecté à Internet.

  • Si votre serveur web est connecté à Internet via un équilibreur de charge, une variable de serveur web peut contenir l’adresse IP de l’équilibreur de charge, et non celle de l’utilisateur. Dans cette configuration, nous vous recommandons d’utiliser la dernière adresse IP de l’en-tête HTTP X-Forwarded-For. Cet en-tête contient généralement plusieurs adresses IP, la plupart concernant des proxys ou des équilibreurs de charge. La dernière adresse IP de la liste est celle qui est très vraisemblablement associée à l’emplacement géographique de l’utilisateur.

Si votre serveur web n’est pas connecté à un équilibreur de charge, nous vous recommandons d’utiliser les variables de serveur web à la place de l’en-tête X-Forwarded-For pour éviter l’usurpation d’adresse IP.