Une restriction géographique est une décision portant sur une adresse IP, et un VPN change l'adresse que le service voit. Cette seule phrase explique la plupart des signalements confus qui arrivent dans une file de support : « le site fonctionne à la maison et échoue sur le tunnel » et « le site fonctionne sur le tunnel mais personne d'autre au bureau ne peut le charger » relèvent du même mécanisme produisant des résultats opposés. Ce guide déroule le diagnostic dans l'ordre qui élimine les causes, en commençant par ce que l'edge vous a réellement dit. La même adresse de sortie peut réussir un contrôle et échouer au suivant, parce que chaque contrôle évalue une propriété différente de cette adresse.

Lisez le 403 avant de changer quoi que ce soit

Un blocage géographique et un blocage WAF arrivent tous deux en 403, et ils se corrigent à des endroits différents. Capturez les en-têtes de réponse et la première ligne du corps, car CloudFront ajoute un en-tête de cache et une chaîne de raison qui vous disent quelle couche a répondu :

curl -sS -o /tmp/body.txt -D /tmp/headers.txt https://d111111abcdef8.cloudfront.net/
grep -i "x-cache\|via" /tmp/headers.txt
head -c 300 /tmp/body.txt

Lorsque la distribution elle-même a bloqué la requête pour des raisons géographiques, le corps porte un message nommant la restriction de pays. Lorsqu'une règle WAF l'a bloquée, le corps est généralement une page interdite générique et l'identifiant de requête de la distribution dans les en-têtes est ce que vous emportez dans les journaux WAF. Se tromper ici vous envoie vers la liste des pays autorisés pour un problème de règle basée sur le débit, ce qui représente une journée de travail qui ne peut pas aboutir.

Étape 1 : confirmez quelle adresse la distribution voit

Demandez au réseau ce que voit le monde extérieur, depuis la même machine et la même route que le navigateur qui échoue. curl -s https://checkip.amazonaws.com renvoie l'adresse publique de l'appelant, qui pour un client VPN est la sortie plutôt que la connexion domestique de l'abonné :

curl -s https://checkip.amazonaws.com
nslookup d111111abcdef8.cloudfront.net

Si cette adresse appartient à la sortie de votre fournisseur dans un autre pays, la décision géographique est déjà prise et rien sur le client ne la changera. Écrivez l'adresse dans le ticket avant de toucher à un réglage, car c'est le seul fait du rapport sur lequel vous et le service êtes d'accord.

Étape 2 : séparez le pays de la réputation

CloudFront détermine la localisation du spectateur à partir d'une base GeoIP tierce indexée sur l'adresse source de la requête, et la correspondance est approximative et régionale plutôt qu'une localisation précise. Lorsque la localisation ne peut pas être déterminée, la valeur par défaut documentée est de servir le contenu. Il existe donc trois états possibles : la sortie correspond à un pays bloqué, à un pays autorisé, ou la base n'a pas d'opinion et la requête passe.

Un utilisateur d'un pays bloqué peut sembler se trouver dans un pays autorisé si le fournisseur y dispose d'une sortie, et un utilisateur d'un pays autorisé peut être bloqué parce que la sortie est enregistrée ailleurs. Aucun des deux résultats ne prouve que la restriction est cassée. Les deux relèvent de la restriction qui s'applique à l'adresse qu'on lui a donnée, comme le décrit la documentation CloudFront sur les restrictions géographiques.

La réputation est le second axe et elle survit au tunnel. Le groupe de règles gérées AWS WAF pour les IP anonymes est conçu pour bloquer les requêtes venant de VPN, de proxys, de nœuds Tor et d'hébergeurs, si bien qu'une requête qui passe le contrôle de pays peut encore être refusée à cause de ce qu'est l'adresse, et non de où elle se trouve. Si le blocage a commencé lorsque vous avez déplacé le tunnel vers un hôte cloud, c'est probablement cette couche.

Étape 3 : vérifiez le comportement du quota

Les sorties partagées échouent d'une troisième manière. Les limites de débit par IP et les comptages de session traitent une adresse comme un seul client, et une sortie grand public porte de nombreux abonnés à la fois, donc un schéma de requêtes anodin depuis une connexion domestique ressemble à de l'automatisation depuis la sortie. Le symptôme est une limitation ou un blocage temporaire qui se dissipe seul, pas un message d'erreur géographique.

Une distribution peut aussi compter délibérément les sessions par adresse, par exemple avec une fonction Lambda@Edge qui écrit dans DynamoDB. Cela n'identifie pas la personne derrière la sortie, mais cela fait qu'une adresse se comporte comme un seul client, ce qui est souvent l'intention réelle. Consignez les adresses distinctes derrière une plainte avant d'ajuster un seuil, car un NAT d'entreprise devant deux cents postes ressemble exactement de l'extérieur à une sortie occupée. Attendez-vous à des faux positifs venant d'un NAT d'entreprise, d'un réseau universitaire ou d'un grand foyer qui présentent tous une adresse unique.

Regardez les requêtes échantillonnées du WAF et les métriques des règles basées sur le débit avant d'accuser la géographie. Une règle qui se déclenche sur le volume de requêtes de la sortie laisse une signature claire, et elle vous dit aussi si le correctif est un ajustement de limite ou un autre chemin de sortie.

Quoi changer, et dans quel ordre

Décidez d'abord à quoi sert le contrôle. Tenir un catalogue régional, limiter les abus et faire respecter un contrat sont trois objectifs différents, et seul le premier est traité par une liste de pays. Si l'objectif est le contrôle des abus, la sortie est la mauvaise unité d'identité, et aucune quantité de listes autorisées ne rendra une adresse partagée fiable.

Si une adresse stable est réellement nécessaire pour une liste autorisée, une sortie dédiée ou statique aide car l'adresse peut être enregistrée et ne tourne pas. Elle ne rend pas l'adresse résidentielle et ne change pas le pays qu'une base GeoIP lui attribue. Faire tourner des sorties jusqu'à ce qu'une fonctionne est un changement temporaire de réputation, pas une correction de la politique.

Écrivez ensuite le résultat avec les termes employés par le demandeur : cette adresse est bloquée par pays, par réputation ou par débit, et c'est le contrôle qui va changer. Tout propos plus vague invite le même ticket la semaine prochaine avec une autre sortie.

Articles similaires