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.
Ajout d’en-têtes de demande CloudFront
Vous pouvez configurer CloudFront pour ajouter des en-têtes HTTP spécifiques aux demandes que CloudFront reçoit des utilisateurs et les transférer à votre origine ou à la fonction de périphérie. Les valeurs de ces en-têtes HTTP sont basées sur des caractéristiques de l'utilisateur ou sur la demande de l’utilisateur. Les en-têtes fournissent des informations sur le type d’appareil, l’adresse IP, l’emplacement géographique, le protocole de demande (HTTP ou HTTPS), la version HTTP, les détails de la connexion TLS, l’empreinte JA3
Avec ces en-têtes, votre origine ou votre fonction périphérique peut recevoir des informations sur l'utilisateur sans avoir besoin d'écrire votre propre code pour déterminer ces informations. Si votre origine renvoie des réponses différentes en fonction des informations contenues dans ces en-têtes, vous pouvez les inclure dans la clé de cache afin que CloudFront mette en cache les réponses séparément. Par exemple, votre origine peut répondre avec du contenu dans une langue spécifique en fonction du pays dans lequel se trouve le visualiseur, ou avec du contenu adapté à un type d'appareil spécifique. Votre origine peut également écrire ces en-têtes dans des fichiers journaux, que vous pouvez utiliser pour déterminer où se trouvent vos spectateurs, quels types d'appareils ils se trouvent, et plus encore.
Pour inclure ces en-têtes dans la clé de cache, utilisez une politique de cache. Pour plus d’informations, consultez Contrôle de la clé de cache à l’aide d’une politique et Comprendre la clé de cache.
Pour recevoir des en-têtes à l'origine sans les inclure dans la clé de cache, utilisez une politique de demande de l'origine. Pour plus d’informations, consultez Contrôle des demandes d’origine à l’aide d’une stratégie.
Rubriques
En-têtes de type d’appareil
Vous pouvez ajouter les en-têtes suivants pour déterminer le type d'appareil de l'utilisateur. En fonction de la valeur de l’en-tête User-Agent, CloudFront définit la valeur de ces en-têtes sur true ou false. Si un appareil entre dans plusieurs catégories, plusieurs valeurs peuvent être true. Par exemple, pour certaines tablettes, CloudFront définit CloudFront-Is-Mobile-Viewer et CloudFront-Is-Tablet-Viewer sur true.
-
CloudFront-Is-Android-Viewer– Définissez surtruequand CloudFront détermine que l’utilisateur est un appareil avec le système d’exploitation Android. -
CloudFront-Is-Desktop-Viewer– Définissez surtruequand CloudFront détermine que l’utilisateur est un appareil de bureau. -
CloudFront-Is-IOS-Viewer– Défini surtruelorsque CloudFront détermine que l'utilisateur est un appareil doté d'un système d'exploitation mobile Apple, comme l'iPhone, l'iPod touch et certains appareils iPad. -
CloudFront-Is-Mobile-Viewer– Définissez surtruequand CloudFront détermine que l’utilisateur est un appareil mobile. -
CloudFront-Is-SmartTV-Viewer– Définissez surtruequand CloudFront détermine que l’utilisateur est un téléviseur intelligent. -
CloudFront-Is-Tablet-Viewer: définissez surtruequand CloudFront détermine que l’utilisateur est une tablette.
En-têtes de l’emplacement de l’utilisateur
Vous pouvez ajouter les en-têtes suivants pour déterminer l’emplacement de l'utilisateur. CloudFront détermine les valeurs de ces en-têtes en fonction de l’adresse IP de l’utilisateur. Pour les caractères non ASCII dans les valeurs de ces en-têtes, le pourcentage CloudFront code le caractère conformément à la section 1.2 de la RFC 3986
-
CloudFront-Viewer-Address: contient l'adresse IP de l'utilisateur et le port source de la demande. Par exemple, une valeur d'en-tête de198.51.100.10:46532signifie que l'adresse IP de l’utilisateur est 198.51.100.10 et que le port source de la demande est 46532. -
CloudFront-Viewer-ASN: contient le numéro de système autonome (ASN) de l'utilisateur.Note
Vous pouvez ajouter
CloudFront-Viewer-AddressetCloudFront-Viewer-ASNdans une politique de demande d'origine, mais pas dans une politique de cache. -
CloudFront-Viewer-Country– Contient le code de pays à deux lettres du pays de l’utilisateur. Pour obtenir une liste des codes de pays, consultez ISO 3166-1 alpha-2. -
CloudFront-Viewer-City– Contient le nom de la ville de l’utilisateur.
Lorsque vous ajoutez les en-têtes suivants, CloudFront les applique à toutes les demandes sauf celles qui proviennent du réseau AWS :
-
CloudFront-Viewer-Country-Name– Contient le nom du pays de l’utilisateur. -
CloudFront-Viewer-Country-Region– Contient un code (jusqu’à trois caractères) représentant la région de l’utilisateur. La région est la subdivision de premier niveau (la plus large ou la moins spécifique) du code ISO 3166-2. -
CloudFront-Viewer-Country-Region-Name– Contient le nom de la région de l’utilisateur. La région est la subdivision de premier niveau (la plus large ou la moins spécifique) du code ISO 3166-2. -
CloudFront-Viewer-Latitude– Contient la latitude approximative de l’utilisateur. -
CloudFront-Viewer-Longitude– Contient la longitude approximative de l'utilisateur. -
CloudFront-Viewer-Metro-Code– Contient le code régional de l'utilisateur. Ceci n'est présent que lorsque l'utilisateur est aux États-Unis. -
CloudFront-Viewer-Postal-Code– Contient le code postal de l'utilisateur. -
CloudFront-Viewer-Time-ZoneContient le fuseau horaire de l'utilisateur, au format de base de données de fuseau horaire IANA(par exemple, America/Los_Angeles).
Note
CloudFront-Viewer-City, CloudFront-Viewer-Metro-Code et CloudFront-Viewer-Postal-Code peuvent ne pas être disponibles pour chaque adresse IP. Certaines adresses IP ne peuvent pas être géolocalisées avec suffisamment de précision pour obtenir ces informations.
En-têtes permettant de déterminer la structure de l’en-tête de l’utilisateur
Vous pouvez ajouter les en-têtes suivants pour identifier l’utilisateur en fonction des en-têtes qu'il envoie. Par exemple, différents navigateurs peuvent envoyer des en-têtes HTTP dans un certain ordre. Si le navigateur spécifié dans l'en-tête User-Agent ne correspond pas à l'ordre d'en-tête attendu par ce navigateur, vous pouvez refuser la demande. De plus, si la valeur CloudFront-Viewer-Header-Count ne correspond pas au nombre d'en-têtes de CloudFront-Viewer-Header-Order, vous pouvez refuser la demande.
-
CloudFront-Viewer-Header-Order: contient les noms d'en-tête de l'utilisateur dans l'ordre demandé, séparés par deux points. Par exemple:CloudFront-Viewer-Header-Order: Host:User-Agent:Accept:Accept-Encoding. Les en-têtes dépassant la limite de 7 680 caractères sont tronqués. -
CloudFront-Viewer-Header-Count: contient le nombre total d'en-têtes de l'utilisateur.
En-têtes liés à TLS
Vous pouvez ajouter les en-têtes suivants pour déterminer l’empreinte JA3, l’empreinte JA4 et les détails de connexion TLS de l’utilisateur :
-
CloudFront-Viewer-JA3-Fingerprint: contient l'empreinte JA3de l’utilisateur. L'empreinte JA3 peut vous aider à déterminer si la demande provient d'un client connu, s'il s'agit d'un logiciel malveillant, d'un bot malveillant ou d'une application attendue (répertoriée dans la liste des applications autorisées). -
CloudFront-Viewer-JA4-Fingerprint: contient l'empreinte JA4 de l’utilisateur. Similaire à l’empreinte JA3, l’empreinte JA4peut vous aider à déterminer si la demande provient d’un client connu, s’il s’agit d’un logiciel malveillant, d’un bot malveillant ou d’une application attendue (répertoriée dans la liste des applications autorisées). Vous pouvez utiliser l’empreinte pour constituer une base de données d’acteurs connus, fiables ou malveillants, à appliquer lors de l’inspection des demandes HTTP. Vous pouvez ensuite inspecter la valeur de l’en-tête sur vos serveurs d’application web ou dans Lambda@Edge et vos Fonctions CloudFront, afin de la comparer à une liste d’empreintes de logiciels malveillants connues pour bloquer les clients malveillants. -
CloudFront-Viewer-TLS– Contient la version SSL/TLS, le chiffrement et des informations sur l'établissement de liaison SSL/TLS qui a été utilisé pour la connexion entre l'utilisateur et CloudFront. Spécifiez la valeur au format suivant :SSL/TLS_version:cipher:handshake_informationPour
, l'en-tête peut contenir les valeurs suivantes :handshake_information-
fullHandshake– Une liaison complète a été effectuée pour la session SSL/TLS. -
sessionResumed– Une session SSL/TLS précédente a été reprise. -
connectionReused– Une connexion SSL/TLS précédente a été réutilisée.
Voici quelques exemples de valeurs pour cet en-tête.
TLSv1.3:TLS_AES_128_GCM_SHA256:sessionResumedTLSv1.2:ECDHE-ECDSA-AES128-GCM-SHA256:connectionReusedTLSv1.1:ECDHE-RSA-AES128-SHA256:fullHandshakeTLSv1:ECDHE-RSA-AES256-SHA:fullHandshakePour obtenir la liste complète des versions SSL/TLS possibles et des chiffrements pouvant figurer dans cette valeur d'en-tête, reportez-vous à la section Protocoles et chiffrements pris en charge entre les utilisateurs et CloudFront.
-
Remarques
-
Les empreintes JA3 et JA4 sont dérivées du paquet SSL/TLS
Client Hello. Elles ne sont présentes que pour les demandes HTTPS. -
Ces en-têtes liés à TLS peuvent être ajoutés à une politique de demande d’origine, mais ne peuvent pas être inclus dans une politique de cache.
Autres en-têtes CloudFront
Vous pouvez ajouter les en-têtes suivants pour déterminer l’URI de la demande initiale de l’utilisateur, les paramètres et valeurs de la chaîne de demande d’origine, ainsi que le protocole et la version :
-
CloudFront-Error-Uri: contient l’URI de la demande d’origine reçue de l’utilisateur. -
CloudFront-Error-Args: contient les paramètres et les valeurs de la chaîne de demande d’origine. -
CloudFront-Forwarded-Proto– Contient le protocole de la demande de l’utilisateur (HTTP ou HTTPS). -
CloudFront-Viewer-Http-Version– Contient la version HTTP de la demande de l’utilisateur.