0Pricing
AWS Solutions Architect · Leçon

URL signées, cookies signés et restriction géographique

Limitez l’accès aux contenus premium à l’aide d’URL et de cookies signés, et bloquez les utilisateurs de certains pays grâce à la restriction géographique.

URL signées, cookies signés et restriction géographique est une leçon AWS Solutions Architect gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AWS Solutions Architect, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AWS Solutions Architect comprend 4 leçons au total.

Restriction de l’accès au contenu CloudFront

Par défaut, CloudFront diffuse le contenu à tout utilisateur qui connaît l’URL. Pour les contenus premium ou privés — cours vidéo, téléchargements de logiciels payants, ressources réservées aux membres — vous devez restreindre l’accès afin que seuls les utilisateurs autorisés puissent les récupérer.

CloudFront fournit deux mécanismes d’accès autorisé : les URL signées (une URL accorde l’accès à un objet spécifique) et les cookies signés (un ensemble de cookies accorde l’accès à plusieurs objets correspondant à un modèle de chemin). Tous deux utilisent des signatures cryptographiques générées avec une paire de clés RSA.

URL signées CloudFront

Une URL signée est une URL CloudFront qui contient une signature cryptographique encodant une date d’expiration et, éventuellement, une restriction basée sur l’adresse IP. L’URL n’est valide que jusqu’à son expiration et uniquement depuis l’adresse IP autorisée, si elle est spécifiée. Après expiration, CloudFront renvoie une erreur 403 Forbidden.

Les URL signées sont particulièrement adaptées pour : accorder à un seul utilisateur l’accès à un fichier précis (par exemple, un rapport PDF généré), fournir des liens de téléchargement limités dans le temps, ou lorsque le client ne peut pas définir de cookies (par exemple, dans les applications mobiles ou pour la diffusion RTMP).

# Generate a signed URL using AWS CLI (requires a CloudFront key pair)
aws cloudfront sign \
  --url https://d1234abcdef.cloudfront.net/premium/video.mp4 \
  --key-pair-id APKA1234567890 \
  --private-key file://private-key.pem \
  --date-less-than 2026-06-21T00:00:00Z

Cookies signés CloudFront

Les cookies signés fonctionnent de manière similaire aux URL signées, mais accordent l’accès à plusieurs fichiers sans modifier chaque URL. Après une authentification réussie, votre serveur génère trois cookies (CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id) et les définit dans la réponse envoyée au navigateur. Les requêtes CloudFront suivantes provenant de ce navigateur incluent ces cookies, ce qui accorde l’accès à tout le contenu correspondant.

Les cookies signés sont particulièrement adaptés pour : donner aux utilisateurs connectés accès à une section premium entière (par exemple, toutes les vidéos dans /members/*), ou lorsque vous ne pouvez pas contrôler le format de l’URL de chaque ressource individuelle.

Groupes de clés approuvés

Pour générer des signatures CloudFront, vous avez besoin d’une paire de clés CloudFront. L’approche moderne utilise les groupes de clés approuvés : créez une paire de clés RSA, téléversez la clé publique vers CloudFront, ajoutez-la à un groupe de clés, puis associez le groupe de clés au comportement du cache qui nécessite un accès signé.

La clé privée est stockée de manière sécurisée (par exemple, dans Secrets Manager) sur votre serveur de signature. Lorsqu’un utilisateur s’authentifie, le serveur utilise la clé privée pour signer une URL ou une stratégie de cookie. CloudFront valide les signatures à l’aide de la clé publique correspondante du groupe de clés approuvé.

# Upload a public key to CloudFront
aws cloudfront create-public-key \
  --public-key-config '{
    "Name": "MySigningKey",
    "EncodedKey": "-----BEGIN PUBLIC KEY-----\n...<key>...\n-----END PUBLIC KEY-----",
    "CallerReference": "2026-06-20-key"
  }'

Stratégies d’URL signées prédéfinies ou personnalisées

Les URL signées peuvent utiliser l’un des deux types de stratégies suivants :

  • Stratégie prédéfinie : forme la plus simple, qui spécifie uniquement une URL de ressource et une date d’expiration. La signature est compacte et facile à générer.
  • Stratégie personnalisée : plus flexible, elle spécifie l’URL de la ressource avec des caractères génériques facultatifs (https://d123.cloudfront.net/videos/*), une heure de début facultative (date de début de validité), ainsi qu’une restriction basée sur l’adresse IP, également facultative. Le JSON de la stratégie est encodé en Base64 dans l’URL.

Utilisez les stratégies prédéfinies pour les liens simples vers un seul fichier ; utilisez les stratégies personnalisées lorsque vous avez besoin d’une correspondance de ressources avec caractères génériques ou de restrictions basées sur l’adresse IP.

Restriction géographique CloudFront

La restriction géographique (également appelée restriction selon la zone géographique) empêche CloudFront de diffuser du contenu, ou l’autorise, en fonction du pays du visiteur. CloudFront détermine le pays du visiteur à partir de son adresse IP en utilisant une base de données de géolocalisation tierce.

Vous configurez la restriction géographique pour chaque distribution sous la forme d’une liste d’autorisation (seuls les pays répertoriés peuvent accéder au contenu) ou d’une liste de blocage (les pays répertoriés sont bloqués). Les utilisateurs situés dans des pays soumis à des restrictions reçoivent une réponse HTTP 403. La restriction géographique est un outil rudimentaire : elle s’applique à l’ensemble de la distribution, et non à des chemins individuels.

# Enable geo-restriction: block two countries
aws cloudfront update-distribution \
  --id EDFDVBD6EXAMPLE \
  --distribution-config '{
    ...existing config...
    "Restrictions": {
      "GeoRestriction": {
        "RestrictionType": "blacklist",
        "Quantity": 2,
        "Items": ["CN", "RU"]
      }
    }
  }' \
  --if-match ETVPDKIKX0DER

Restriction géographique CloudFront ou géolocalisation Route 53

La restriction géographique CloudFront et le routage par géolocalisation de Route 53 utilisent tous deux la géographie, mais répondent à des objectifs différents :

  • Restriction géographique CloudFront : bloque ou autorise la diffusion en périphérie du contenu au niveau du CDN ; renvoie une erreur 403 aux pays bloqués et s’applique par distribution
  • Géolocalisation Route 53 : achemine les requêtes DNS vers différents points de terminaison (serveurs ou pages différents) selon la zone géographique ; elle ne bloque pas l’accès, mais redirige vers un contenu ou une infrastructure différente

Utilisez la restriction géographique CloudFront pour contrôler l’accès (en bloquant des pays entiers). Utilisez la géolocalisation Route 53 pour diriger les utilisateurs vers un contenu ou une infrastructure adaptés à leur région.

Combinaison des URL signées avec S3 et OAC

Architecture complète de diffusion de contenu privé :

  1. Le compartiment S3 est privé (aucun accès public)
  2. CloudFront utilise OAC afin que seule la distribution puisse lire les données depuis S3
  3. Le comportement du cache du contenu privé nécessite des URL ou cookies signés (avec un groupe de clés approuvé associé)
  4. Votre serveur d’application authentifie les utilisateurs et émet les URL ou cookies signés
  5. Les utilisateurs accèdent au contenu uniquement par l’intermédiaire d’URL CloudFront signées et limitées dans le temps

Même si un utilisateur devine ou partage l’URL S3, l’accès est bloqué. Même s’il partage l’URL CloudFront, celle-ci expire après la durée configurée. Cette approche à plusieurs niveaux fournit une défense en profondeur pour le contenu numérique.

Chiffrement au niveau des champs

Le chiffrement au niveau des champs est une fonctionnalité CloudFront avancée qui permet de chiffrer à la périphérie les champs de données sensibles des requêtes HTTP POST avant leur transmission à l’origine. Même si le serveur d’origine est compromis, les champs chiffrés (par exemple, les numéros de carte bancaire et les numéros de sécurité sociale) restent illisibles sans la clé privée correspondante.

CloudFront chiffre les champs spécifiés à l’aide d’une clé publique à la périphérie. Seul le service principal backend prévu, disposant de la clé privée correspondante, peut déchiffrer les données. Le chiffrement au niveau des champs ajoute une couche de protection au sein d’un pipeline déjà sécurisé par TLS.

Modèle de contrôle d’accès fondé sur des jetons

Pour les applications dynamiques qui nécessitent un contrôle d’accès précis allant au-delà du blocage par pays, un modèle courant est le contrôle d’accès fondé sur des jetons avec Lambda@Edge :

  1. L’utilisateur s’authentifie avec Cognito ou votre service d’authentification et reçoit un JWT
  2. L’utilisateur inclut le JWT comme paramètre de requête ou cookie dans les requêtes CloudFront
  3. La fonction Lambda@Edge Viewer-Request valide la signature et les revendications du JWT
  4. Si le jeton est valide, Lambda@Edge transmet la requête à l’origine ; s’il est invalide, elle renvoie une erreur 401

Ce modèle fournit un contrôle d’accès précis, par utilisateur et par ressource, entièrement à la périphérie CloudFront, sans atteindre l’origine pour les requêtes non autorisées.

Résumé des cas d’utilisation concrets

Scénarios types d’examen concernant les URL et cookies signés ainsi que la restriction géographique :

  • « Lien de téléchargement limité dans le temps pour un fichier acheté » → URL signée avec expiration
  • « Les utilisateurs premium connectés accèdent à toutes les vidéos de /premium/* » → Cookies signés avec stratégie utilisant des caractères génériques
  • « Bloquer l’accès aux utilisateurs de certains pays pour des raisons de licence » → Liste de blocage fondée sur la restriction géographique CloudFront
  • « Diffuser un contenu différent selon les pays » → Géolocalisation Route 53 + plusieurs distributions ou origines
  • « Protéger les champs de carte bancaire, y compris contre les administrateurs de l’origine » → Chiffrement au niveau des champs

Vérification rapide

Vérifiez votre compréhension des concepts AWS Solutions Architect (SAA-C03) abordés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que les URL signées limitent l’accès à des fichiers individuels avec une date d’expiration et une restriction IP facultative, que les cookies signés accordent l’accès à plusieurs fichiers correspondant à un modèle de chemin au cours d’une même session authentifiée, et que la restriction géographique bloque ou autorise des pays entiers au niveau de la distribution CloudFront. Nous allons maintenant étudier CloudFront avec WAF et Lambda@Edge.

Questions Fréquemment Posées

La leçon « URL signées, cookies signés et restriction géographique » est-elle gratuite ?

Oui — le texte complet de « URL signées, cookies signés et restriction géographique » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AWS Solutions Architect, passe à CoddyKit PRO. Le cours AWS Solutions Architect comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « URL signées, cookies signés et restriction géographique » ?

Limitez l’accès aux contenus premium à l’aide d’URL et de cookies signés, et bloquez les utilisateurs de certains pays grâce à la restriction géographique. Tu pratiques AWS Solutions Architect avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AWS Solutions Architect ?

Aucune expérience préalable n'est requise. AWS Solutions Architect sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « URL signées, cookies signés et restriction géographique » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AWS Solutions Architect ?

Oui. Chaque leçon AWS Solutions Architect inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Distributions CloudFront et origines
  2. Comportements du cache et paramètres TTL
  3. URL signées, cookies signés et restriction géographique
  4. CloudFront avec WAF et Lambda@Edge
← Retour à AWS Solutions Architect