Amazon CloudFront Guide du développeur
Transcription
Amazon CloudFront Guide du développeur
Amazon CloudFront Guide du développeur API Version 2016-01-13 Amazon CloudFront Guide du développeur Amazon CloudFront: Guide du développeur Copyright © 2016 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon. Amazon CloudFront Guide du développeur Table of Contents Qu'est-ce qu'Amazon CloudFront ? .................................................................................................. 1 Diffusion de contenu par CloudFront ........................................................................................ 2 Emplacements et plages d'adresses IP des serveurs périphériques CloudFront. .............................. 4 Conformité DSS d'PCI ........................................................................................................... 4 Rapports AWS de facturation et d'utilisation pour CloudFront ............................................................... 5 Rapport de facturation AWS pour CloudFront ............................................................................ 6 Rapport d'utilisation AWS pour CloudFront ............................................................................... 7 Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront ......................... 8 Rapports CloudFront .................................................................................................................... 11 Rapports CloudFront Cache Statistics .................................................................................... 12 Téléchargement des données au format CSV .................................................................. 14 Relation entre les graphiques statistiques de mise en cache et les données dans les journaux d'accès CloudFront ......................................................................................... 15 Rapport CloudFront Popular Objects ...................................................................................... 16 Téléchargement des données au format CSV .................................................................. 17 Relation entre les données du rapport Popular Objects et les données des journaux d'accès CloudFront ................................................................................................................. 19 Rapport CloudFront Top Referrers ......................................................................................... 20 Téléchargement des données au format CSV .................................................................. 21 Relation entre les données du rapport Top Referrers et les données des journaux d'accès CloudFront ................................................................................................................. 22 Rapports CloudFront Usage .................................................................................................. 22 Téléchargement des données au format CSV .................................................................. 23 Relation entre les graphiques Usage et les données du rapport d'utilisation CloudFront ........... 25 Rapports CloudFront Viewers ................................................................................................ 27 Affichage des graphiques et rapports Viewers ................................................................. 27 Téléchargement des données au format CSV .................................................................. 28 Relation entre les données du rapport Locations et les données des journaux d'accès CloudFront ................................................................................................................. 33 Mise en route ............................................................................................................................. 35 Etape 1 : S'inscrire à Amazon Web Services ........................................................................... 35 Etape 2 : Télécharger votre contenu sur Amazon S3 et attribuer les autorisations d'objet ................. 36 Etape 3 : Créer une distribution web CloudFront ...................................................................... 37 Etape 4 : Tester les liens ...................................................................................................... 39 Utiliser les distributions ................................................................................................................ 41 Présentation des distributions Web et RTMP ........................................................................... 42 Distributions Web ........................................................................................................ 42 Distributions RTMP ...................................................................................................... 43 Création de distributions Web et RTMP .................................................................................. 43 Liste, affichage et mise à jour des distributions CloudFront ........................................................ 43 Suppression d'une distribution ............................................................................................... 44 Utilisation de noms de domaines alternatifs (CNAME) ............................................................... 45 Utilisation du caractère générique * dans les noms de domaines alternatifs ........................... 46 Restrictions relatives à l'utilisation de noms de domaines alternatifs ..................................... 46 Ajout d'un nom de domaine alternatif ............................................................................. 47 Choix de la catégorie de tarifs pour une distribution CloudFront .................................................. 49 Utilisation de CloudFront avec Amazon S3 .............................................................................. 50 Ajout de CloudFront lors de la distribution de contenu à partir d'Amazon S3 .......................... 51 Déplacement d'un compartiment Amazon S3 vers une région différente ............................... 52 Modifications de l'API CloudFront .......................................................................................... 53 Utilisation des distributions web ..................................................................................................... 54 Liste des tâches de création d'une distribution web .................................................................. 54 Création ou mise à jour d'une distribution web à l'aide de la console CloudFront ............................ 56 Test de votre distribution web ............................................................................................... 57 Utilisation des origines Amazon S3 et des origines personnalisées pour les distributions web ........... 58 API Version 2016-01-13 iii Amazon CloudFront Guide du développeur Utilisation de compartiments Amazon S3 pour votre origine ............................................... 58 Utilisation d'Amazon EC2 ou autres origines personnalisées .............................................. 59 Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web ................ 59 Méthode de remise ..................................................................................................... 61 Paramètres d'origine .................................................................................................... 61 Paramètres de comportement du cache .......................................................................... 66 Détails de la distribution ............................................................................................... 73 Pages d'erreur personnalisées et mise en cache des erreurs ............................................. 77 Restrictions ................................................................................................................ 78 Valeurs que CloudFront affiche dans la console lors de la création ou de la mise à jour d'une distribution web ................................................................................................................... 79 Distribution ID (onglet General) ..................................................................................... 79 Distribution Status (onglet General) ................................................................................ 79 Last Modified (onglet General) ...................................................................................... 80 Domain Name (onglet General) ..................................................................................... 80 Conditions requises et recommandations pour l'utilisation d'Amazon EC2 et autres origines personnalisées .................................................................................................................... 80 Utilisation d'AWS WAF pour contrôler l'accès à votre contenu .................................................... 81 Restriction de la distribution géographique de votre contenu ...................................................... 82 Utilisation de la restriction géographique CloudFront ......................................................... 82 Utilisation d'un service de géolocalisation tiers ................................................................. 83 Configuration de Smooth Streaming à la demande ................................................................... 84 Configuration des téléchargements progressifs à la demande ..................................................... 85 Configuration d'Apple HTTP Live Streaming (HLS) à la demande ................................................ 86 Utilisation des distributions RTMP .................................................................................................. 87 Fonctionnement des distributions RTMP ................................................................................. 87 Liste des tâches du streaming multimédia avec RTMP .............................................................. 89 Création d'une distribution RTMP à l'aide de la console CloudFront ............................................. 90 Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution RTMP ............. 90 Nom de domaine d'origine (compartiment Amazon S3) ...................................................... 91 Retreindre l'accès au compartiment (uniquement Amazon S3) ............................................ 92 Identité d'accès à l'origine (Amazon S3 uniquement) ......................................................... 92 Commentaire relatif à la nouvelle identité (Amazon S3 uniquement) .................................... 92 Vos identités (Amazon S3 uniquement) .......................................................................... 92 Accorder les autorisations de lecture sur le compartiment (Amazon S3 uniquement) ............... 92 Catégorie de tarifs – .................................................................................................... 93 Noms de domaine alternatifs (CNAME) .......................................................................... 93 Journalisation ............................................................................................................. 93 Compartiment pour les journaux .................................................................................... 93 Préfixe de journal ........................................................................................................ 94 Commentaire .............................................................................................................. 94 Etat de la distribution ................................................................................................... 94 Restreindre l'accès des visionneuses (utiliser les URL signées) .......................................... 94 Utilisateurs de confiance .............................................................................................. 94 Numéros de comptes AWS ........................................................................................... 95 Valeurs que CloudFront affiche dans la console lors de la création ou de la mise à jour d'une distribution RTMP ................................................................................................................ 95 ID de distribution ......................................................................................................... 95 Etat ........................................................................................................................... 96 Dernière modification ................................................................................................... 96 Nom de domaine ........................................................................................................ 96 Configuration du lecteur multimédia ....................................................................................... 96 Fichiers MPEG ........................................................................................................... 97 Utilisation d'un compartiment Amazon S3 comme origine d'une distribution RTMP ......................... 97 Création de plusieurs distributions RTMP pour un serveur d'origine ............................................. 98 Restriction des accès avec Crossdomain.xml .......................................................................... 98 Codes d'erreur pour les distributions RTMP ............................................................................. 98 Dépannage des distributions RTMP ....................................................................................... 99 API Version 2016-01-13 iv Amazon CloudFront Guide du développeur Utilisation des objets .................................................................................................................. 100 Format des URL pour les objets CloudFront .......................................................................... 100 Format des URL publiques pour les objets dans Amazon S3 ............................................ 101 Format des URL publiques pour les objets dans une origine personnalisée ......................... 102 Impact des URL publiques sur l'invalidation de répertoires ............................................... 102 Format des URL signées ............................................................................................ 103 Traitement des demandes par CloudFront dans les requêtes HTTP et HTTPS ............................. 103 Augmenter la proportion de demandes servies à partir des caches périphériques CloudFront ......... 103 Spécifier pendant combien de temps CloudFront garde vos objets en cache ........................ 104 Mise en cache basée sur les paramètres de chaîne de requête ........................................ 104 Mise en cache basée sur des valeurs de cookie ............................................................. 105 Mise en cache basée sur des valeurs d'en-tête .............................................................. 105 Servir un contenu multimédia à l'aide de HTTP .............................................................. 106 Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête ............................................................................................................................ 106 Paramètres de chaîne de requête et distributions Web .................................................... 107 Paramètres de chaîne de requête et distributions RTMP .................................................. 108 Configurer CloudFront pour mettre en cache des objets en fonction de cookies ............................ 108 Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande ........... 110 En-têtes et distributions Web ....................................................................................... 110 En-têtes et distributions RTMP .................................................................................... 114 Transfert d'en-têtes personnalisés vers votre origine (distributions Web uniquement) .................... 114 Configuration de CloudFront de manière à transférer des en-têtes personnalisés vers votre origine ..................................................................................................................... 115 En-têtes personnalisés impossible à transférer à l'origine pour CloudFront .......................... 115 Utilisation des en-têtes personnalisés pour le partage des ressources cross-origin (CORS) .... 116 Utilisation des en-têtes personnalisés pour limiter l'accès à votre contenu sur une origine personnalisée ............................................................................................................ 116 Ajouter, supprimer et remplacer des objets dans une distribution ............................................... 117 Ajouter les objets que vous souhaitez que CloudFront distribue ........................................ 117 Mettre à jour des objets existants à l'aide de noms d'objet versionnés ................................ 118 Mettre à jour des objets existants à l'aide des mêmes noms d'objet ................................... 118 Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) ............................................................................................................... 119 Invalider des objets (distributions Web uniquement) ........................................................ 125 Personnaliser des réponses d'erreur ..................................................................................... 132 Créer ou mettre à jour un comportement de cache pour des pages d'erreur personnalisées .... 133 Modifier des codes de réponse .................................................................................... 133 Contrôler pendant combien de temps CloudFront garde les erreurs en cache ...................... 134 Réponse de CloudFront quand une page d'erreur personnalisée n'est pas disponible ............ 135 Tarification pour les pages d'erreur personnalisées ......................................................... 135 Configurer le comportement des réponses d'erreur ......................................................... 135 Traitement par CloudFront des demandes partielles pour un objet (Range GET) .......................... 136 Spécifier un objet racine par défaut (distributions Web uniquement) ........................................... 137 Service de fichiers compressés ........................................................................................... 139 Utilisation de CloudFront pour compresser votre contenu ................................................. 140 Utilisation d'une origine personnalisée pour compresser le contenu .................................... 143 Comportement des demandes et des réponses .............................................................................. 144 Comportement des demandes et des réponses pour les origines Amazon S3 .............................. 144 Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront ................................................................................................................ 144 Traitement des réponses de votre serveur d'origine Amazon S3 par CloudFront ................... 149 Comportement des demandes et des réponses pour les origines personnalisées ......................... 151 Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront ................................................................................................................ 151 Traitement des réponses de votre serveur d'origine personnalisée par CloudFront ................ 161 Traitement des codes de statut HTTP 3xx provenant de votre origine par CloudFront .................... 164 API Version 2016-01-13 v Amazon CloudFront Guide du développeur Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront ........................................................................................................................ 164 Traitement des erreurs par CloudFront lorsque vous avez configuré des pages d'erreur personnalisées .......................................................................................................... 165 Traitement des erreurs par CloudFront lorsque vous n'avez pas configuré des pages d'erreur personnalisées .......................................................................................................... 166 Codes de statut HTTP 4xx et 5xx mis en cache par CloudFront ........................................ 167 Service d'un contenu privé via CloudFront ..................................................................................... 168 Présentation du contenu privé ............................................................................................. 168 Restriction de l'accès aux objets des caches périphériques CloudFront .............................. 169 Restriction de l'accès aux objets des compartiments Amazon S3 ....................................... 169 Utilisation d'un serveur HTTP pour le contenu privé ................................................................ 169 Liste des tâches : offre d'un contenu privé ............................................................................. 171 Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 ............ 172 Création d'une identité d'accès à l'origine et ajout à votre distribution ................................. 173 Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 ........................................................................................... 175 Utilisation d'une identité d'accès à l'origine dans les régions Amazon S3 prenant uniquement en charge l'authentification Signature version 4 .............................................................. 177 Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) ................................................................................................... 178 Création de paires de clés CloudFront pour vos utilisateurs de confiance ............................ 179 Reformatage de la clé privée CloudFront (.NET et Java uniquement) ................................. 181 Ajout d'utilisateurs de confiance à votre distribution ......................................................... 181 Vérification que les utilisateurs de confiance sont actifs (facultatif) ..................................... 183 Rotation de paires de clés CloudFront .......................................................................... 184 Choix entre les URL signées et les cookies signés ................................................................. 185 Utilisation des URL signées et des cookies signés .......................................................... 185 Utilisation des URL signées ................................................................................................ 186 Choix entre les stratégies prédéfinies et les stratégies personnalisées pour les URL signées .. 186 Fonctionnement des URL signées ................................................................................ 187 Choix de la durée de validité des URL signées .............................................................. 188 Quand CloudFront vérifie-t-il la date et l'heure d'expiration dans une URL signée ? ............... 188 Exemple de code et outils tiers .................................................................................... 188 Création d'une URL signée à l'aide d'une stratégie prédéfinie ........................................... 190 Création d'une URL signée utilisant une stratégie personnalisée ....................................... 197 Utilisation de cookies signés ............................................................................................... 207 Choix entre les stratégies prédéfinies et les stratégies personnalisées pour les cookies signés ...................................................................................................................... 207 Fonctionnement des cookies signés ............................................................................. 208 Prévention du mauvais usage des cookies signés .......................................................... 208 Quand CloudFront vérifie-t-il la date et l'heure d'expiration d'un cookie signé ? ..................... 209 Exemple de code et outils tiers .................................................................................... 209 Définition de cookies signés à l'aide d'une stratégie prédéfinie .......................................... 209 Définition de cookies signés utilisant une stratégie personnalisée ...................................... 215 Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 ........... 223 Exemples de code pour la création de la signature d'une URL signée ........................................ 224 Créer une signature d'URL avec Perl ........................................................................... 224 Créer une signature d'URL avec PHP ........................................................................... 226 Créer une signature d'URL avec C# et le .NET framework ............................................... 228 Créer une signature d'URL avec Java .......................................................................... 234 Utilisation d'une connexion HTTPS pour accéder à vos objets .......................................................... 237 Mode de fonctionnement de CloudFront avec les connexions HTTPS ........................................ 238 Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine ............................................................................................................................. 239 Protocoles et chiffrements pris en charge .............................................................................. 242 Utilisation de noms de domaines alternatifs et de HTTPS ........................................................ 243 Déterminer comment CloudFront traite les requêtes HTTPS ............................................. 244 API Version 2016-01-13 vi Amazon CloudFront Guide du développeur Exigences et limites relatives à l'utilisation des certificats SSL/TLS avec CloudFront .............. 245 Utilisation de noms de domaines alternatifs avec HTTPS ................................................. 247 Détermination de la taille de la clé publique d'un certificat SSL/TLS ................................... 249 Rotation des certificats SSL/TLS .................................................................................. 249 Repasser d'un certificat SSL/TLS personnalisé au certificat CloudFront par défaut ................ 250 Passage d'un certificat SSL/TLS personnalisé avec adresses IP dédiées à l'extension SNI ..... 251 Frais associés aux connexions HTTPS ................................................................................. 252 Authentification et contrôle d'accès ............................................................................................... 253 Authentication ................................................................................................................... 253 Contrôle d'accès ................................................................................................................ 254 Présentation de la gestion de l'accès .................................................................................... 255 ARN pour les ressources CloudFront ............................................................................ 255 Présentation de la propriété des ressources .................................................................. 255 Gestion de l'accès aux ressources ............................................................................... 256 Spécification des éléments d'une stratégie : ressources, actions, effets et mandataires .......... 257 Spécification des conditions dans une stratégie .............................................................. 258 Utilisation de stratégies IAM pour CloudFront ......................................................................... 258 Autorisations requises pour utiliser la console CloudFront ................................................ 259 Stratégies gérées AWS (prédéfinies) pour CloudFront ..................................................... 260 Exemples de stratégies gérées par le client ................................................................... 261 Référence des autorisations d'API de CloudFront ................................................................... 263 Autorisations requises pour les actions sur les Distributions Web ....................................... 264 Autorisations requises pour les actions sur les distributions RTMP ..................................... 264 Autorisations requises pour les actions sur les invalidations .............................................. 265 Autorisations requises pour les actions sur les identités d'accès à l'origine .......................... 265 Autorisations requises pour les actions sur les balises ..................................................... 265 Journaux d'accès ....................................................................................................................... 267 Fonctionnement de la journalisation ..................................................................................... 267 Choix d'un compartiment Amazon S3 pour les journaux d'accès ................................................ 268 Autorisations Amazon S3 requises pour accéder à vos fichiers journaux ..................................... 268 Format de nom de fichier ................................................................................................... 269 Chronologie de la livraison des fichiers journaux .................................................................... 269 Analyse des journaux d'accès ............................................................................................. 270 Modification de vos paramètres de journalisation .................................................................... 270 Suppression des fichiers journaux d'un compartiment Amazon S3 ............................................. 270 Format de fichier journal ..................................................................................................... 271 Format de fichier journal de distribution web .................................................................. 272 Format de fichier journal de distribution RTMP ............................................................... 278 Frais des journaux d'accès ................................................................................................. 280 Supervision de l'activité CloudFront avec CloudWatch ..................................................................... 281 Téléchargement des données au format CSV ........................................................................ 283 Informations sur le rapport .......................................................................................... 283 Données du rapport CloudWatch Metrics ...................................................................... 283 Capturer des demandes d'API avec CloudTrail .............................................................................. 285 Informations CloudFront dans les fichiers journaux CloudTrail ................................................... 285 Présentation des entrées des fichiers journaux CloudFront ....................................................... 286 Balisage de distributions Amazon CloudFront ................................................................................ 292 Restrictions liées aux balises .............................................................................................. 293 Ajout, modification et suppression de balises pour les distributions ............................................ 293 Dépannage ............................................................................................................................... 294 Je ne peux pas afficher les fichiers de ma distribution web. ...................................................... 294 Etes-vous inscrit à CloudFront et à Amazon S3 ? ........................................................... 294 Votre compartiment Amazon S3 et vos autorisations d'objet sont-ils définis correctement ? ..... 294 Votre nom de domaine alternatif (CNAME) est-il configuré correctement ? .......................... 295 Référencez-vous la bonne URL pour votre distribution CloudFront ? .................................. 295 Avez-vous besoin d'aide pour résoudre un problème lié à une origine personnalisée ? .......... 295 Je ne peux pas afficher les fichiers de ma distribution RTMP. ................................................... 296 Message d'erreur : Certificate: <certificate-id> is being used by CloudFront. ................................ 296 API Version 2016-01-13 vii Amazon CloudFront Guide du développeur Test de charge CloudFront ......................................................................................................... 297 Didacticiels pour la diffusion en streaming ..................................................................................... 298 Streaming en direct ........................................................................................................... 298 Streaming à la demande .................................................................................................... 298 Streaming RTMP ............................................................................................................... 298 Live HTTP Streaming avec CloudFront et Adobe Media Server 5.0 ............................................ 298 Présentation ............................................................................................................. 299 Etapes de configuration du streaming en direct .............................................................. 300 Création d'un compte Amazon Web Services ................................................................. 300 Création d'une paire de clés Amazon EC2 .................................................................... 301 Inscription à Adobe Media Server ................................................................................. 301 Création d'une pile AWS CloudFormation pour le streaming en direct ................................. 302 Vérification de l'exécution d'Adobe Media Server ............................................................ 304 Configuration d'Adobe Flash Media Live Encoder pour publier un streaming en direct ............ 304 Intégration de Strobe Media Playback pour un flux HTTP en direct Amazon CloudFront dans une application Web .................................................................................................. 306 Suppression d'une pile AWS CloudFormation et d'un volume Amazon EBS pour le streaming en direct ................................................................................................................... 308 Questions fréquentes (FAQ) ........................................................................................ 308 Documentation supplémentaire .................................................................................... 314 Live Smooth Streaming avec Amazon CloudFront et IIS Media Services 4.1 ................................ 315 Présentation de Live Smooth Streaming avec Amazon Web Services ................................. 315 Création d'un compte Amazon Web Services ................................................................. 316 Création d'une paire de clés Amazon EC2 .................................................................... 317 Création d'une pile AWS CloudFormation pour Live Smooth Streaming .............................. 317 Vérification de l'exécution de votre instance Amazon EC2 Windows Server Instance ............. 319 Obtention de votre mot de passe de Windows ............................................................... 319 Encodage de votre streaming en direct ......................................................................... 320 Affichage de votre Live Smooth Stream ........................................................................ 320 Suppression de votre pile AWS CloudFormation Live Smooth Streaming ............................ 321 Questions fréquentes (FAQ) ........................................................................................ 321 Documentation supplémentaire .................................................................................... 323 Streaming en direct avec Wowza Streaming Engine 4.2 .......................................................... 324 Création d'un compte Amazon Web Services ................................................................. 324 Création d'une paire de clés Amazon EC2 .................................................................... 325 Obtention d'une licence pour Wowza Streaming Engine 4.2 .............................................. 325 Abonnement à Wowza Streaming Engine 4.2 via AWS Marketplace ................................... 325 Création d'une pile AWS CloudFormation pour le streaming en direct ................................. 326 Vérification de l'exécution de Wowza Streaming Engine 4.2 .............................................. 328 Configuration d'un encodeur pour publier un flux en direct ................................................ 328 Lecture du flux en direct dans une application web ......................................................... 330 Suppression d'une pile AWS CloudFormation pour le streaming en direct ........................... 331 Questions fréquentes (FAQ) ........................................................................................ 331 Documentation supplémentaire .................................................................................... 333 Streaming HTTP en direct avec CloudFront et une origine HTTP .............................................. 334 Création d'une distribution CloudFront pour le streaming en direct ..................................... 334 Configuration des lecteurs web pour lire le flux en direct .................................................. 335 (Facultatif) Suppression d'une pile AWS CloudFormation Stack pour le streaming en direct .... 335 Streaming multimédia à la demande avec Unified Streaming .................................................... 336 Création d'un compte Amazon Web Services ................................................................. 337 Création d'une paire de clés Amazon EC2 .................................................................... 337 Abonnement à Unified Streaming ................................................................................. 338 Création d'une pile AWS CloudFormation pour le streaming à la demande .......................... 338 Vérification de l'exécution du serveur Unified Streaming ................................................... 341 Téléchargement de vos fichiers multimédias sur Amazon S3 ............................................ 341 Lecture d'un flux à la demande dans une application web test .......................................... 342 Suppression d'une pile AWS CloudFormation et d'un compartiment Amazon S3 pour le streaming à la demande ............................................................................................. 345 API Version 2016-01-13 viii Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) ........................................................................................ 345 Documentation supplémentaire .................................................................................... 347 Streaming de vidéos à la demande avec CloudFront et Adobe Flash Player ................................ 349 Création d'un compartiment Amazon S3 ....................................................................... 349 Création de distributions CloudFront Web et RTMP ........................................................ 350 Création d'un projet Flash avec Adobe Flash Builder ....................................................... 350 Téléchargement de fichiers multimédias et Flash Builder dans un compartiment Amazon S3 ... 352 Lecture du fichier multimédia ....................................................................................... 352 Streaming de vidéos à la demande avec CloudFront et Flowplayer pour Adobe Flash Player .......... 353 Chargement de fichiers multimédias et fichiers Flowplayer sur un compartiment Amazon S3 ... 353 Création de distributions CloudFront Web et RTMP ........................................................ 354 Intégration d'une vidéo dans une page HTML ................................................................ 355 Streaming de vidéos à la demande avec CloudFront et JW Player ............................................. 358 Téléchargement de fichiers multimédias et JW Player dans un compartiment Amazon S3 ...... 358 Création de distributions CloudFront Web et RTMP ........................................................ 359 Intégration d'une vidéo dans une page Web .................................................................. 360 Téléchargement du fichier HTML et lecture de la vidéo .................................................... 361 Restrictions ............................................................................................................................... 362 Ressources .............................................................................................................................. 365 Documentation supplémentaire Amazon CloudFront ................................................................ 365 Obtention de support ......................................................................................................... 366 Outils et kits de développement CloudFront ........................................................................... 366 Utilisation de la journalisation CloudFront .............................................................................. 366 Conseils supplémentaires du blog d'Amazon Web Services ...................................................... 366 Invalidation d'objets ............................................................................................................ 367 Distribution de fichiers multimédias de streaming .................................................................... 367 Outils et exemples de codes pour la configuration de contenu privé ........................................... 367 Utilisation de CloudFront avec un système de gestion de contenu ............................................. 368 Historique du document .............................................................................................................. 370 AWS Glossary .......................................................................................................................... 385 API Version 2016-01-13 ix Amazon CloudFront Guide du développeur Qu'est-ce qu'Amazon CloudFront ? Rubriques • Diffusion de contenu par CloudFront (p. 2) • Emplacements et plages d'adresses IP des serveurs périphériques CloudFront. (p. 4) • Conformité DSS d'PCI (p. 4) CloudFront est un service Web qui accélère la distribution de votre contenu Web statique et dynamique (par exemple, les fichiers .html, .css, .php et image) à destination des utilisateurs finaux. CloudFront diffuse votre contenu au travers d'un réseau mondial de centres de données appelés emplacements périphériques. Quand un utilisateur demande le contenu que vous proposez avec CloudFront, il est dirigé vers l'emplacement périphérique qui fournit la latence la plus faible et, par conséquent, le contenu est remis avec les meilleures performances possibles. Si le contenu se trouve déjà dans l'emplacement périphérique avec la plus faible latence, CloudFront le remet immédiatement. Si le contenu ne se trouve pas encore dans cet emplacement périphérique, CloudFront l'extrait d'un compartiment Amazon S3 ou d'un serveur HTTP (par exemple, un serveur web) que vous avez identifié comme étant la source de la version définitive de votre contenu. Il est plus facile d'illustrer ce concept par un exemple. Supposons que vous diffusez l'image suivante à partir d'un serveur web traditionnel, et non pas à partir de CloudFront : (Cet image appartient à la NASA et provient du site Web Visible Earth, http://visibleearth.nasa.gov/.) Vous diffusez l'image au moyen de l'URL http://example.com/globe_west_540.png. Vos utilisateurs peuvent facilement naviguer sur cette URL et voir l'image, mais ils ignorent probablement que leur requête a été transmise d'un réseau à l'autre jusqu'à trouver l'image par le biais de l'enchevêtrement complexe de réseaux interconnectés qui forment Internet. Supposez que le serveur web que vous utilisez pour transmettre l'image se trouve à Seattle, Washington, USA, et qu'un utilisateur d'Austin, Texas, USA demande cette image. La liste du parcours ci-dessous (gracieusement fournie par www.WatchMouse.com) indique une possibilité d'acheminement de cette requête. API Version 2016-01-13 1 Amazon CloudFront Guide du développeur Diffusion de contenu par CloudFront Dans cet exemple, la requête a été réacheminée 10 fois aux Etats-Unis avant de retrouver l'image, ce qui ne constitue pas une valeur inhabituelle. Si votre utilisateur était en Europe, la requête passerait par encore plus de réseaux pour atteindre votre serveur à Seattle. Le nombre de réseaux et la distance devant être parcourue par la requête et par l'image influent considérablement sur les performances, la fiabilité et la disponibilité de l'image. CloudFront accélère la distribution en acheminant chaque requête d'utilisateur vers l'emplacement périphérique le mieux placé pour servir votre contenu. Il s'agit normalement de l'emplacement périphérique CloudFront qui offre la latence la plus faible. Ceci réduit énormément le nombre de réseaux par lesquels les requêtes de vos utilisateurs doivent transiter et améliore ainsi les performances. Les utilisateurs bénéficient d'une latence plus faible (la durée nécessaire au chargement du premier octet de l'objet) et de meilleurs taux de transfert de données. Il en résulte également une fiabilité et une disponibilité accrues, car des copies de vos objets se trouvent désormais dans plusieurs emplacements périphériques situés aux quatre coins du monde. Pour une liste des emplacements de serveurs périphériques CloudFront, consultez The Amazon CloudFront Global Edge Network sur la page d'informations relatives aux produits CloudFront. Diffusion de contenu par CloudFront Après une configuration initiale, CloudFront œuvre de manière invisible pour accélérer la diffusion de votre contenu. Cette présentation aborde les étapes effectuées avant que votre premier utilisateur n'accède à votre application ou site Web, ainsi que la manière dont CloudFront diffuse votre contenu une fois la configuration terminée. La configuration de CloudFront fait appel à quelques étapes relativement simples : Comment configurer CloudFront pour diffuser votre contenu 1. Configurez vos serveurs d'origine, desquels CloudFront tient vos fichiers à distribuer à partir des emplacements périphériques CloudFront situés partout au monde. Un serveur d'origine stocke la version d'origine définitive de vos objets. Si vous diffusez du contenu sur HTTP, votre serveur d'origine est soit un compartiment Amazon S3 soit un serveur HTTP, tel qu'un serveur web. Votre serveur HTTP peut être exécuté sur une instance Amazon Elastic Compute Cloud (Amazon EC2) ou sur un serveur géré par vous-même ; ces serveurs sont également appelés origines personnalisées. Si vous distribuez des fichiers multimédias sur demande au moyen d'un protocole Adobe Media Server RTMP, votre serveur d'origine est toujours un compartiment Amazon S3. 2. Téléchargez vos fichiers sur vos serveurs d'origine. Vos fichiers, également connus sous le nom d'objets, incluent normalement des pages Web, des images et des fichiers multimédias, mais il peut s'agir de n'importe quel élément susceptible d'être diffusé via HTTP ou une version prise en charge d'Adobe RTMP, le protocole utilisé par Adobe Flash Media Server. Si vous utilisez un compartiment Amazon S3 comme serveur d'origine, vous pouvez rendre les objets de votre compartiment accessibles en lecture au public. Toute personne connaissant les URL CloudFront de vos objets pourra ainsi y accéder. Vous avez également la possibilité de garder des objets privés et de contrôler leur accès. Voir Service d'un contenu privé via CloudFront (p. 168). 3. Créez une distribution CloudFront qui indique à CloudFront auprès de quels serveurs d'origine récupérer vos fichiers lorsque les utilisateurs demandent des fichiers par le biais de votre API Version 2016-01-13 2 Amazon CloudFront Guide du développeur Diffusion de contenu par CloudFront application ou site Web. Au même moment, spécifiez les détails de types suivants : si CloudFront doit consigner toutes les requêtes et si vous souhaitez activer la distribution dès sa création. 4. CloudFront envoie la configuration de votre distribution (et non pas votre contenu) à tous ses emplacements périphériques, soit un ensemble de serveurs dans des centres de données situées dans diverses zones géographiques où CloudFront met en cache des copies de vos objets. 5. Tandis que vous développez votre site Web ou votre application, utilisez le nom de domaine que CloudFront fournit pour vos URL. Si CloudFront envoie, par exemple, d111111abcdef8.cloudfront.net comme nom de domaine pour votre distribution, l'URL de logo.jpg dans votre compartiment Amazon S3 (ou dans le répertoire racine d'un serveur HTTP) sera http://d111111abcdef8.cloudfront.net/logo.jpg. Vous pouvez également configurer votre distribution CloudFront de manière à utiliser votre propre nom de domaine. Dans ce cas, l'URL pourrait être http://www.example.com/logo.jpg. 6. Vous pouvez aussi configurer votre serveur d'origine de manière à ajouter des en-têtes aux fichiers ; ces en-têtes indiquent combien de temps les fichiers doivent rester dans le cache des emplacements périphériques CloudFront. Par défaut, chaque objet reste dans l'emplacement périphérique pendant 24 heures avant d'arriver à expiration. Le délai d'expiration minimum est de 0 secondes. Il n'existe pas de délai d'expiration maximum. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Comment CloudFront diffuse du contenu à vos utilisateurs Après avoir configuré CloudFront pour diffuser votre contenu, voici ce qui se produit lorsque des utilisateurs demandent vos objets : 1. Un utilisateur accède à votre application ou à votre site Web et demande un ou plusieurs objets, tels qu'un fichier d'image et un fichier HTML. 2. DNS achemine la requête à l'emplacement périphérique CloudFront qui la diffusera le mieux (normalement l'emplacement périphérique CloudFront le plus proche en matière de latence), et achemine la requête jusqu'à cet emplacement. 3. Au niveau de cet emplacement périphérique, CloudFront consulte son cache en fonction des fichiers demandés. S'ils se trouvent dans le cache, CloudFront les renvoie à l'utilisateur. S'ils ne s'y trouvent pas, CloudFront procède comme indiqué ci-dessous. 4. a. CloudFront compare la demande avec les spécifications de votre distribution et transmet la requête des fichiers au serveur d'origine applicable pour le type de fichier correspondant, soit par exemple votre compartiment Amazon S3 pour les fichiers d'images et votre serveur HTTP pour les fichiers HTML. b. Les serveurs d'origine renvoient les fichiers vers l'emplacement périphérique CloudFront. c. Dès l'arrivée du premier octet en provenance de l'origine, CloudFront commence à retransmettre les fichiers à l'utilisateur. CloudFront ajoute aussi les fichiers au cache de l'emplacement périphérique pour la prochaine fois où quelqu'un en aura besoin. Lorsqu'un objet se trouve dans un cache périphérique pendant 24 heures ou pour la durée spécifiée dans vos en-têtes de fichiers, CloudFront procède comme indiqué ci-dessous. a. CloudFront réachemine la requête suivante pour l'objet en direction de votre origine afin de déterminer si l'emplacement périphérique dispose de la dernière version en date. b. Si la version de l'emplacement périphérique est la plus récente, CloudFront la transmet à l'utilisateur. Si la version de l'emplacement périphérique n'est pas la plus récente, votre origine envoie la dernière version à CloudFront qui transmet l'objet à votre utilisateur et stocke cette dernière version en date dans le cache de l'emplacement d'origine. API Version 2016-01-13 3 Amazon CloudFront Guide du développeur Emplacements et plages d'adresses IP des serveurs périphériques CloudFront. Emplacements et plages d'adresses IP des serveurs périphériques CloudFront. Pour une liste des emplacements de serveurs périphériques CloudFront, consultez The Amazon CloudFront Edge Network sur la page d'informations détaillées relatives à Amazon CloudFront. Amazon Web Services (AWS) publie ses plages d'adresses IP actuelles au format JSON. Pour afficher les plages actuelles, téléchargez ip-ranges.json. Pour plus d'informations, consultez AWS IP Address Ranges dans Amazon Web Services General Reference. Pour trouver les plages d'adresses IP associées aux serveurs périphériques CloudFront, recherchez la chaîne suivante dans ip-ranges.json : "service": "CLOUDFRONT" Conformité DSS d'PCI CloudFront prend en charge le traitement, le stockage et la transmission des données de cartes bancaires par un commerçant ou un fournisseur de services, et a été validé comme étant conforme à la norme PCI (Payment Card Industry) DSS (Data Security Standard). Pour plus d'information sur PCI DSS, et notamment sur la manière de demander une copie de l'AWS PCI Compliance Package, consultez PCI DSS, niveau 1. Comme bonne pratique de sécurité, nous vous recommandons de ne pas mettre en cache d'informations de cartes de crédit dans les caches périphériques CloudFront. Vous pouvez configurer, par exemple, votre origine afin qu'elle inclue un en-tête Cache-Control:no-cache="champ-nom" dans les réponses qui contiennent des informations de cartes de crédit telles que les quatre derniers chiffres d'un numéro de carte et les informations de contact du propriétaire de la carte. API Version 2016-01-13 4 Amazon CloudFront Guide du développeur Rapports AWS de facturation et d'utilisation pour CloudFront Amazon CloudFront est conçu afin que vous n'ayez rien à débourser d'avance et que vous n'ayez pas à vous engager sur la taille de votre futur contenu. Comme pour les autres services AWS, vous payez au fur et à mesure, uniquement pour ce que vous utilisez. Le diagramme et le tableau suivants résument les opérations payantes liées à CloudFront. Votre facture mensuelle envoyée par AWS sépare l'usage et les coûts correspondants selon les fonctions et services AWS. Le tableau ci-dessous indique les opérations payantes illustrées dans le diagramme. Opération payante Commentaires Stockage dans un compartiment Amazon S3 Vous payez des frais de stockage Amazon S3 normaux pour stocker des objets dans votre compartiment ; ils apparaissent dans la partie Amazon S3 de votre facture AWS. Diffusion d'objets à partir d'emplacements périphériques Des frais CloudFront s'appliquent lorsque CloudFront répond à des requêtes pour vos objets. Ils sont inférieurs aux frais Amazon S3 correspondants. Les frais CloudFront apparaissent dans la partie CloudFront de votre facture AWS. Pour en savoir plus, consultez la page Tarification Amazon CloudFront. Envoi de données à votre origine Des frais CloudFront s'appliquent lorsque des utilisateurs transfèrent des données vers votre origine, ce qui inclut les requêtes DELETE, OPTIONS, PATCH, POST et PUT. Les frais CloudFront apparaissent dans la partie CloudFront de votre facture AWS. Pour en savoir plus, consultez la page Tarification Amazon CloudFront. Note Des frais supplémentaires sont également perçus pour les requêtes HTTPS. Pour en savoir plus, consultez la page Tarification Amazon CloudFront. AWS fournit deux rapports d'utilisation relatifs à CloudFront : API Version 2016-01-13 5 Amazon CloudFront Guide du développeur Rapport de facturation AWS pour CloudFront • Le rapport de facturation est une présentation globale de toutes les activités liées aux services AWS que vous utilisez, y compris CloudFront. Pour de plus amples informations, veuillez consulter Rapport de facturation AWS pour CloudFront (p. 6). • Le rapport d'utilisation est un résumé des activités pour un service spécifique, avec les totaux horaires, quotidiens ou mensuels. Pour de plus amples informations, veuillez consulter Rapport d'utilisation AWS pour CloudFront (p. 7). Vous pouvez également consulter des diagrammes d'utilisation qui fournissent une représentation graphique de votre utilisation de CloudFront. Pour de plus amples informations, veuillez consulter Rapports CloudFront Usage (p. 22). Rapport de facturation AWS pour CloudFront Vous pouvez consulter un résumé de l'utilisation et des frais AWS (répertoriés par services) sur la page Bills d'AWS Management Console. Vous pouvez aussi télécharger une version plus détaillée du rapport au format CSV. Le rapport de facturation détaillé inclut les valeurs suivantes en ce qui concerne CloudFront : • ProductCode — AmazonCloudFront • UsageType — L'une des valeurs suivantes : • Code qui identifie le type de transfert de données • Invalidations • SSL-Cert-Custom Pour de plus amples informations, veuillez consulter Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront (p. 8). • ItemDescription — Description des tarifs pour UsageType. • Usage Start Date/Usage End Date — Jour auquel s'applique l'utilisation, en heure universelle coordonnée (UTC). • Usage Quantity — L'une des valeurs suivantes : • Nombre de requêtes au cours de la période spécifiée • Quantité de données transférée en gigaoctets • Nombre d'objets invalidés • Somme des mois au prorata pendant lesquels des certificats SSL étaient associés à des distributions CloudFront activées. Si vous avez, par exemple, un certificat associé à une distribution activée pendant un mois tout entier et un autre certificat associé à une distribution activée pendant la moitié du mois, cette valeur sera 1,5. Pour afficher un résumé des informations de facturation et télécharger le rapport de facturation détaillé 1. Connectez-vous à AWS Management Console via https://console.aws.amazon.com/console/ home. 2. Dans la barre de titre, cliquez sur votre nom utilisateur IAM, puis sur Billing & Cost Management. 3. Dans le volet de navigation, cliquez sur Bills. 4. Afin de consulter le résumé d'informations pour CloudFront, recherchez Details et cliquez sur CloudFront. 5. Pour télécharger un rapport de facturation détaillé au format CSV, cliquez sur Download CSV, puis suivez les invites à l'écran pour enregistrer le rapport. API Version 2016-01-13 6 Amazon CloudFront Guide du développeur Rapport d'utilisation AWS pour CloudFront Rapport d'utilisation AWS pour CloudFront AWS fournit un rapport d'utilisation CloudFront plus détaillé que le rapport de facturation mais moins détaillé que les journaux d'accès CloudFront. Le rapport d'utilisation offre des totaux de données par heure, jour ou mois, et répertorie les opérations par région et type d'utilisation, comme par exemple les données transférées hors de la région Australie. Le rapport d'utilisation CloudFront inclut les valeurs suivantes : • Service — AmazonCloudFront • Operation — Méthode HTTP. Les valeurs incluent DELETE, GET, HEAD, OPTIONS, PATCH, POST et PUT. • UsageType — L'une des valeurs suivantes : • Code qui identifie le type de transfert de données • Invalidations • SSL-Cert-Custom Pour de plus amples informations, veuillez consulter Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront (p. 8). • Resource — ID de la distribution CloudFront associée à l'utilisation ou ID d'un certificat SSL associé à une distribution CloudFront. • StartTime/EndTime — Jour auquel s'applique l'utilisation, en heure universelle coordonnée (UTC). • UsageValue — (1) Nombre de requête pendant la période spécifiée ou (2) la quantité de données transférée en octets. Si vous utilisez Amazon S3 comme origine pour CloudFront, pensez aussi à exécuter le rapport d'utilisation pour Amazon S3. Néanmoins, la partie qui s'applique à votre utilisation CloudFront peut ne pas être très claire si vous utilisez Amazon S3 autrement que comme origine pour vos distributions CloudFront. Tip Afin d'obtenir plus de détails sur toutes les requêtes utilisateurs reçues par CloudFront pour vos objets, activez les journaux d'accès CloudFront associés à votre distribution. Pour de plus amples informations, veuillez consulter Journaux d'accès (p. 267). Pour télécharger le rapport d'utilisation pour CloudFront ou Amazon S3 1. Connectez-vous à AWS Management Console via https://console.aws.amazon.com/console/ home. 2. 3. 4. 5. Dans la barre de titre, cliquez sur votre nom utilisateur IAM, puis sur Billing & Cost Management. Dans le volet de navigation, cliquez sur Reports. Sous AWS Usage Report, cliquez sur AWS Usage Report. Dans la liste Service, cliquez sur CloudFront ou Amazon Simple Storage Service. 6. Sélectionnez les paramètres applicables : • Usage Types — Pour une explication détaillée des types d'utilisation CloudFront, consultez the section called “Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront” (p. 8). Pour Amazon S3, sélectionnez All Usage Types. • Operation — Sélectionnez All Operations. • Time Period — Sélectionnez la période à couvrir par le rapport. API Version 2016-01-13 7 Amazon CloudFront Guide du développeur Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront • Report Granularity — Indiquez si vous souhaitez que le rapport inclue les sous-totaux par heure, jour ou mois. 7. Cliquez sur le bouton de téléchargement pour le format désiré. 8. Suivez les invites à l'écran pour afficher ou enregistrer le rapport. Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront Votre facture AWS pour le service CloudFront inclut des codes et des abréviations qui ne sont pas forcément évidents à première vue. La première colonne du tableau suivant reprend les éléments qui apparaissent dans votre facture et explique leur signification. De plus, vous pouvez obtenir un rapport d'utilisation AWS pour CloudFront plus détaillé que la facture AWS pour CloudFront. La seconde colonne du tableau reprend les éléments du rapport d'utilisation et indique la corrélation entre les éléments de la facture et ceux du rapport d'utilisation. La plupart des codes des deux colonnes comportent une abréviation à deux lettres qui indique l'emplacement de l'activité. Dans le tableau suivant, région dans un code est remplacé par l'une des abréviations suivantes à deux lettres dans votre facture AWS et votre rapport d'utilisation : • AP : Hong Kong, Philippines, Corée du Sud, Singapour et Taïwan (Asie-Pacifique) • AU : Australie • CA : Canada • EU : Europe • IN : Inde • JP : Japon • SA : Amérique du Sud • US : Etats-Unis Pour plus d'informations sur la tarification par région, consultez Tarification Amazon CloudFront. Note Ce tableau n'inclut pas les frais de transfert d'objets d'un compartiment Amazon S3 vers des emplacements périphériques CloudFront. Le cas échéant, ces frais apparaissent dans la partie AWS Data Transfer de votre facture AWS. Eléments de votre facture CloudFront Valeurs de la colonne Usage Type du rapport d'utilisation CloudFront région-DataTransfer-Out-Bytes Distributions Web : Total des octets diffusés par CloudFront pour les distributions Web et RTMP : • région-Out-Bytes-HTTP-Static : octets diffusés via HTTP pour des objets avec une durée de vie ≥ 3600 secondes • région-Out-Bytes-HTTPS-Static : octets diffusés via HTTPS pour des objets avec une durée de vie ≥ 3600 secondes • région-Out-Bytes-HTTP-Dynamic : octets diffusés via HTTP pour des objets avec une durée de vie < 3600 secondes • Distributions Web : total des octets diffusés à partir d'emplacements périphériques CloudFront dans région en réponse aux requêtes GET et HEAD des utilisateurs API Version 2016-01-13 8 Amazon CloudFront Guide du développeur Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront Eléments de votre facture CloudFront Valeurs de la colonne Usage Type du rapport d'utilisation CloudFront • Distributions RTMP : total des octets transférés à partir d'emplacements périphériques CloudFront dans région pour des utilisateurs finaux • région-Out-Bytes-HTTPS-Dynamic : octets diffusés via HTTPS pour des objets avec une durée de vie < 3600 secondes • région-Out-Bytes-HTTP-Proxy : octets renvoyés par CloudFront aux visionneuses via HTTP en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT. • région-Out-Bytes-HTTPS-Proxy : octets renvoyés par CloudFront aux visionneuses via HTTPS en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT. Distributions RTMP : • région-FMS-Out-Bytes région-DataTransfer-Out-OBytes région-Out-OBytes-HTTP-Proxy Distributions Web uniquement : total des octets transférés à partir d'emplacements périphériques CloudFront à votre origine en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT. Total des octets transférés via HTTP à partir d'emplacements périphériques CloudFront à votre origine en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT. région-Out-OBytes-HTTPS-Proxy Total des octets transférés via HTTPS à partir d'emplacements périphériques CloudFront à votre origine en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT. région-Requests-Tier1 région-Requests-HTTP-Static Distributions Web uniquement : nombre de requêtes HTTP GET et HEAD Nombre de requêtes HTTP GET et HEAD diffusées pour des objets avec une durée de vie ≥ 3600 secondes région-Requests-HTTP-Dynamic Nombre de requêtes HTTP GET et HEAD diffusées pour des objets avec une durée de vie < 3600 secondes région-Requests-Tier2-HTTPS région-Requests-HTTPS-Static Distributions Web uniquement : nombre de requêtes HTTPS GET et HEAD Nombre de requêtes HTTPS GET et HEAD diffusées pour des objets avec une durée de vie ≥ 3600 secondes région-Requests-HTTPS-Dynamic Nombre de requêtes HTTPS GET et HEAD diffusées pour des objets avec une durée de vie < 3600 secondes région-Requests-HTTP-Proxy région-Requests-HTTP-Proxy Distributions Web uniquement : nombre de requêtes HTTP DELETE, OPTIONS, PATCH, POST et PUT transmises par CloudFront à votre origine Identique à l'élément correspondant dans votre facture CloudFront API Version 2016-01-13 9 Amazon CloudFront Guide du développeur Interprétation de votre facture AWS et de votre rapport d'utilisation pour CloudFront Eléments de votre facture CloudFront Valeurs de la colonne Usage Type du rapport d'utilisation CloudFront région-Requests-HTTPS-Proxy région-Requests-HTTPS-Proxy Distributions Web uniquement : nombre de requêtes HTTPS DELETE, OPTIONS, PATCH, POST et PUT transmises par CloudFront à votre origine Identique à l'élément correspondant dans votre facture CloudFront Invalidations Invalidations Distributions Web uniquement : coût d'invalidation d'objets (suppression d'objets des emplacements périphériques CloudFront) ; pour plus de détails, consultez Paiement pour une invalidation d'objet (p. 131) Identique à l'élément correspondant dans votre facture CloudFront SSL-Cert-Custom SSL-Cert-Custom Distributions Web uniquement : coût d'utilisation d'un certificat SSL avec un nom de domaine CloudFront alternatif tel qu'example.com au lieu du certificat SSL CloudFront par défaut et du nom de domaine associé par CloudFront à votre distribution Identique à l'élément correspondant dans votre facture CloudFront API Version 2016-01-13 10 Amazon CloudFront Guide du développeur Rapports CloudFront La console CloudFront inclut divers rapports : • CloudFront Cache Statistics Reports (p. 11) • CloudFront Popular Objects Report (p. 12) • CloudFront Top Referrers Report (p. 12) • CloudFront Usage Reports (p. 12) • CloudFront Viewers Reports (p. 12) La plupart de ces rapports sont basés sur les données des journaux d'accès à CloudFront qui contiennent des informations détaillées sur toutes les requêtes utilisateurs reçues par CloudFront. Vous n'avez pas besoin d'activer les journaux d'accès pour afficher les rapports. Pour de plus amples informations, veuillez consulter Journaux d'accès (p. 267). Le rapport d'utilisation CloudFront est basé sur le rapport d'utilisation AWS pour CloudFront, qui n'exige pas non plus de configuration spéciale. Pour de plus amples informations, veuillez consulter Rapport d'utilisation AWS pour CloudFront (p. 7). Rapports CloudFront Cache Statistics Le rapport statistique de mise en cache comporte les informations suivantes : • Total Requests – Présente le nombre total de requêtes pour tous les codes de statut HTTP (par exemple, 200 ou 404) et toutes les méthodes (par exemple, GET, HEAD ou POST) • Percentage of Viewer Requests by Result Type – Affiche les taux de hits, d'échecs et d'erreurs sous forme de pourcentages du total des requêtes de visionneuses pour la distribution CloudFront sélectionnée • Bytes Transferred to Viewers – Indique le nombre total d'octets et le nombre d'octets des échecs • HTTP Status Codes – Présente les requêtes des visionneuses par code de statut HTTP • Percentage of GET Requests that Didn't Finish Downloading – Présente, sous la forme d'un pourcentage du nombre total des requêtes, les requêtes GET de visionneuses qui n'ont pas terminé de télécharger l'objet demandé Pour de plus amples informations, veuillez consulter Rapports CloudFront Cache Statistics (p. 12). API Version 2016-01-13 11 Amazon CloudFront Guide du développeur Rapports CloudFront Cache Statistics Rapport CloudFront Popular Objects Le rapport d'objets populaires CloudFront reprend les 50 objets les plus populaires et des statistiques relatives à ces objets, y compris le nombre de requêtes pour l'objet, le nombre de hits et d'échec, le taux de hits, le nombre d'octets diffusés pour les échecs, le nombre total d'octets diffusés, le nombre de téléchargements incomplets et le nombre de requêtes par code de statut HTTP (2xx, 3xx, 4xx et 5xx). Pour de plus amples informations, veuillez consulter Rapport CloudFront Popular Objects (p. 16). Rapport CloudFront Top Referrers Le rapport CloudFront sur les principaux référents inclut les 25 principaux référents, le nombre provenant d'un référent et le nombre de requêtes d'un référent sous forme de pourcentage du nombre total de requêtes pendant une période donnée. Pour de plus amples informations, veuillez consulter Rapport CloudFront Top Referrers (p. 20). Rapports CloudFront Usage Les rapports d'utilisation CloudFront incluent les informations suivantes : • Number of Requests – Présente le nombre de requêtes HTTP et HTTPS auxquelles répond CloudFront à partir d'emplacements périphériques dans la région sélectionnée, pendant chaque intervalle de temps pour la distribution CloudFront spécifiée • Data Transferred by Protocol – Présente le nombre total de données transférées via HTTP et HTTPS à partir d'emplacements périphériques CloudFront dans la région sélectionnée, pendant chaque intervalle de temps pour la distribution CloudFront spécifiée • Data Transferred by Destination – Présente le nombre total de données transférées via HTTP et HTTPS à partir d'emplacements périphériques CloudFront dans la région sélectionnée, pendant chaque intervalle de temps pour la distribution CloudFront spécifiée Pour de plus amples informations, veuillez consulter Rapports CloudFront Usage (p. 22). Rapports CloudFront Viewers Les rapports CloudFront Viewers incluent les informations suivantes : • Devices – Présente les types d'appareils (Desktop ou Mobile, par exemple) employés par vos utilisateurs pour accéder à votre contenu • Browsers – Indique le nom (ou le nom et la version) des navigateurs employés le plus souvent par vos utilisateurs pour accéder à votre contenu, comme par exemple Chrome ou Firefox • Operating Systems – Indique le nom (ou le nom et la version) des systèmes d'exploitation employés le plus souvent par les visionneuses lorsqu'elles accèdent à votre contenu, comme par exemple Linux, Mac OS X ou Windows • Locations – Indique l'emplacement, par pays ou par Etat/territoire américain, des visionneuses qui accèdent le plus souvent à votre contenu Pour de plus amples informations, veuillez consulter Rapports CloudFront Viewers (p. 27). Rapports CloudFront Cache Statistics Vous pouvez utiliser la console Amazon CloudFront pour afficher une représentation graphique des statistiques liées aux emplacements périphériques CloudFront. Les données de ces statistiques proviennent de la même source que les journaux d'accès CloudFront. Vous pouvez afficher des API Version 2016-01-13 12 Amazon CloudFront Guide du développeur Rapports CloudFront Cache Statistics graphiques pour une plage de dates donnée au cours des 60 derniers jours, avec des points de données chaque heure ou chaque jour. Vous pouvez normalement voir les données sur les requêtes reçues par CloudFront aussi récentes que celle arrivées une heure auparavant, mais elles peuvent parfois être retardées jusqu'à 24 heures. Note Vous n'avez pas besoin d'activer la journalisation des accès pour afficher les statistiques de mise en cache. Pour afficher les statistiques de mise en cache CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans le volet de navigation, cliquez sur Cache Statistics. 3. Dans le volet CloudFront Cache Statistics Reports, pour Start Date et End Date, sélectionnez la période choisie pour l'affichage des graphiques des statistiques de mise en cache. Les plages disponibles dépendent de la valeur sélectionnée pour Granularity : • Daily – Pour afficher les graphiques avec un point de données par jour, sélectionnez n'importe quelle plage de dates au cours des 60 derniers jours. • Hourly – Pour afficher les graphiques avec un point de données par heure, sélectionnez une plage de dates de 14 jours maximum au cours des 60 derniers jours. Les dates et heures sont exprimées en heure UTC (temps universel coordonné). 4. Pour Granularity, indiquez si vous souhaitez afficher un point de données par jour ou un point de données par heure dans les graphiques. Si vous spécifiez une plage de dates supérieure à 14 jours, il n'est pas possible de spécifier un point de données par heure. 5. Pour Viewer Location, choisissez le continent d'où proviennent les requêtes des visionneuses ou bien All Locations. Les graphiques de statistiques de mise en cache incluent les données des requêtes reçues par CloudFront de l'emplacement spécifié. 6. Dans la liste Distribution, sélectionnez les distributions pour lesquelles vous voulez afficher des données dans les graphiques d'utilisation : • An individual web distribution – Les graphiques affichent des données pour la distribution Web CloudFront sélectionnée. La liste Distribution affiche l'ID de distribution et, le cas échéant, les noms de domaines alternatifs (CNAME) pour la distribution. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste indique les noms de domaines d'origine pour la distribution. • All Web Distributions – Les graphiques affichent le total des données de toutes les distributions Web qui sont associées au compte AWS actuel, à l'exception des distributions Web que vous avez supprimées. 7. Cliquez sur Update. 8. Pour afficher les données associées à un point de données par heure ou par jour, déplacez le pointeur de la souris sur le point de données. 9. Pour les graphiques qui indiquent les données transférées, notez bien que vous pouvez changer le dimensionnement vertical afin d'afficher des giga-octets, des méga-octets ou des kilo-octets pour chaque graphique. Rubriques • Téléchargement des données au format CSV (p. 14) • Relation entre les graphiques statistiques de mise en cache et les données dans les journaux d'accès CloudFront (p. 15) API Version 2016-01-13 13 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV Téléchargement des données au format CSV Vous pouvez télécharger le rapport Cache Statistics au format CSV. Cette section explique comment télécharger le rapport et décrire les valeurs du rapport. Pour télécharger le rapport Cache Statistics au format CSV 1. Tandis que le rapport statistique de mise en cache est affiché, cliquez sur CSV. 2. Dans la boîte de dialogue Opening nom de fichier, indiquez si vous souhaitez ouvrir ou enregistrer le fichier. Informations sur le rapport Les toutes premières lignes du rapport incluent les informations suivantes : Version La version du format de ce fichier CSV. Rapport Nom du rapport. DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. StartDateUTC Début de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. EndDateUTC Fin de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. GeneratedTimeUTC Date et heure auxquelles vous avez exécuté le rapport, en heure UTC. Granularité Indique si chaque ligne du rapport représente une heure ou un jour. ViewerLocation Le continent duquel proviennent les requêtes des visionneuses ou ALL, si vous avez choisi de télécharger le rapport pour tous les emplacements. Données du rapport Cache Statistics Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. ViewerLocation Le continent duquel proviennent les requêtes des visionneuses ou ALL, si vous avez choisi de télécharger le rapport pour tous les emplacements. TimeBucket Heure du jour auquel les données s'appliquent, en heure UTC. RequestCount Le nombre total de requêtes pour tous les codes de statut HTTP (par exemple, 200 ou 404) et toutes les méthodes (par exemple, GET, HEAD ou POST). API Version 2016-01-13 14 Amazon CloudFront Guide du développeur Relation entre les graphiques statistiques de mise en cache et les données dans les journaux d'accès CloudFront HitCount Le nombre de requêtes de visionneuses pour lesquelles l'objet est diffusé à partir d'un cache périphérique CloudFront. MissCount Le nombre de requêtes de visionneuses pour lesquelles l'objet ne se trouve pas actuellement dans un cache périphérique. CloudFront doit alors obtenir l'objet de votre origine. ErrorCount Le nombre de requêtes de visionneuses ayant entraîné une erreur, de sorte que CloudFront n'a pas diffusé l'objet. IncompleteDownloadCount Le nombre de requêtes de visionneuses qui ont commencé mais n'ont pas terminé de télécharger l'objet. HTTP2xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 2xx (réussite). HTTP3xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 3xx (action supplémentaire exigée). HTTP4xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 4xx (erreur client). HTTP5xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 5xx (erreur serveur). TotalBytes Le nombre total d'octets diffusés par CloudFront aux visionneuses en réponse à toutes les requêtes pour toutes les méthodes HTTP. BytesFromMisses Le nombre d'octets diffusés aux visionneuses pour des objets qui ne se trouvaient pas dans le cache périphérique correspondant au moment de la requête. Cette valeur est une bonne évaluation du nombre d'octets transférés de votre origine aux caches périphériques de CloudFront. Elle exclut toutefois les requêtes pour des objets se trouvant déjà dans le cache périphérique, mais qui ont expiré. Relation entre les graphiques statistiques de mise en cache et les données dans les journaux d'accès CloudFront Le tableau suivant indique comment les graphiques statistiques de mise en cache de la console CloudFront correspondent aux valeurs des journaux d'accès CloudFront. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Total Requests Ce graphique présente le nombre total de requêtes pour tous les codes de statut HTTP (par exemple, 200 ou 404) et toutes les méthodes (par exemple, GET, HEAD ou POST). Le nombre total de requêtes illustré dans le graphique est égal au nombre total de requêtes dans les fichiersjournaux d'accès sur la même période. Percentage of Viewer Requests by Result Type Ce graphique indique les taux de hits, d'échecs et d'erreurs sous forme de pourcentages du total des requêtes de visionneuses pour la distribution CloudFront sélectionnée : API Version 2016-01-13 15 Amazon CloudFront Guide du développeur Rapport CloudFront Popular Objects • Hit – Requête de visionneuse pour laquelle l'objet est diffusé à partir d'un cache périphérique CloudFront. Dans les journaux d'accès, il s'agit des requêtes pour lesquelles x-edgeresponse-result-type a une valeur de Hit. • Miss – Requête de visionneuse pour laquelle l'objet ne se trouve pas actuellement dans un cache périphérique. CloudFront doit alors obtenir l'objet de votre origine. Dans les journaux d'accès, il s'agit des requêtes pour lesquelles x-edge-response-result-type a une valeur de Miss. • Error – Requête de visionneuse ayant entraîné une erreur, de sorte que CloudFront n'a pas diffusé l'objet. Dans les journaux d'accès, il s'agit des requêtes pour lesquelles x-edgeresponse-result-type a une valeur de Error, LimitExceeded ou CapacityExceeded. Le graphique ne comprend pas les hits actualisés, c'est-à-dire les requêtes pour des objets se trouvant dans le cache périphérique mais ayant expiré. Dans les journaux d'accès, il s'agit des requêtes pour lesquelles x-edge-response-result-type a une valeur de RefreshHit. Bytes Transferred to Viewers Ce graphique indique deux valeurs : • Total Bytes – Le nombre total d'octets diffusés par CloudFront aux visionneuses en réponse à toutes les requêtes pour toutes les méthodes HTTP. Dans les journaux d'accès CloudFront, Total Bytes correspond à la somme des valeurs de la colonne sc-bytes pour toutes les requêtes sur la même période. • Bytes from Misses – Nombre d'octets diffusés aux visionneuses pour des objets qui ne se trouvaient pas dans le cache périphérique correspondant au moment de la requête. Dans les journaux d'accès CloudFront, Bytes from Misses correspond à la somme des valeurs de la colonne sc-bytes pour les requêtes avec une valeur de x-edge-result-type égale à Miss. Cette valeur est une bonne évaluation du nombre d'octets transférés de votre origine aux caches périphériques de CloudFront. Elle exclut toutefois les requêtes pour des objets se trouvant déjà dans le cache périphérique, mais qui ont expiré. HTTP Status Codes Ce graphique présente les requêtes des visionneuses par code de statut HTTP. Dans les journaux d'accès CloudFront, les codes de statut figurent dans la colonne sc-status : • 2xx – La requête a réussi. • 3xx – Une action supplémentaire est nécessaire. Par exemple, 301 (Déplacé de façon permanente) signifie que l'objet demandé a été déplacé ailleurs. • 4xx – Apparemment, le client a fait une erreur. Par exemple, 404 (Non trouvé) signifie que le client a demandé un objet qui est introuvable. • 5xx – Le serveur d'origine n'a pas satisfait la demande. Par exemple, 503 (Service non disponible) signifie que le serveur d'origine n'est pas disponible actuellement. Percentage of GET Requests that Didn't Finish Downloading Ce graphique présente les requêtes de visionneuses GET qui n'ont pas terminé de télécharger l'objet demandé sous la forme d'un pourcentage du nombre total de requêtes. Généralement, le téléchargement d'un objet ne se termine pas parce que l'utilisateur l'annule, par exemple, en cliquant sur un lien différent ou en fermant le navigateur. Dans les journaux d'accès CloudFront, ces demandes ont une valeur de 200 dans la colonne sc-status et une valeur d'Error dans la colonne x-edge-result-type. Rapport CloudFront Popular Objects La console Amazon CloudFront peut afficher une liste des 50 objets les plus populaires pour une distribution pendant une période spécifique au cours des 60 derniers jours. Les données de ce rapport Popular Objects proviennent de la même source que les journaux d'accès CloudFront. Pour un décompte précis des 50 principaux objets, CloudFront compte les requêtes concernant tous vos objets par intervalles de 10 minutes à partir de minuit, et continue à totaliser les 150 principaux objets sur 24 heures. (CloudFront retient également les totaux quotidiens des API Version 2016-01-13 16 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV 150 principaux objets pendant 60 jours.) Comme les objets du bas de la liste s'élèvent ou disparaissent continuellement, leurs totaux sont approximatifs. La position des cinquante objets du haut de la liste de 150 éléments peut varier, mais ils disparaissent rarement de la liste. Les totaux correspondants sont donc normalement plus fiables. Lorsqu'un objet disparaît de la liste des 150, puis réapparaît dans la journée, CloudFront ajoute une évaluation du nombre de requêtes correspondant à la période pendant laquelle il a disparu. Cette estimation est basée sur le nombre de requêtes reçues par le dernier objet de la liste pendant cette période. Si l'objet s'élève dans les 50 principaux plus tard dans la journée, l'évaluation du nombre de requêtes correspondant à cette période de disparition de la liste de 150 objets provoque souvent un nombre de requêtes supérieur dans le rapport Popular Objects par rapport à celui des journaux d'accès pour ce même objet. Note Vous n'avez pas besoin d'activer la journalisation des accès pour afficher une liste des objets populaires. Pour afficher les objets populaires pour une distribution 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans le volet de navigation, cliquez sur Popular Objects. 3. Dans le volet CloudFront Popular Objects Report, pour Start Date et End Date, sélectionnez la période d'affichage de la liste des objets populaires. Vous pouvez choisir n'importe quelle période comprise dans les 60 jours qui précèdent. 4. 5. Les dates et heures sont exprimées en heure UTC (temps universel coordonné). Dans la liste Distribution, sélectionnez la distribution pour laquelle vous voulez afficher une liste des objets populaires. Cliquez sur Update. Rubriques • Téléchargement des données au format CSV (p. 17) • Relation entre les données du rapport Popular Objects et les données des journaux d'accès CloudFront (p. 19) Téléchargement des données au format CSV Vous pouvez télécharger le rapport Popular Objects au format CSV. Cette section explique comment télécharger le rapport et décrire les valeurs du rapport. Pour télécharger le rapport Popular Objects au format CSV 1. Tandis que le rapport Popular Objects est affiché, cliquez sur CSV. 2. Dans la boîte de dialogue Opening nom de fichier, indiquez si vous souhaitez ouvrir ou enregistrer le fichier. Informations sur le rapport Les toutes premières lignes du rapport incluent les informations suivantes : Version La version du format de ce fichier CSV. API Version 2016-01-13 17 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV Rapport Nom du rapport. DistributionID ID de la distribution pour laquelle vous avez exécuté le rapport. StartDateUTC Début de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. EndDateUTC Fin de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. GeneratedTimeUTC Date et heure auxquelles vous avez exécuté le rapport, en heure UTC. Données du rapport Popular Objects Le rapport inclut les valeurs suivantes : DistributionID ID de la distribution pour laquelle vous avez exécuté le rapport. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. Objet Les 500 derniers caractères de l'URL de l'objet. RequestCount Le nombre total de requêtes pour cet objet. HitCount Le nombre de requêtes de visionneuses pour lesquelles l'objet est diffusé à partir d'un cache périphérique CloudFront. MissCount Le nombre de requêtes de visionneuses pour lesquelles l'objet ne se trouve pas actuellement dans un cache périphérique. CloudFront doit alors obtenir l'objet de votre origine. HitCountPct La valeur de HitCount en pourcentage de la valeur de RequestCount. BytesFromMisses Le nombre d'octets diffusés aux visionneuses pour cet objet tandis qu'il ne se trouvait pas dans le cache périphérique correspondant au moment de la requête. TotalBytes Le nombre total d'octets diffusés pour cet objet par CloudFront aux visionneuses en réponse à toutes les requêtes pour toutes les méthodes HTTP. IncompleteDownloadCount Le nombre de requêtes pour cet objet que les visionneuses ont lancé sans terminer de télécharger l'objet. HTTP2xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 2xx (réussite). HTTP3xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 3xx (action supplémentaire exigée). HTTP4xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 4xx (erreur client). API Version 2016-01-13 18 Amazon CloudFront Guide du développeur Relation entre les données du rapport Popular Objects et les données des journaux d'accès CloudFront HTTP5xx Le nombre de requêtes de visionneuses pour lesquelles le code de statut HTTP était de type 5xx (erreur serveur). Relation entre les données du rapport Popular Objects et les données des journaux d'accès CloudFront La liste suivante indique comment les valeurs du rapport Popular Objects de la console CloudFront correspondent aux valeurs des journaux d'accès CloudFront. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). URL Les 500 derniers caractères de l'URL employée par les visionneuses pour accéder à l'objet. Requêtes Le nombre total de requêtes pour l'objet. Cette valeur est souvent proche du nombre de requêtes GET pour l'objet dans les journaux d'accès CloudFront. Hits Le nombre de requêtes de visionneuses pour lesquelles l'objet a été diffusé à partir d'un cache périphérique CloudFront. Dans les journaux d'accès, il s'agit des requêtes pour lesquelles xedge-response-result-type a une valeur de Hit. Miss Le nombre de requêtes de visionneuses pour lesquelles l'objet ne se trouvait pas dans un cache périphérique. CloudFront a dû récupérer l'objet de votre origine. Dans les journaux d'accès, il s'agit des requêtes pour lesquelles x-edge-response-result-type a une valeur de Miss. Hit Ratio La valeur de la colonne Hits en tant que pourcentage de la valeur de la colonne Requests. Bytes from Misses Le nombre d'octets diffusés aux visionneuses pour des objets qui ne se trouvaient pas dans le cache périphérique correspondant au moment de la requête. Dans les journaux d'accès CloudFront, Bytes from Misses correspond à la somme des valeurs de la colonne sc-bytes pour les requêtes avec une valeur de x-edge-result-type égale à Miss. Total Bytes Le nombre total d'octets diffusés par CloudFront aux visionneuses en réponse à toutes les requêtes relatives à l'objet pour toutes les méthodes HTTP. Dans les journaux d'accès CloudFront, Total Bytes correspond à la somme des valeurs de la colonne sc-bytes pour toutes les requêtes sur la même période. Incomplete Downloads Le nombre de requêtes de visionneuses qui n'ont pas terminé de téléchargé l'objet demandé. Généralement, le téléchargement d'un objet ne se termine pas, car il est annulé par l'utilisateur en cliquant sur un lien différent ou en fermant le navigateur par exemple. Dans les journaux d'accès CloudFront, ces demandes ont une valeur de 200 dans la colonne sc-status et une valeur d'Error dans la colonne x-edge-result-type. 2xx 3xx Le nombre de requêtes pour lesquelles le code de statut HTTP est 2xx, Successful. Dans les journaux d'accès CloudFront, les codes de statut figurent dans la colonne sc-status. Le nombre de requêtes pour lesquelles le code de statut HTTP est 3xx, Redirection. Les codes de statut 3xx indiquent qu'une action supplémentaire est nécessaire. Par exemple, 301 (Déplacé de façon permanente) signifie que l'objet demandé a été déplacé ailleurs. API Version 2016-01-13 19 Amazon CloudFront Guide du développeur Rapport CloudFront Top Referrers 4xx 5xx Le nombre de requêtes pour lesquelles le code de statut HTTP est 4xx, Client Error. Les codes de statut 4xx indiquent que le client a apparemment fait une erreur. Par exemple, 404 (Non trouvé) signifie que le client a demandé un objet qui est introuvable. Le nombre de requêtes pour lesquelles le code de statut HTTP est 5xx, Server Error. Les codes de statut 5xx indiquent que le serveur d'origine n'a pas satisfait la demande. Par exemple, 503 (Service non disponible) signifie que le serveur d'origine n'est pas disponible actuellement. Rapport CloudFront Top Referrers La console CloudFront peut afficher une liste de 25 domaines des sites Web à l'origine du plus grand nombre de requêtes HTTP et HTTPS pour des objets que CloudFront distribue pour une distribution spécifique. Ces principaux référents peuvent être des moteurs de recherche, d'autres sites Web contenant des liens directs vers vos objets ou encore votre propre site. Si http://example.com/ index.html contient par exemple des liens vers 10 graphiques, example.com est le référent pour les 10 graphiques. Vous pouvez choisir de faire porter ce rapport des principaux référents sur n'importe quelle période comprise dans les 60 jours qui précèdent. Note Si un utilisateur saisit une URL directement dans la ligne d'adresse d'un navigateur, il n'existe pas de référent pour l'objet demandé. Les données du rapport Top Referrers proviennent de la même source que les journaux d'accès CloudFront. Pour un décompte précis des 25 principaux référents, CloudFront compte les requêtes concernant tous vos objets par intervalles de 10 minutes et continue à totaliser les 75 principaux référents. Comme les référents du bas de la liste s'élèvent ou disparaissent continuellement, leurs totaux sont approximatifs. La position des 25 référents du haut de la liste de 75 éléments peut varier, mais ils disparaissent rarement de la liste. Les totaux correspondants sont donc normalement plus fiables. Note Vous n'avez pas besoin d'activer la journalisation des accès pour afficher une liste des principaux référents. Pour afficher les principaux référents d'une distribution 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans le volet de navigation, cliquez sur Top Referrers. 3. Dans le volet CloudFront Top Referrers Report, pour Start Date et End Date, sélectionnez la période choisie pour la liste des principaux référents. Les dates et heures sont exprimées en heure UTC (temps universel coordonné). 4. Dans la liste Distribution, sélectionnez la distribution pour laquelle vous voulez afficher une liste des principaux référents. 5. Cliquez sur Update. Rubriques • Téléchargement des données au format CSV (p. 21) API Version 2016-01-13 20 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV • Relation entre les données du rapport Top Referrers et les données des journaux d'accès CloudFront (p. 22) Téléchargement des données au format CSV Vous pouvez télécharger le rapport Top Referrers au format CSV. Cette section explique comment télécharger le rapport et décrire les valeurs du rapport. Pour télécharger le rapport Top Referrers au format CSV 1. Tandis que le rapport Top Referrers est affiché, cliquez sur CSV. 2. Dans la boîte de dialogue Opening nom de fichier, indiquez si vous souhaitez ouvrir ou enregistrer le fichier. Informations sur le rapport Les toutes premières lignes du rapport incluent les informations suivantes : Version La version du format de ce fichier CSV. Rapport Nom du rapport. DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. StartDateUTC Début de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. EndDateUTC Fin de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. GeneratedTimeUTC Date et heure auxquelles vous avez exécuté le rapport, en heure UTC. Données du rapport Top Referrers Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. Referrer Le nom de domaine du référent. Le nombre total de requêtes en provenance du nom de domaine de la colonne Referrer. RequestsPct Le nombre de requêtes envoyées par le référent sous forme de pourcentage du nombre total de requêtes au cours de la période spécifiée. API Version 2016-01-13 21 Amazon CloudFront Guide du développeur Relation entre les données du rapport Top Referrers et les données des journaux d'accès CloudFront Relation entre les données du rapport Top Referrers et les données des journaux d'accès CloudFront La liste suivante indique comment les valeurs du rapport Top Referrers de la console CloudFront correspondent aux valeurs des journaux d'accès CloudFront. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Referrer Le nom de domaine du référent. Dans les journaux d'accès, les référents figurent dans la colonne cs(Referer). Request Count Le nombre total de requêtes en provenance du nom de domaine de la colonne Referrer. Cette valeur est souvent proche du nombre de requêtes GET provenant du référent dans les journaux d'accès CloudFront. Requête % Le nombre de requêtes envoyées par le référent sous forme de pourcentage du nombre total de requêtes au cours de la période spécifiée. Si vous avez plus de 25 référents, vous ne pouvez pas calculer Request % sur la base des données de ce tableau, car la colonne Request Count n'inclut pas toutes les requêtes pendant la période spécifiée. Rapports CloudFront Usage La console Amazon CloudFront peut afficher une représentation graphique de votre utilisation de CloudFront sur la base d'un sous-ensemble de données du rapport d'utilisation. Vous pouvez afficher des graphiques pour une plage de dates donnée au cours des 60 derniers jours, avec des points de données chaque heure ou chaque jour. Vous pouvez normalement voir les données sur les requêtes reçues par CloudFront aussi récentes que celle arrivées quatre heures auparavant, mais elles peuvent parfois être retardées jusqu'à 24 heures. Pour de plus amples informations, veuillez consulter Relation entre les graphiques Usage et les données du rapport d'utilisation CloudFront (p. 25). Pour afficher les graphiques d'utilisation CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. 3. Dans le volet de navigation, cliquez sur Usage Reports. Dans le volet CloudFront Usage Reports, pour Start Date et End Date, sélectionnez la période choisie pour l'affichage des graphiques d'utilisation. Les plages disponibles dépendent de la valeur sélectionnée pour Granularity : • Daily — Pour afficher les graphiques avec un point de données par jour, sélectionnez n'importe quelle plage de dates au cours des 60 derniers jours. • Hourly — Pour afficher les graphiques avec un point de données par heure, sélectionnez une plage de dates de 14 jours maximum au cours des 60 derniers jours. 4. 5. Les dates et heures sont exprimées en heure UTC (temps universel coordonné). Pour Granularity, indiquez si vous souhaitez afficher un point de données par jour ou un point de données par heure dans les graphiques. Si vous spécifiez une plage de dates supérieure à 14 jours, il n'est pas possible de spécifier un point de données par heure. Pour Billing Region, choisissez la région de facturation CloudFront qui comporte les données que vous souhaitez afficher, ou choisissez All Regions. Les graphiques d'utilisation incluent les données des requêtes traitées par CloudFront dans les emplacements périphériques de la région API Version 2016-01-13 22 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV spécifiée. La région où CloudFront traite les requêtes peut correspondre ou non à l'emplacement de vos utilisateurs. Sélectionnez uniquement des régions incluses dans la catégorie tarifaire de votre distribution ; dans le cas contraire, les graphiques d'utilisation ne contiendront certainement pas de données. Par exemple, si vous choisissez la catégorie de tarifs 200 pour votre distribution, les régions de facturation d'Amérique du Sud et d'Australie ne sont pas incluses, et CloudFront ne traitera donc normalement pas les requêtes de ces régions-là. Pour plus d'informations sur les catégories de tarifs, consultez Choix de la catégorie de tarifs pour une distribution CloudFront (p. 49). 6. Dans la liste Distribution, sélectionnez les distributions pour lesquelles vous voulez afficher des données dans les graphiques d'utilisation : • An individual web distribution — Les graphiques affichent des données pour la distribution CloudFront sélectionnée. La liste Distribution affiche l'ID de distribution et, le cas échéant, les noms de domaines alternatifs (CNAME) pour la distribution. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste indique les noms de domaines d'origine pour la distribution. • All Web Distributions (excludes deleted) — Les graphiques affichent le total des données de toutes les distributions Web qui sont associées au compte AWS actuel, à l'exception des distributions Web que vous avez supprimées. • All Deleted Distributions — Les graphiques affichent le total des données de toutes les distributions Web qui sont associées au compte AWS actuel et qui ont été supprimées au cours des 60 derniers jours. 7. Cliquez sur Update Graphs. 8. Pour afficher les données associées à un point de données par heure ou par jour, déplacez le pointeur de la souris sur le point de données. 9. Pour les graphiques qui indiquent les données transférées, notez bien que vous pouvez changer le dimensionnement vertical afin d'afficher des giga-octets, des méga-octets ou des kilo-octets pour chaque graphique. Rubriques • Téléchargement des données au format CSV (p. 23) • Relation entre les graphiques Usage et les données du rapport d'utilisation CloudFront (p. 25) Téléchargement des données au format CSV Vous pouvez télécharger le rapport Usage au format CSV. Cette section explique comment télécharger le rapport et décrire les valeurs du rapport. Pour télécharger le rapport Usage au format CSV 1. Tandis que le rapport Usage est affiché, cliquez sur CSV. 2. Dans la boîte de dialogue Opening nom de fichier, indiquez si vous souhaitez ouvrir ou enregistrer le fichier. Informations sur le rapport Les toutes premières lignes du rapport incluent les informations suivantes : Version La version du format de ce fichier CSV. API Version 2016-01-13 23 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV Rapport Nom du rapport. DistributionID L'ID de la distribution concernée par le rapport, ALL si le rapport concernait toutes les distributions, ou ALL_DELETED si le rapport concernait toutes les distributions supprimées. StartDateUTC Début de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. EndDateUTC Fin de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. GeneratedTimeUTC Date et heure auxquelles vous avez exécuté le rapport, en heure UTC. Granularité Indique si chaque ligne du rapport représente une heure ou un jour. BillingRegion Le continent duquel proviennent les requêtes des visionneuses ou ALL, si vous avez choisi de télécharger le rapport pour toutes les régions de facturation. Données du rapport Usage Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport, ALL si le rapport concernait toutes les distributions, ou ALL_DELETED si le rapport concernait toutes les distributions supprimées. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. BillingRegion La région de facturation CloudFront concernée par le rapport, ou ALL. TimeBucket Heure du jour auquel les données s'appliquent, en heure UTC. HTTP Le nombre de requêtes HTTP auxquelles CloudFront a répondu à partir des emplacements périphériques de la région sélectionnée, pendant chaque intervalle de temps pour la distribution CloudFront spécifiée. Les valeurs sont les suivantes : • Le nombre de requêtes GET et HEAD suite auxquelles CloudFront transfère des données à vos utilisateurs • Le nombre de requêtes DELETE, OPTIONS, PATCH, POST et PUT suite auxquelles CloudFront transfère des données à votre origine HTTPS Le nombre de requêtes HTTPS auxquelles CloudFront a répondu à partir des emplacements périphériques de la région sélectionnée, pendant chaque intervalle de temps pour la distribution CloudFront spécifiée. Les valeurs sont les suivantes : • Le nombre de requêtes GET et HEAD suite auxquelles CloudFront transfère des données à vos utilisateurs • Le nombre de requêtes DELETE, OPTIONS, PATCH, POST et PUT suite auxquelles CloudFront transfère des données à votre origine HTTPBytes Le nombre total de données transférées via HTTP à partir d'emplacements périphériques CloudFront dans la région de facturation sélectionnée, pendant la période pour la distribution CloudFront spécifiée. Les valeurs sont les suivantes : API Version 2016-01-13 24 Amazon CloudFront Guide du développeur Relation entre les graphiques Usage et les données du rapport d'utilisation CloudFront • Les données transférées de CloudFront à vos utilisateurs en réponse aux requêtes GET et HEAD • Les données transférées de CloudFront à votre origine pour les requêtes DELETE, OPTIONS, PATCH, POST et PUT • Les données transférées de CloudFront à vos utilisateurs en réponse aux requêtes DELETE, OPTIONS, PATCH, POST et PUT HTTPSBytes Le nombre total de données transférées via HTTPS à partir d'emplacements périphériques CloudFront dans la région de facturation sélectionnée, pendant la période pour la distribution CloudFront spécifiée. Les valeurs sont les suivantes : • Les données transférées de CloudFront à vos utilisateurs en réponse aux requêtes GET et HEAD • Les données transférées de CloudFront à votre origine pour les requêtes DELETE, OPTIONS, PATCH, POST et PUT • Les données transférées de CloudFront à vos utilisateurs en réponse aux requêtes DELETE, OPTIONS, PATCH, POST et PUT BytesIn Le nombre total de données transférées de CloudFront à votre origine pour les requêtes DELETE, OPTIONS, PATCH, POST et PUT dans la région sélectionnée pendant chaque intervalle de temps pour la distribution CloudFront spécifiée. BytesOut Le nombre total de données transférées via HTTP et HTTPS de CloudFront à vos utilisateurs de la région sélectionnée pendant chaque intervalle de temps pour la distribution CloudFront spécifiée. Les valeurs sont les suivantes : • Les données transférées de CloudFront à vos utilisateurs en réponse aux requêtes GET et HEAD • Les données transférées de CloudFront à vos utilisateurs en réponse aux requêtes DELETE, OPTIONS, PATCH, POST et PUT Relation entre les graphiques Usage et les données du rapport d'utilisation CloudFront La liste suivante indique comment les graphiques d'utilisation de la console CloudFront correspondent aux valeurs de la colonne Usage Type du rapport d'utilisation CloudFront. Rubriques • Number of Requests (p. 25) • Data Transferred by Protocol (p. 26) • Data Transferred by Destination (p. 26) Number of Requests Ce graphique présente le nombre de requêtes HTTP et HTTPS auxquelles CloudFront répond à partir d'emplacements périphériques de la région sélectionnée, pendant chaque intervalle de temps pour la distribution CloudFront spécifiée. Number of HTTP Requests • région-Requests-HTTP-Static : nombre de requêtes HTTP GET et HEAD diffusées pour des objets avec une durée de vie ≥ 3600 secondes • région-Requests-HTTP-Dynamic : nombre de requêtes HTTP GET et HEAD diffusées pour des objets avec une durée de vie < 3600 secondes • région-Requests-HTTP-Proxy : nombre de requêtes HTTP DELETE, OPTIONS, PATCH, POST et PUT transférées par CloudFront à votre origine API Version 2016-01-13 25 Amazon CloudFront Guide du développeur Relation entre les graphiques Usage et les données du rapport d'utilisation CloudFront Number of HTTPS Requests • région-Requests-HTTPS-Static : nombre de requêtes HTTPS GET et HEAD diffusées pour des objets avec une durée de vie ≥ 3600 secondes • région-Requests-HTTPS-Dynamic : nombre de requêtes HTTPS GET et HEAD diffusées pour des objets avec une durée de vie < 3600 secondes • région-Requests-HTTPS-Proxy : nombre de requêtes HTTPS DELETE, OPTIONS, PATCH, POST et PUT transférées par CloudFront à votre origine Data Transferred by Protocol Ce graphique présente le nombre total de données transférées via HTTP et HTTPS à partir d'emplacements périphériques CloudFront dans la région sélectionnée, pendant chaque intervalle de temps, pour la distribution CloudFront spécifiée. Data Transferred over HTTP • région-Out-Bytes-HTTP-Static : octets diffusés via HTTP pour des objets avec une durée de vie ≥ 3600 secondes • région-Out-Bytes-HTTP-Dynamic : octets diffusés via HTTP pour des objets avec une durée de vie < 3600 secondes • région-Out-Bytes-HTTP-Proxy : octets renvoyés par CloudFront aux visionneuses via HTTP en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT • région-Out-OBytes-HTTP-Proxy : total des octets transférés via HTTP à partir d'emplacements périphériques CloudFront à votre origine en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT Data Transferred over HTTPS • région-Out-Bytes-HTTPS-Static : octets diffusés via HTTPS pour des objets avec une durée de vie ≥ 3600 secondes • région-Out-Bytes-HTTPS-Dynamic : octets diffusés via HTTPS pour des objets avec une durée de vie < 3600 secondes • région-Out-Bytes-HTTPS-Proxy : octets renvoyés par CloudFront aux visionneuses via HTTPS en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT • région-Out-OBytes-HTTPS-Proxy : total des octets transférés via HTTPS à partir d'emplacements périphériques CloudFront à votre origine en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT Data Transferred by Destination Ce graphique présente le nombre total de données transférées via HTTP et HTTPS à partir d'emplacements périphériques CloudFront dans la région sélectionnée, pendant chaque intervalle de temps, pour la distribution CloudFront spécifiée. Data Transferred from CloudFront to Your Users • région-Out-Bytes-HTTP-Static : octets diffusés via HTTP pour des objets avec une durée de vie ≥ 3600 secondes • région-Out-Bytes-HTTPS-Static : octets diffusés via HTTPS pour des objets avec une durée de vie ≥ 3600 secondes • région-Out-Bytes-HTTP-Dynamic : octets diffusés via HTTP pour des objets avec une durée de vie < 3600 secondes • région-Out-Bytes-HTTPS-Dynamic : octets diffusés via HTTPS pour des objets avec une durée de vie < 3600 secondes • région-Out-Bytes-HTTP-Proxy : octets renvoyés par CloudFront aux visionneuses via HTTP en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT API Version 2016-01-13 26 Amazon CloudFront Guide du développeur Rapports CloudFront Viewers • région-Out-Bytes-HTTPS-Proxy : octets renvoyés par CloudFront aux visionneuses via HTTPS en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT Data Transferred from CloudFront to Your Origin • région-Out-OBytes-HTTP-Proxy : total des octets transférés via HTTP à partir d'emplacements périphériques CloudFront à votre origine en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT • région-Out-OBytes-HTTPS-Proxy : total des octets transférés via HTTPS à partir d'emplacements périphériques CloudFront à votre origine en réponse à des requêtes DELETE, OPTIONS, PATCH, POST et PUT Rapports CloudFront Viewers La console CloudFront peut afficher quatre rapports sur les périphériques physiques (ordinateurs de bureau, appareils mobiles) et sur les visionneuses (normalement des navigateurs Web) qui accèdent à votre contenu : • Devices – Le type d'appareils employés le plus souvent par vos utilisateurs pour accéder à votre contenu, soit par exemple Desktop ou Mobile. • Browsers – Le nom (ou le nom et la version) des navigateurs employés le plus souvent par vos utilisateurs pour accéder à votre contenu, comme par exemple Chrome ou Firefox. Le rapport indique les 10 principaux navigateurs. • Operating Systems – Le nom (ou le nom et la version) des systèmes d'exploitation employés le plus souvent par les visionneuses pour accéder à votre contenu, comme par exemple Linux, Mac OS X ou Windows. Le rapport indique les 10 principaux systèmes d'exploitation. • Locations – L'emplacement, par pays ou par Etat/territoire américain, des visionneuses qui accèdent le plus souvent à votre contenu. Le rapport indique les 50 principaux pays ou Etats/territoires américains. Vous pouvez afficher les quatre rapports Viewers sur n'importe quelle période comprise dans les 60 jours qui précèdent. Pour le rapport Locations, vous pouvez également afficher les points de données à chaque heure, pour une plage de dates de 14 jours maximum au cours des 60 derniers jours. Note Vous n'avez pas besoin d'activer la journalisation des accès pour afficher les graphiques et rapports Viewers. Rubriques • Affichage des graphiques et rapports Viewers (p. 27) • Téléchargement des données au format CSV (p. 28) • Relation entre les données du rapport Locations et les données des journaux d'accès CloudFront (p. 33) Affichage des graphiques et rapports Viewers Procédez comme indiqué ci-dessous pour afficher les graphiques et rapports CloudFront Viewers. Pour afficher les graphiques et rapports CloudFront Viewers 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. API Version 2016-01-13 27 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV 2. Dans le volet de navigation, cliquez sur Viewers. 3. Dans le volet CloudFront Viewers, pour Start Date et End Date, sélectionnez la période choisie pour l'affichage des graphiques et rapports de visionneuses. Pour le graphique Locations, les plages disponibles dépendent de la valeur sélectionnée pour Granularity : • Daily – Pour afficher les graphiques avec un point de données par jour, sélectionnez n'importe quelle plage de dates au cours des 60 derniers jours. • Hourly – Pour afficher les graphiques avec un point de données par heure, sélectionnez une plage de dates de 14 jours maximum au cours des 60 derniers jours. Les dates et heures sont exprimées en heure UTC (temps universel coordonné). 4. (Graphiques Browsers et Operating Systems uniquement) Pour Grouping, indiquez si vous souhaitez regrouper les navigateurs et systèmes d'exploitation par nom (Chrome, Firefox) ou par nom et version (Chrome 40.0, Firefox 35.0). 5. (Graphique Locations uniquement) Pour Granularity, indiquez si vous souhaitez afficher un point de données par jour ou un point de données par heure dans les graphiques. Si vous spécifiez une plage de dates supérieure à 14 jours, il n'est pas possible de spécifier un point de données par heure. 6. (Graphique Locations uniquement) Pour Details, spécifiez si vous souhaitez afficher les principaux emplacements par pays ou par Etats américains. 7. Dans la liste Distribution, sélectionnez la distribution pour laquelle vous voulez afficher des données dans les graphiques d'utilisation. • An individual web distribution – Les graphiques affichent des données pour la distribution Web CloudFront sélectionnée. La liste Distribution affiche l'ID de distribution et, le cas échéant, un nom de domaine alternatif (CNAME) pour la distribution. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. • All Web Distributions (excludes deleted) – Les graphiques affichent le total des données de toutes les distributions Web qui sont associées au compte AWS actuel, à l'exception des distributions Web que vous avez supprimées. 8. Cliquez sur Update. 9. Pour afficher les données associées à un point de données par heure ou par jour, déplacez le pointeur de la souris sur le point de données. Téléchargement des données au format CSV Vous pouvez télécharger chaque rapport Viewers au format CSV. Cette section explique comment télécharger les rapports et décrit les valeurs des rapports. Pour télécharger les rapports Viewers au format CSV 1. Tandis que le rapport Viewers souhaité est affiché, cliquez sur CSV. 2. Choisissez les données à télécharger, par exemple Devices ou Devices Trends. 3. Dans la boîte de dialogue Opening nom de fichier, indiquez si vous souhaitez ouvrir ou enregistrer le fichier. Rubriques • Informations sur les rapports (p. 29) • Rapport Devices (p. 29) API Version 2016-01-13 28 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV • Rapport Device Trends (p. 30) • Rapport Browsers (p. 30) • Rapport Browser Trends (p. 31) • Rapport Operating Systems (p. 31) • Rapport Operating System Trends (p. 32) • Rapport Locations (p. 32) • Rapport Location Trends (p. 33) Informations sur les rapports Les premières lignes de chaque rapport comportent les informations suivantes : Version La version du format de ce fichier CSV. Rapport Nom du rapport. DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions Web. StartDateUTC Début de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. EndDateUTC Fin de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. GeneratedTimeUTC Date et heure auxquelles vous avez exécuté le rapport, en heure UTC. Grouping (rapports Browsers et Operating Systems uniquement) Groupement des données par nom ou par nom et version des navigateurs et systèmes d'exploitation. Granularité Indique si chaque ligne du rapport représente une heure ou un jour. Details (rapport Locations uniquement) Liste des requêtes par pays ou par Etats américains. Rapport Devices Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. Requêtes Le nombre de requêtes reçues par CloudFront en provenance de chaque type d'appareil. RequestsPct Le nombre de requêtes reçues par CloudFront en provenance de chaque type d'appareil sous forme de pourcentage du nombre total de requêtes reçues par CloudFront en provenance de tous les appareils. API Version 2016-01-13 29 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV Rapport Device Trends Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. TimeBucket L'heure du jour correspondant aux données, en heure UTC (temps universel coordonné). Desktop Le nombre de requêtes reçues par CloudFront en provenance d'ordinateurs de bureau pendant la période. Applications mobiles Le nombre de requêtes reçues par CloudFront en provenance d'appareils mobiles pendant la période. Les appareils mobiles peuvent inclure les tablettes et les téléphones portables. Lorsque CloudFront ne peut pas déterminer si une requête provient d'un appareil mobile ou d'une tablette, elle est placé dans la colonne Mobile. Smart-TV Le nombre de requêtes reçues par CloudFront en provenance de téléviseurs intelligents pendant la période. Tablet Le nombre de requêtes reçues par CloudFront en provenance de tablettes pendant la période. Lorsque CloudFront ne peut pas déterminer si une requête provient d'un appareil mobile ou d'une tablette, elle est placé dans la colonne Mobile. Je ne sais pas Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent n'a pas été associée à l'un des types d'appareils standard, par exemple Desktop ou Mobile. Empty Le nombre de requêtes reçues par CloudFront sans valeur d'en-tête HTTP User-Agent pendant la période. Rapport Browsers Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. Group Le navigateur ou le navigateur et la version ayant envoyé des requêtes à CloudFront, en fonction de la valeur de Grouping. En plus des noms de navigateur, les paramètres possibles incluent les valeurs suivantes : • Bot/Crawler – Surtout des requêtes de moteurs de recherche qui procèdent à l'indexation de votre contenu. API Version 2016-01-13 30 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV • Empty – Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent était vide. • Other – Navigateurs identifiés par CloudFront mais qui ne font pas partie des plus couramment utilisés. Si Bot/Crawler, Empty et/ou Unknown n'apparaissent pas dans les neuf premières valeurs, elles sont aussi incluses dans Other. • Unknown – Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent n'a pas été associée à un navigateur standard. La plupart des requêtes de cette catégorie proviennent d'applications ou de scripts personnalisés. Requêtes Le nombre de requêtes reçues par CloudFront en provenance de chaque type de navigateur. RequestsPct Le nombre de requêtes reçues par CloudFront en provenance de chaque type de navigateur sous forme de pourcentage du nombre total de requêtes reçues par CloudFront pendant la période indiquée. Rapport Browser Trends Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. TimeBucket L'heure du jour correspondant aux données, en heure UTC (temps universel coordonné). (Browsers) Les colonnes restantes du rapport répertorient les navigateurs ou les navigateurs et versions, en fonction de la valeur de Grouping. En plus des noms de navigateur, les paramètres possibles incluent les valeurs suivantes : • Bot/Crawler – Surtout des requêtes de moteurs de recherche qui procèdent à l'indexation de votre contenu. • Empty – Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent était vide. • Other – Navigateurs identifiés par CloudFront mais qui ne font pas partie des plus couramment utilisés. Si Bot/Crawler, Empty et/ou Unknown n'apparaissent pas dans les neuf premières valeurs, elles sont aussi incluses dans Other. • Unknown – Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent n'a pas été associée à un navigateur standard. La plupart des requêtes de cette catégorie proviennent d'applications ou de scripts personnalisés. Rapport Operating Systems Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. API Version 2016-01-13 31 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV Group Le système d'exploitation ou le système d'exploitation et sa version ayant envoyé des requêtes à CloudFront, en fonction de la valeur de Grouping. En plus des noms de systèmes d'exploitation, les paramètres possibles incluent les valeurs suivantes : • Bot/Crawler – Surtout des requêtes de moteurs de recherche qui procèdent à l'indexation de votre contenu. • Empty – Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent était vide. • Other – Systèmes d'exploitation identifiés par CloudFront mais qui ne font pas partie des plus couramment utilisés. Si Bot/Crawler, Empty et/ou Unknown n'apparaissent pas dans les neuf premières valeurs, elles sont aussi incluses dans Other. • Unknown – Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent n'a pas été associée à un navigateur standard. La plupart des requêtes de cette catégorie proviennent d'applications ou de scripts personnalisés. Requêtes Le nombre de requêtes reçues par CloudFront en provenance de chaque type de système d'exploitation. RequestsPct Le nombre de requêtes reçues par CloudFront en provenance de chaque type de système d'exploitation sous forme de pourcentage du nombre total de requêtes reçues par CloudFront pendant la période indiquée. Rapport Operating System Trends Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. TimeBucket L'heure du jour correspondant aux données, en heure UTC (temps universel coordonné). (Operating systems) Les colonnes restantes du rapport répertorient les systèmes d'exploitation ou les systèmes d'exploitation et versions, en fonction de la valeur de Grouping. En plus des noms de systèmes d'exploitation, les paramètres possibles incluent les valeurs suivantes : • Bot/Crawler – Surtout des requêtes de moteurs de recherche qui procèdent à l'indexation de votre contenu. • Empty – Requêtes pour lesquelles la valeur de l'en-tête HTTP User-Agent était vide. • Other – Systèmes d'exploitation identifiés par CloudFront mais qui ne font pas partie des plus couramment utilisés. Si Bot/Crawler, Empty et/ou Unknown n'apparaissent pas dans les neuf premières valeurs, elles sont aussi incluses dans Other. • Unknown – Requêtes pour lesquelles le système d'exploitation n'est pas spécifié dans l'en-tête HTTP User-Agent. Rapport Locations Le rapport inclut les valeurs suivantes : API Version 2016-01-13 32 Amazon CloudFront Guide du développeur Relation entre les données du rapport Locations et les données des journaux d'accès CloudFront DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. LocationCode L'abréviation de l'emplacement d'où proviennent les requêtes reçues par CloudFront. Pour plus d'informations sur les valeurs possibles, consultez la description de Location dans Relation entre les données du rapport Locations et les données des journaux d'accès CloudFront (p. 33). LocationName Le nom de l'emplacement d'où proviennent les requêtes reçues par CloudFront. Requêtes Le nombre de requêtes reçues par CloudFront depuis chaque emplacement. RequestsPct Le nombre de requêtes reçues par CloudFront en provenance de chaque emplacement sous forme de pourcentage du nombre total de requêtes reçues par CloudFront en provenance de tous les emplacements pendant la période indiquée. TotalBytes Le nombre d'octets diffusés par CloudFront aux visionneuses de ce pays ou de cet Etat, pour la distribution et la période spécifiées. Rapport Location Trends Le rapport inclut les valeurs suivantes : DistributionID L'ID de la distribution concernée par le rapport ou ALL si le rapport concerne toutes les distributions. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. TimeBucket L'heure du jour correspondant aux données, en heure UTC (temps universel coordonné). (Emplacements) Les colonnes restantes du rapport indiquent les emplacements d'où proviennent les requêtes reçues par CloudFront. Pour plus d'informations sur les valeurs possibles, consultez la description de Location dans Relation entre les données du rapport Locations et les données des journaux d'accès CloudFront (p. 33). Relation entre les données du rapport Locations et les données des journaux d'accès CloudFront La liste suivante indique comment les données du rapport Locations de la console CloudFront correspondent aux valeurs des journaux d'accès CloudFront. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Emplacement Pays ou Etat américain où se trouve la visionneuse. Dans les journaux d'accès, la colonne c-ip contient l'adresse IP de l'appareil employé par la visionneuse. Nous employons des données de API Version 2016-01-13 33 Amazon CloudFront Guide du développeur Relation entre les données du rapport Locations et les données des journaux d'accès CloudFront géolocalisation pour identifier l'emplacement géographique de l'appareil sur la base de l'adresse IP. Si vous affichez le rapport Locations par pays, notez que la liste des pays est basée sur la norme ISO 3166-2, Codes pour la représentation des noms des pays et de leurs subdivisions – Partie 2 : Codes des subdivisions des pays. La liste des pays inclut les valeurs supplémentaires suivantes : • Anonymous Proxy – Requête en provenance d'un proxy anonyme. • Satellite Provider – Requête en provenance d'un prestataire de services par satellite qui offre une connexion Internet à plusieurs pays. Les utilisateurs peuvent se trouver dans des pays avec un risque de fraude élevé. • Europe (Unknown) – Requête en provenance d'un protocole Internet dans un bloc utilisé par plusieurs pays européens. Il n'est pas possible de déterminer le pays duquel provient la requête. CloudFront utilise Europe (Unknown) par défaut. • Asia/Pacific (Unknown) – Requête en provenance d'un protocole Internet dans un bloc utilisé par plusieurs pays de la région Asie-Pacifique. Il n'est pas possible de déterminer le pays duquel provient la requête. CloudFront utilise Asia/Pacific (Unknown) par défaut. Si vous affichez le rapport Locations par Etat américain, notez bien qu'il peut inclure les zones militaires et les territoires américains. Request Count Le nombre total de requêtes du pays ou de l'Etat américain où se trouve la visionneuse, pour la distribution et la période spécifiées. Cette valeur est souvent proche du nombre de requêtes GET en provenance des adresses IP de ce pays ou Etat dans les journaux d'accès CloudFront. Requête % L'une des options suivantes, en fonction de la valeur sélectionnée sous Details : • Countries – Les requêtes de ce pays en tant que pourcentage du nombre total de requêtes. • U.S. States – Les requêtes de cet Etat en tant que pourcentage du nombre total de requêtes en provenance des Etats-Unis. Si les requêtes proviennent de plus de 50 pays, vous ne pouvez pas calculer Request % sur la base des données de ce tableau, car la colonne Request Count n'inclut pas toutes les requêtes pendant la période spécifiée. Octets Le nombre d'octets diffusés par CloudFront aux visionneuses de ce pays ou de cet Etat, pour la distribution et la période spécifiées. Pour modifier l'affichage des données de cette colonne en Ko, Mo ou Go, cliquez sur le lien dans l'en-tête de la colonne. API Version 2016-01-13 34 Amazon CloudFront Guide du développeur Etape 1 : S'inscrire à Amazon Web Services Mise en route avec CloudFront L'exemple de cette rubrique vous fournit une brève présentation de l'utilisation de CloudFront pour exécuter les tâches suivantes : • Stocker les versions originales de vos objets dans un même compartiment Amazon Simple Storage Service (Amazon S3). • Distribuer le contenu téléchargé, tel que texte ou graphiques. • Rendre vos objets accessibles à tout le monde. • Utiliser le nom de domaine CloudFront dans les URL de vos objets (par exemple, http:// d111111abcdef8.cloudfront.net/image.jpg) au lieu de votre propre nom de domaine (par exemple, http://www.example.com/image.jpg). • Conserver vos objets dans des emplacements périphériques CloudFront pendant 24 heures par défaut. (La durée minimale est 0 seconde.) Pour plus d'informations sur l'utilisation de CloudFront lorsque vous voulez utiliser d'autres options, consultez Liste des tâches de création d'une distribution web (p. 54) ou Liste des tâches du streaming multimédia avec RTMP (p. 89). Vous avez uniquement besoin d'exécuter quelques étapes de base pour commencer à remettre votre contenu avec CloudFront. La première étape consiste à s'inscrire. Ensuite, vous créez une distribution CloudFront, puis utilisez le nom de domaine CloudFront pour référencer le contenu dans vos pages ou applications web. Rubriques • Etape 1 : S'inscrire à Amazon Web Services (p. 35) • Etape 2 : Télécharger votre contenu sur Amazon S3 et attribuer les autorisations d'objet (p. 36) • Etape 3 : Créer une distribution web CloudFront (p. 37) • Etape 4 : Tester les liens (p. 39) Etape 1 : S'inscrire à Amazon Web Services Si ce n'est déjà fait, inscrivez-vous à Amazon Web Services, à l'adresse http://aws.amazon.com. Choisissez Sign Up Now, puis entrez les informations requises. API Version 2016-01-13 35 Amazon CloudFront Guide du développeur Etape 2 : Télécharger votre contenu sur Amazon S3 et attribuer les autorisations d'objet Etape 2 : Télécharger votre contenu sur Amazon S3 et attribuer les autorisations d'objet Un compartiment Amazon S3 est un conteneur d'objets ou de dossiers. CloudFront peut distribuer pratiquement tout type d'objet à l'aide d'un compartiment Amazon S3 comme source, par exemple, du texte, des images et des vidéos. Vous pouvez créer plusieurs compartiments et il n'y a aucune limite à la quantité de données que vous pouvez stocker sur Amazon S3. Par défaut, votre compartiment Amazon S3 et tous les objets qu'il contient sont privés : seul le compte AWS ayant créé le compartiment a l'autorisation d'y lire ou d'y écrire des objets. Si vous voulez autoriser quiconque à accéder aux objets de votre compartiment Amazon S3 à l'aide des URL CloudFront, vous devez attribuer les autorisations de lecture publiques aux objets. (Il s'agit de l'une des erreurs les plus courantes lors de l'utilisation de CloudFront and Amazon S3. Vous devez accorder explicitement les privilèges à chaque objet d'un compartiment Amazon S3.) Note Si vous voulez restreindre les personnes autorisées à télécharger votre contenu, vous pouvez utiliser la fonction de contenu privé CloudFront. Pour plus d'informations sur la distribution de contenus privés, consultez Service d'un contenu privé via CloudFront (p. 168). Pour télécharger votre contenu sur Amazon S3 et attribuer l'autorisation de lecture à tout le monde 1. 2. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/. Dans la console Amazon S3, choisissez Create Bucket. 3. Dans la boîte de dialogue Create Bucket, indiquez un nom de compartiment. Important Pour que votre compartiment fonctionne avec CloudFront, le nom doit être conforme aux exigences DNS en la matière. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. 4. 5. Sélectionnez une région pour votre compartiment. Par défaut, Amazon S3 crée des compartiments dans la région USA Est (Virginie du Nord). Nous vous recommandons de choisir une région proche de vous pour optimiser la latence, réduire les coûts ou répondre aux exigences juridiques. Sélectionnez Create. 6. 7. Sélectionnez votre compartiment dans le volet Buckets, puis choisissez Upload. Sur la page Upload - Select Files, choisissez Add Files, puis sélectionnez les fichiers que vous voulez télécharger. 8. Activez les privilèges de lecture publique pour chaque objet que vous chargez sur votre compartiment Amazon S3. a. b. c. 9. Choisissez Set Details. Dans la page Set Details, choisissez Set Permissions. Dans la page Set Permissions, choisissez Make everything public. Cliquez sur Start Upload. Lorsque le chargement est terminé, vous pouvez naviguer vers cet article grâce à son URL. Dans le cas de l'exemple précédent, l'URL serait : API Version 2016-01-13 36 Amazon CloudFront Guide du développeur Etape 3 : Créer une distribution web CloudFront http://s3.amazonaws.com/example-myawsbucket/filename Utilisez votre URL Amazon S3 pour vérifier que votre contenu est accessible publiquement, mais n'oubliez pas qu'il ne s'agit pas de l'URL que vous utiliserez lorsque vous serez prêt à distribuer votre contenu. Etape 3 : Créer une distribution web CloudFront Pour créer une distribution web CloudFront 1. Ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez Create Distribution. 3. Sur la page Select a delivery method for your content, dans la section Web, choisissez Get Started. 4. Sur la page Create Distribution, sous Origin Settings, choisissez le compartiment Amazon S3 que vous avez créé plus tôt. Pour Origin ID, Origin Path, Restrict Bucket Access et Origin Custom Headers, acceptez les valeurs par défaut. 5. Sous Default Cache Behavior Settings, acceptez les valeurs par défaut, et CloudFront exécutera les actions suivantes : • Transmettre toutes les demandes utilisant l'URL CloudFront pour votre distribution (par exemple, http://d111111abcdef8.cloudfront.net/image.jpg) au compartiment Amazon S3 que vous avez spécifié à l'étape 4. • Autoriser les utilisateurs finaux à recourir à HTTP ou HTTPS pour accéder à vos objets. • Répondre aux demandes relatives à vos objets. • Mettre en cache vos objets aux emplacements périphériques CloudFront pendant 24 heures. • Acheminer uniquement les en-têtes de demande par défaut à votre origine, et ne pas mettre en cache vos objets en fonction des valeurs des en-têtes. • Exclure les cookies et les paramètres de chaîne de requête, le cas échéant, lors de la transmission des demandes relatives aux objets à votre origine. (Amazon S3 ne traite pas les cookies et ne traite qu'un ensemble limité de paramètres de chaîne de requête.) • Ne pas être configuré pour distribuer les fichiers multimédias au format Microsoft Smooth Streaming. • Autoriser tout le monde à consulter votre contenu. • Ne pas compresser automatiquement votre contenu. Pour plus d'informations sur les options de comportements de cache, consultez Paramètres de comportement du cache (p. 66). 6. Sous Distribution Settings, entrez les valeurs applicables : Catégorie de tarifs – Sélectionnez la catégorie de tarifs associée au prix maximum que vous souhaitez payer pour un service CloudFront. Par défaut, CloudFront sert vos objets à partir des emplacements périphériques de toutes les régions CloudFront. Pour plus d'informations sur les catégories de tarifs et sur la façon dont votre choix de catégorie affecte les performances de CloudFront pour votre distribution, consultez Choix de API Version 2016-01-13 37 Amazon CloudFront Guide du développeur Etape 3 : Créer une distribution web CloudFront la catégorie de tarifs pour une distribution CloudFront (p. 49). Pour plus d'informations sur la tarification CloudFront, y compris la façon dont les catégories de tarifs correspondent aux régions CloudFront, consultez Tarification de Amazon CloudFront. ACL Web AWS WAF Si vous voulez utiliser AWS WAF pour autoriser ou bloquer les requêtes HTTP et HTTPS selon des critères que vous spécifiez, choisissez la liste ACL web à associer à cette distribution. Pour plus d'informations sur AWS WAF, consultez le Guide du développeur AWS WAF. (Facultatif) Alternate Domain Names (CNAMEs) Spécifiez un ou plusieurs noms de domaine que vous voulez utiliser pour les URL de vos objets à la place du nom de domaine que CloudFront attribue lorsque vous créez votre distribution. Par exemple, si vous voulez que l'URL de l'objet : /images/image.jpg se présente ainsi : http://www.example.com/images/image.jpg et non comme suit : http://d111111abcdef8.cloudfront.net/images/image.jpg créez un CNAME pour www.example.com. Important Si vous ajoutez un CNAME pour www.example.com à votre distribution, vous devez aussi créer (ou mettre à jour) un enregistrement CNAME avec votre service DNS pour acheminer les requêtes de www.example.com vers d111111abcdef8.cloudfront.net. Vous devez avoir l'autorisation de créer un enregistrement CNAME avec le fournisseur de services DNS du domaine. Généralement, cela signifie que le domaine vous appartient, mais il se peut aussi que vous développiez une application pour le propriétaire du domaine. Pour plus d'informations sur les CNAME, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Pour obtenir la limite actuelle relative au nombre de noms de domaine alternatifs qu'il est possible d'ajouter à une distribution, consultez Limites de Amazon CloudFront dans Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/create?issueType=service-limitincrease&limitType=service-code-cloudfront-distributions. Certificat SSL Acceptez la valeur par défaut, Default CloudFront Certificate. (Facultatif) Default Root Object Objet que CloudFront doit demander depuis votre origine (par exemple, index.html) en cas de demande de l'URL racine de votre distribution (http://www.example.com/) au lieu d'un objet de votre distribution (http://www.example.com/product-description.html). Spécifier un objet racine par défaut permet d'éviter d'exposer le contenu de votre distribution. (Facultatif) Logging Si vous voulez que CloudFront enregistre les informations relatives à chaque demande d'un objet et stocke les fichiers journaux dans un compartiment Amazon S3, sélectionnez On, et spécifiez le compartiment et un préfixe facultatif pour les noms des fichiers journaux. L'activation de la journalisation ne fait l'objet d'aucuns frais supplémentaires, mais vous augmentez le coût habituel de Amazon S3 de stockage et d'accès aux fichiers. CloudFront ne supprime pas les journaux automatiquement, mais vous pouvez les supprimer à tout moment. API Version 2016-01-13 38 Amazon CloudFront Guide du développeur Etape 4 : Tester les liens Cookie Logging Dans cet exemple, comme nous utilisons Amazon S3 comme origine de vos objets et que Amazon S3 ne traite pas les cookies, nous vous recommandons de sélectionner Off comme valeur de Cookie Logging. (Facultatif) Comment Entrez les commentaires que vous voulez enregistrer avec la distribution. Distribution State Sélectionnez Enabled si vous voulez que CloudFront commence à traiter les demandes dès que la distribution est créée ou sélectionnez Disabled si vous ne voulez pas que CloudFront commence à traiter les demandes après la création de la distribution. 7. Choisissez Create Distribution. 8. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Si vous avez choisi d'activer la distribution, elle sera alors prête pour traiter les demandes. Cela devrait prendre moins de 15 minutes. Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. (Elle apparaît aussi sous l'onglet General d'une distribution sélectionnée.) Etape 4 : Tester les liens Après que vous avez créé votre distribution, CloudFront sait où se trouve votre serveur d'origine Amazon S3 et vous-même connaissez le nom de domaine associé à la distribution. Vous pouvez créer un lien vers le contenu de votre compartiment Amazon S3 avec ce nom de domaine, et faire que CloudFront le serve. Note Vous devez attendre jusqu'à ce que l'état de la distribution devienne Deployed avant de tester vos liens. Pour établir le lien vers vos objets 1. Copiez le code HTML suivant dans un nouveau fichier : • Remplacez <domain name> par le nom de domaine que CloudFront a attribué à votre distribution. • Remplacez <object name> par le nom d'un fichier de votre compartiment Amazon S3. <html> <head>My CloudFront Test</head> <body> <p>My text content goes here.</p> <p><img src="http://domain name/object name" alt="my test image"/> </body> </html> Par exemple, si votre nom de domaine était d111111abcdef8.cloudfront.net et que votre objet était image.jpg, l'URL du lien sera : API Version 2016-01-13 39 Amazon CloudFront Guide du développeur Etape 4 : Tester les liens http://d111111abcdef8.cloudfront.net/image.jpg. Si votre objet est dans un dossier à l'intérieur de votre compartiment, incluez le dossier dans l'URL. Par exemple, si image.jpg se trouve dans un dossier images, l'URL sera : 2. 3. http://d111111abcdef8.cloudfront.net/images/image.jpg Enregistrez le texte dans un fichier ayant .html comme extension de nom de fichier. Ouvrez votre page web dans un navigateur afin de vous assurer que vous voyez le contenu. Si vous ne pouvez pas voir le contenu, confirmez que vous avez exécuté toutes les étapes correctement. Vous pouvez aussi consulter les conseils dans Dépannage (p. 294). Le navigateur renvoie votre page avec le fichier d'image incorporé et servi depuis l'emplacement périphérique que CloudFront a déterminé comme approprié pour servir l'objet. Pour plus d'informations sur l'utilisation de CloudFront, consultez Ressources Amazon CloudFront (p. 365). API Version 2016-01-13 40 Amazon CloudFront Guide du développeur Utiliser les distributions Rubriques • Présentation des distributions Web et RTMP (p. 42) • Création de distributions Web et RTMP (p. 43) • Liste, affichage et mise à jour des distributions CloudFront (p. 43) • Suppression d'une distribution (p. 44) • Utilisation de noms de domaines alternatifs (CNAME) (p. 45) • Choix de la catégorie de tarifs pour une distribution CloudFront (p. 49) • Utilisation de CloudFront avec Amazon S3 (p. 50) • Modifications de l'API CloudFront (p. 53) Le tableau suivant indique les actions possibles à effectuer sur une distribution et fournissent des liens vers la documentation correspondante pour effectuer ces actions au moyen de la console CloudFront et de l'API CloudFront. Action Utilisation de la console CloudFront Utilisation de l'API CloudFront : distributions Web Utilisation de l'API CloudFront : distributions RTMP Créer une distribution Distributions Web : voir Liste des tâches de création d'une distribution web (p. 54) Distributions RTMP : voir Liste des tâches du streaming multimédia avec RTMP (p. 89) Consultez POST Distribution Consultez POST Streaming Distribution Dresser une liste des distributions Voir Liste, affichage et mise à jour des distributions CloudFront (p. 43) Consultez GET Distribution List Consultez GET Streaming Distribution List API Version 2016-01-13 41 Amazon CloudFront Guide du développeur Présentation des distributions Web et RTMP Action Utilisation de la console CloudFront Utilisation de l'API CloudFront : distributions Web Utilisation de l'API CloudFront : distributions RTMP Obtenir toutes les informations sur une distribution Voir Liste, affichage et mise à jour des distributions CloudFront (p. 43) Consultez GET Distribution Consultez GET Streaming Distribution Obtenir la configuration de la distribution Voir Liste, affichage et mise à jour des distributions CloudFront (p. 43) Consultez GET Distribution Config Consultez GET Streaming Distribution Config Mettre à jour une distribution Voir Liste, affichage et mise à jour des distributions CloudFront (p. 43) Consultez PUT Distribution Config Consultez PUT Streaming Distribution Config Supprimer une distribution Voir Suppression d'une distribution (p. 44) Consultez DELETE Distribution Consultez DELETE Streaming Distribution Présentation des distributions Web et RTMP Lorsque vous souhaitez utiliser CloudFront pour distribuer votre contenu, vous devez créer une distribution et spécifier des paramètres de configuration tels que : • Votre origine, qui est le compartiment Amazon S3 ou le serveur HTTP auprès duquel CloudFront obtient les fichiers à distribuer. Vous pouvez spécifier toute combinaison allant jusqu'à 10 compartiments Amazon S3 et/ou serveurs HTTP comme vos origines. • Si vous voulez que les fichiers soient à la disposition de tout le monde ou si vous souhaitez restreindre l'accès à des utilisateurs sélectionnés. • Si vous souhaitez que CloudFront exige des utilisateurs d'employer des connexions HTTPs pour accéder à votre contenu. • Si vous souhaitez que CloudFront transfère les cookies et/ou les chaînes de requêtes à votre origine. • Si vous souhaitez que CloudFront empêche les utilisateurs de certains pays d'accéder à votre contenu. • Si vous souhaitez que CloudFront crée des journaux d'accès. Pour la limite actuelle sur le nombre de distributions Web et RTMP possibles à créer pour chaque compte AWS, consultez Limites Amazon CloudFront sous Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/ case/create?issueType=service-limit-increase&limitType=service-code-cloudfront-distributions. Le nombre de fichiers possibles à servir par distribution est illimité. Distributions Web Vous pouvez utiliser des distributions Web pour diffuser le contenu suivant via HTTP ou HTTPS : • Le contenu de téléchargement statique et dynamique, comme par exemple des fichiers .html, .css, .php et image, via HTTP ou HTTPS. API Version 2016-01-13 42 Amazon CloudFront Guide du développeur Distributions RTMP • Du contenu multimédia sur demande avec un téléchargement progressif et Apple HTTP Live Streaming (HLS). Pour de plus amples informations, veuillez consulter la rubrique pertinente sous Utilisation des distributions web (p. 54). Il n'est pas possible de diffuser de contenu multimédia Adobe Flash via HTTP ou HTTPS, mais vous pouvez le diffuser avec une distribution RTMP CloudFront. Reportez-vous à Distributions RTMP (p. 43) ci-dessous. • Un événement en direct, tel qu'une réunion, une conférence ou un concert en temps réel. Pour le streaming en direct, vous pouvez créer la distribution automatiquement au moyen d'une pile AWS CloudFormation. Pour plus de détails, veuillez vous reporter au didacticiel sur le streaming en direct sous Didacticiels pour la diffusion en streaming CloudFront (p. 298). Pour les distributions Web, votre origine peut être soit un compartiment Amazon S3 soit un serveur HTTP, comme par exemple un serveur Web. Pour plus de détails sur le fonctionnement des distributions Web, y compris les valeurs spécifiées lors de la création d'une distribution Web, consultez Utilisation des distributions web (p. 54). Pour plus d'informations sur la création d'une distribution Web, reportez-vous à Liste des tâches de création d'une distribution web (p. 54). Distributions RTMP Les distributions RTMP diffusent des fichiers multimédias au moyen d'Adobe Media Server et du protocole RTMP (Adobe Real-Time Messaging Protocol). Une distribution RTMP doit utiliser un compartiment Amazon S3 comme origine. Pour plus de détails sur les valeurs à spécifier lors de la création d'une distribution RTMP, consultez Utilisation des distributions RTMP (p. 87). Pour plus d'informations sur la création d'une distribution RTMP, reportez-vous à Liste des tâches du streaming multimédia avec RTMP (p. 89). Création de distributions Web et RTMP Distributions Web : pour plus de détails sur la création de distributions Web au moyen de la console CloudFront, consultez Liste des tâches de création d'une distribution web (p. 54). Pour des informations sur la création de distributions Web avec l'API CloudFront, consultez POST Distribution sous Amazon CloudFront API Reference. Distributions RTMP : pour plus de détails sur la création de distributions RTMP au moyen de la console CloudFront, consultez Liste des tâches du streaming multimédia avec RTMP (p. 89). Pour des informations sur la création de distributions RTMP avec l'API CloudFront, consultez POST Streaming Distribution sous Amazon CloudFront API Reference. Liste, affichage et mise à jour des distributions CloudFront Vous pouvez utiliser la console CloudFront pour répertorier les distributions CloudFront associées à votre compte AWS, consulter les paramètres d'une distribution, et mettre à jour la plupart des paramètres. Lorsque vous enregistrez les modifications de votre distribution, CloudFront commence à les propager à tous les emplacements périphériques. Tant que votre configuration n'est pas mise à jour dans un emplacement périphérique, CloudFront continue de diffuser votre contenu à partir de cet emplacement sur la base de la configuration précédente. Une fois votre configuration mise à jour dans API Version 2016-01-13 43 Amazon CloudFront Guide du développeur Suppression d'une distribution un emplacement périphérique, CloudFront commence immédiatement à diffuser votre contenu à partir de cet emplacement sur la base de la nouvelle configuration. Vos modifications ne se propagent pas instantanément à chaque emplacement périphérique, mais cette propagation prend normalement moins de 15 minutes. Une fois la propagation terminée, le statut de votre distribution passe d'InProgress à Deployed. Tandis que CloudFront propage vos modifications aux emplacements périphériques, nous ne pouvons pas déterminer si un emplacement périphérique donné diffuse votre contenu selon l'ancienne ou la nouvelle configuration. Pour répertorier, afficher et mettre à jour les distributions CloudFront au moyen de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans le volet supérieur de la console CloudFront sélectionnez la distribution que vous souhaitez afficher ou mettre à jour. Note Le volet supérieur répertorie toutes les distributions associées au compte AWS utilisé lors de la connexion à la console CloudFront. 3. Pour afficher ou modifier les paramètres d'une distribution RTMP, passez à l'étape 4. Pour afficher ou modifier les paramètres d'une distribution Web, procédez comme indiqué cidessous. a. b. Dans le volet Distribution Settings, cliquez sur l'onglet des paramètres à modifier : General, Origins ou Behaviors. Pour les paramètres généraux, cliquez sur Edit. Pour les origines ou les comportements de cache, cliquez sur l'origine ou le comportement en question, puis sur Edit. c. Entrez ou mettez à jour les valeurs applicables. Pour plus d'informations sur les champs, consultez les rubriques suivantes : • Paramètres généraux : Détails de la distribution (p. 73) • Paramètres d'origine : Paramètres d'origine (p. 61) 4. • Paramètres de comportement du cache : Paramètres de comportement du cache (p. 66) d. Cliquez sur Yes, Edit. Pour afficher ou modifier les paramètres d'une distribution RTMP : a. b. c. Dans le volet Distribution Details, cliquez sur Edit. Entrez ou mettez à jour les valeurs applicables. Pour obtenir des informations sur les champs, consultez Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution RTMP (p. 90). Cliquez sur Yes, Edit. Suppression d'une distribution Si vous ne souhaitez plus utiliser une distribution, exécutez la procédure suivante pour la supprimer avec la console CloudFront. Vous pouvez aussi supprimer une distribution avec l'API CloudFront : • Pour supprimer une distribution Web, utilisez l'action d'API DELETE Distribution. Pour en savoir plus, consultez DELETE Distribution dans le manuel Amazon CloudFront API Reference. API Version 2016-01-13 44 Amazon CloudFront Guide du développeur Utilisation de noms de domaines alternatifs (CNAME) • Pour supprimer une distribution RTMP, utilisez l'action d'API DELETE Streaming Distribution. Pour en savoir plus, consultez DELETE Streaming Distribution dans le manuel Amazon CloudFront API Reference. Note CloudFront vous permet de créer au total un maximum de 100 distributions, Web et RTMP combinées, pour un compte AWS. Pour supprimer une distribution CloudFront avec la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans le volet de droite de la console CloudFront recherchez la distribution à supprimer. 3. Si la valeur de la colonne State est Disabled, passez à l'étape 7. Si la valeur de State est Enabled et si la valeur de Status est Deployed, passez à l'étape 4 pour désactiver la distribution avant de la supprimer. Si la valeur de State est Enabled et si la valeur de Status est InProgress, attendez que Status devienne Deployed. Passez ensuite à l'étape 4 pour désactiver la distribution avant de la supprimer. 4. Dans le volet de droite de la console CloudFront, cochez la case correspondant à la distribution à supprimer. 5. Cliquez sur Disabled pour désactiver la distribution, puis sur Yes, Disable pour confirmer. Cliquez ensuite sur Close. 6. La valeur de la colonne State se transforme immédiatement en Disabled. Attendez jusqu'à ce que la valeur de la colonne Status se transforme en Deployed. 7. Cochez la case correspondant à la distribution à supprimer. 8. Cliquez sur Delete, puis sur Yes, Delete pour confirmer. Cliquez ensuite sur Close. Utilisation de noms de domaines alternatifs (CNAME) Dans CloudFront, un nom de domaine alternatif, également connu sous le nom de CNAME, vous permet d'utiliser votre propre nom de domaine (comme par exemple www.example.com) pour les liens vers vos objets au lieu de celui donné par CloudFront pour votre distribution. Les distributions Web et RTMP prennent en charge les noms de domaines alternatifs. Lorsque vous créez une distribution, CloudFront renvoie un nom de domaine pour la distribution, par exemple : d111111abcdef8.cloudfront.net Lorsque vous utilisez le nom de domaine CloudFront pour vos objets, l'URL d'un objet appelé / images/image.jpg est : http://d111111abcdef8.cloudfront.net/images/image.jpg Si vous souhaitez utiliser votre propre nom de domaine, tel que www.example.com, au lieu du nom de domaine cloudfront.net donné par CloudFront à votre distribution, vous pouvez ajouter un nom API Version 2016-01-13 45 Amazon CloudFront Guide du développeur Utilisation du caractère générique * dans les noms de domaines alternatifs de domaine alternatif à votre distribution pour www.example.com. Vous pouvez alors utiliser l'URL suivante pour /images/image.jpg : http://www.example.com/images/image.jpg Rubriques • Utilisation du caractère générique * dans les noms de domaines alternatifs (p. 46) • Restrictions relatives à l'utilisation de noms de domaines alternatifs (p. 46) • Ajout d'un nom de domaine alternatif (p. 47) Utilisation du caractère générique * dans les noms de domaines alternatifs Lorsque vous ajoutez des noms de domaines alternatifs, vous pouvez utiliser le caractère générique * au début d'un nom de domaine au lieu de spécifier individuellement les sous-domaines. Avec *.example.com comme nom de domaine alternatif, vous pouvez par exemple utiliser tout nom de domaine qui se termine par example.com dans les URL de vos objets, tel que www.example.com, product-name.example.com et marketing.product-name.example.com. Le nom d'un objet est identique, quel que soit le nom de domaine, par exemple : www.example.com/images/image.jpg product-name.example.com/images/image.jpg marketing.product-name.example.com/images/image.jpg Le nom de domaine alternatif doit commencer par un astérisque et un point ( *. ). Il n'est pas possible d'utiliser un caractère générique pour remplacer une partie du nom de sous-domaine, comme cela : *domain.example.com, et il n'est pas non plus possible de remplacer un sous-domaine au milieu d'un nom de domaine, comme cela : subdomain.*.example.com. Un nom de domaine alternatif avec caractère générique, comme par exemple *.example.com, peut comporter un autre nom de domaine alternatif, tel que example.com, à condition que les deux se trouvent dans la même distribution CloudFront, ou qu'ils soient dans des distributions créées en utilisant le même compte AWS. Restrictions relatives à l'utilisation de noms de domaines alternatifs Veuillez noter les restrictions suivantes relatives à l'utilisation de noms de domaines alternatifs : Nombre maximum de noms de domaines alternatifs Pour obtenir la limite actuelle relative au nombre de noms de domaine alternatifs qu'il est possible d'ajouter à une distribution, consultez Limites de Amazon CloudFront dans Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/create?issueType=service-limitincrease&limitType=service-code-cloudfront-distributions. Autorisation de modifier la configuration DNS Si vous ajoutez des noms de domaines alternatifs à votre distribution, vous devez créer des enregistrements CNAME pour acheminer les requêtes DNS pour les noms de domaines à votre distribution CloudFront. Vous devez avoir l'autorisation de créer des enregistrements CNAME avec le prestataire de services DNS pour les domaines correspondants. Cela signifie normalement que les domaines vous appartiennent, mais vous pouvez aussi développer une application pour le propriétaire du domaine. API Version 2016-01-13 46 Amazon CloudFront Guide du développeur Ajout d'un nom de domaine alternatif Duplication et chevauchement de noms de domaines alternatifs Il n'est pas possible d'ajouter de nom de domaine alternatif à une distribution CloudFront si ce nom alternatif existe déjà dans une autre distribution CloudFront, même si votre compte AWS possède l'autre distribution. Néanmoins, vous pouvez ajouter un nom de domaine alternatif à caractère générique, comme par exemple *.example.com, qui comporte (ou qui chevauche) un nom de domaine alternatif sans caractère générique, tel que www.example.com. Les noms de domaines se chevauchant peuvent se trouver dans la même distribution ou dans des distributions séparées, tant que les deux distributions ont été créés avec le même compte AWS. Noms de domaines alternatifs dans la zone apex pour un domaine Lorsque vous ajoutez un nom de domaine alternatif à une distribution, vous devez créer un enregistrement CNAME dans votre configuration DNS pour acheminer les requêtes DNS pour le nom de domaine à votre distribution CloudFront. Cependant, il n'est pas possible de créer un enregistrement CNAME pour le nœud supérieur d'un espace de nom DNS également dénommé zone apex. Le protocole DNS ne le permet pas. Par exemple, si vous enregistrez le nom DNS example.com, le zone apex est example.com. Il n'est pas possible de créer d'enregistrement CNAME pour example.com, mais vous pouvez créer des enregistrements CNAME pour www.example.com, newproduct.example.com, etc. Si vous utilisez Amazon Route 53 comme service DNS, vous pouvez créer un jeu d'enregistrements de ressources d'alias au lieu d'un CNAME. Vous pouvez créer un jeu d'enregistrements de ressources d'alias pour un nom de domaine au zone apex (example.com). De plus, avec un jeu d'enregistrements de ressources d'alias, vous ne payez pas pour les requêtes Amazon Route 53. Pour en savoir plus, consultez Routing Queries to an Amazon CloudFront Distribution dans le manuel Amazon Route 53 Manuel du développeur. Noms de domaines alternatifs et HTTPS Si vous souhaitez que les visionneuses emploient HTTPS avec des noms de domaines alternatifs, une configuration supplémentaire est nécessaire. Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). Ajout d'un nom de domaine alternatif La liste de tâches suivante décrit le processus d'utilisation de la console CloudFront pour ajouter un nom de domaine alternatif à votre distribution afin que vous puissiez utiliser votre propre nom de domaine dans vos liens au lieu du nom de domaine CloudFront associé à votre distribution. Note Si vous souhaitez que les visionneuses emploient HTTPS avec votre nom de domaine alternatif, consultez Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). Pour des informations sur la mise à jour de votre distribution avec l'API CloudFront, consultez Utiliser les distributions (p. 41). Ajout d'un nom de domaine alternatif avec la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans la console CloudFront, procédez comme indiqué ci-dessous pour mettre à jour votre distribution afin d'inclure votre nom de domaine en tant que nom de domaine alternatif dans le champ Alternate Domain Names (CNAMEs). a. Dans le volet supérieur de la console CloudFront sélectionnez la distribution à mettre à jour, puis cliquez sur Distribution Settings. API Version 2016-01-13 47 Amazon CloudFront Guide du développeur Ajout d'un nom de domaine alternatif b. Dans l'onglet General, cliquez sur Edit. c. Ajoutez les noms de domaines alternatifs applicables dans le champ Alternate Domain Names (CNAMEs). Séparez les noms de domaines par des virgules ou placez-les chacun sur une nouvelle ligne. d. Distributions Web uniquement : pour SSL Certificate, choisissez l'option applicable : • Si vous ne voulez pas utiliser SSL – Cliquez sur Default CloudFront Certificate. • Si vous voulez utiliser SSL – Cliquez sur Custom SSL Certificate, puis choisissez un certificat dans la liste. Notez que la liste peut inclure à la fois les certificats mis en service par AWS Certificate Manager et ceux achetés auprès d'une autre autorité de certification et téléchargés dans le magasin de certificats IAM. Si vous avez chargé un certificat dans le magasin de certificats IAM mais qu'il n'apparaît pas dans la liste, revoyez la procédure Utilisation de noms de domaines alternatifs avec HTTPS (p. 247) afin de vérifier si vous avez bien téléchargé le certificat dans ce magasin. Si vous choisissez cette valeur, il est recommandé de n'utiliser qu'un nom de domaine alternatif dans vos URL d'objet (https://example.com/logo.jpg). Si vous utilisez votre nom de domaine alternatif CloudFront (https://d111111abcdef8.cloudfront.net/logo.jpg) et que la visionneuse prend en charge l'indication du nom de serveur (SNI), CloudFront se comporte normalement. Néanmoins, une visionneuse qui ne prend pas en charge l'extension SNI adopte l'un des comportements suivants, selon la valeur du paramètre Clients Supported : • All Clients : si la visionneuse ne prend pas en charge l'extension SNI, elle affiche un avertissement, car le nom de domaine CloudFront ne correspond pas au nom de domaine de votre certificat SSL. • Only Clients that Support Server Name Indication (SNI) : CloudFront abandonne la connexion avec la visionneuse sans renvoyer l'objet. e. Distributions Web uniquement : choisissez l'option applicable pour Clients Supported : • All Clients : CloudFront utilise des adresses IP dédiées pour diffuser votre contenu HTTPS. Si vous sélectionnez cette option, des frais supplémentaires s'appliqueront lors de l'association de votre certificat SSL à une distribution activée. Pour en savoir plus, consultez la page http://aws.amazon.com/cloudfront/pricing. • Only Clients that Support Server Name Indication (SNI) : les navigateurs plus anciens ou les autres clients qui ne prennent pas en charge l'extension SNI doivent utiliser une autre méthode pour accéder à votre contenu. Pour de plus amples informations, veuillez consulter Déterminer comment CloudFront traite les requêtes HTTPS (p. 244). f. Cliquez sur Yes, Edit. 3. Dans la console CloudFront, au niveau de l'onglet General de votre distribution, vérifiez si le statut de la distribution est passé sur Deployed. Si vous essayez d'utiliser un nom de domaine alternatif avant le déploiement des mises à jour de votre distribution, les liens créés lors des étapes suivantes risquent de ne pas fonctionner. 4. Utilisez la méthode fournie par votre prestataire de services DNS et ajoutez un jeu d'enregistrements de ressources CNAME à la zone hébergée de votre domaine. Ce nouveau jeu d'enregistrements de ressources CNAME redirigera les requêtes DNS de votre domaine (par exemple, www.example.com) vers le nom de domaine CloudFront de votre distribution (par exemple, d111111abcdef8.cloudfront.net). Pour plus d'informations, consultez la documentation fournie par votre prestataire de services DNS. Si vous utilisez Amazon Route 53 comme service DNS, vous pouvez créer un jeu d'enregistrements de ressources d'alias au lieu d'un CNAME. Avec un jeu d'enregistrements de ressources d'alias, vous ne payez pas pour les requêtes Amazon Route 53. De plus, vous pouvez créer un jeu d'enregistrements de ressources d'alias pour un nom de domaine au zone API Version 2016-01-13 48 Amazon CloudFront Guide du développeur Choix de la catégorie de tarifs pour une distribution CloudFront apex (example.com), ce que DNS n'autorise pas pour les CNAME. Pour en savoir plus, consultez Routing Queries to an Amazon CloudFront Distribution dans le manuel Amazon Route 53 Manuel du développeur. Important Si vous avez déjà un enregistrement CNAME existant pour votre nom de domaine, mettez à jour ce jeu d'enregistrements de ressources ou remplacez-le par un nouveau qui dirige vers le nom de domaine CloudFront de votre distribution. 5. Vérifiez également si votre jeu d'enregistrements de ressources CNAME dirige vers le nom de domaine de votre distribution et non pas vers celui de vos serveurs d'origine. Utilisez dig ou un outil similaire pour vérifier si le jeu d'enregistrements de ressources CNAME créé à l'étape 4 dirige bien vers le nom de domaine de votre distribution. Pour plus d'informations sur dig, consultez http://www.kloth.net/services/dig.php. L'exemple suivant illustre une requête dig sur le domaine images.example.com ainsi que la partie pertinente de la réponse. [prompt]> dig images.example.com ; <<> DiG 9.3.3rc2 <<> images.example.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917 ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;images.example.com. IN ;; ANSWER SECTION: images.example.com. 10800 IN ... ... 6. 7. A CNAME d111111abcdef8.cloudfront.net. La ligne sous Answer Section indique un jeu d'enregistrements de ressources CNAME qui achemine les requêtes pour images.example.com au nom de domaine de distribution CloudFront d111111abcdef8.cloudfront.net. Le jeu d'enregistrements de ressources CNAME est correctement configuré si le nom à droite de CNAME correspond bien au nom de domaine de votre distribution CloudFront. Si cette valeur est différente (s'il s'agit, par exemple, du nom de domaine de votre compartiment Amazon S3), le jeu d'enregistrements de ressources CNAME n'est pas configuré correctement. Vous devez alors retourner à l'étape 4 et corriger l'enregistrement CNAME afin de diriger vers le nom de domaine de votre distribution. Testez le nom de domaine alternatif en créant des liens de test qui utilisent votre nom de domaine dans l'URL au lieu du nom de domaine CloudFront de votre distribution. Dans votre application, changez les liens de vos objets de manière à utiliser votre nom de domaine alternatif au lieu du nom de domaine CloudFront de votre distribution. Choix de la catégorie de tarifs pour une distribution CloudFront CloudFront dispose d'emplacements périphériques partout au monde. Comme nos frais varient pour chaque emplacement périphérique, le tarif appliqué varie également en fonction de l'emplacement périphérique à partir duquel CloudFront diffuse vos requêtes. API Version 2016-01-13 49 Amazon CloudFront Guide du développeur Utilisation de CloudFront avec Amazon S3 Les emplacements périphériques CloudFront sont regroupés en zones géographiques elles-mêmes regroupées en catégories de tarifs. La catégorie de tarifs par défaut inclut toutes les régions. Une autre catégorie de tarifs inclut la plupart des régions (Etats-Unis, Europe, Hong Kong, Corée, Singapour, Japon et Inde) mais exclut les plus onéreuses. Une troisième catégorie de tarifs inclut uniquement les régions les moins onéreuses (Etats-Unis et Europe). Par défaut, CloudFront répond aux requêtes pour vos objets uniquement sur la base des performances : les objets sont diffusés à partir de l'emplacement périphérique pour lequel la latence est moindre pour la visionneuse concernée. Si vous êtes prêt à accepter une latence supérieure pour vos visionneuses dans certaines régions graphiques en contrepartie d'un coût moindre, vous pouvez choisir une classe de prix qui n'inclut pas toutes les régions CloudFront. Même si CloudFront diffuse vos objets uniquement à partir des emplacements périphériques de la catégorie de tarifs sélectionnée, il diffuse le contenu à partir de l'emplacement périphérique avec la latence la plus faible parmi ces emplacements. Néanmoins, certaines visionneuses, et surtout celles qui ne se trouvent pas dans une région couverte par votre catégorie de tarifs, peuvent subir une latence supérieure à celle qu'elles auraient si votre contenu était diffusé à partir de tous les emplacements périphériques CloudFront. Si vous choisissez, par exemple, la catégorie de tarifs qui inclut uniquement les Etats-Unis et l'Europe, les visionneuses situées en Asie et en Australie risquent de subir une latence supérieure que si vous aviez choisi la catégorie qui comporte l'Asie et l'Australie. Si vous choisissez une catégorie de tarifs qui n'inclut pas tous les emplacements périphériques, CloudFront pourra occasionnellement diffuser des requêtes pour votre contenu à partir d'emplacements périphériques situés dans une région qui ne figure pas dans votre catégorie. Si cela se produit, aucun frais supplémentaire ne sera appliqué par rapport à la région plus onéreuse à partir de laquelle l'objet aura été diffusé. Vous n'aurez à payer que les frais associés à la région la moins onéreuse de votre catégorie de tarifs. Vous pouvez choisir une catégorie de tarifs lorsque vous créez ou mettez à jour une distribution RTMP ou Web CloudFront. Pour vous reporter à la rubrique correspondante sur la création ou la mise à jour d'une distribution Web ou RTMP au moyen de la console ou de l'API CloudFront, consultez Utiliser les distributions (p. 41). Si vous créez ou mettez à jour une distribution au moyen de l'API CloudFront, d'un kit SDK d'AWS ou d'AWS CloudFormation, reportez-vous à la rubrique correspondante pour la liste des valeurs valides (recherchez PriceClass) : • Distributions Web – DistributionConfig Complex Type • Distributions RTMP – StreamingDistributionConfig Complex Type Pour plus d'informations sur les tarifs et catégories de tarifs CloudFront, accédez à la page Amazon CloudFront Pricing. Utilisation de CloudFront avec Amazon S3 Vous pouvez stocker votre contenu dans un compartiment Amazon S3 et utiliser CloudFront pour distribuer votre contenu. Cette rubrique explique comment utiliser CloudFront avec votre compartiment S3, et comment mettre à jour votre distribution CloudFront si vous déplacez le compartiment S3 dans une autre région. Rubriques • Ajout de CloudFront lors de la distribution de contenu à partir d'Amazon S3 (p. 51) • Déplacement d'un compartiment Amazon S3 vers une région différente (p. 52) API Version 2016-01-13 50 Amazon CloudFront Guide du développeur Ajout de CloudFront lors de la distribution de contenu à partir d'Amazon S3 Ajout de CloudFront lors de la distribution de contenu à partir d'Amazon S3 Si vous stockez vos objets dans un compartiment Amazon S3, vos utilisateurs peuvent accéder directement à vos objets à partir de S3, ou sinon vous pouvez configurer CloudFront de manière à obtenir vos objets à partir de S3 afin de les distribuer à vos utilisateurs. CloudFront peut s'avérer plus rentable si vos utilisateurs accèdent fréquemment à vos objets, car le tarif du transfert de données CloudFront est plus intéressant que celui d'Amazon S3 pour les utilisations élevées. De plus, les téléchargements sont plus rapides avec CloudFront qu'avec Amazon S3 seul, car vos objets sont stockés plus près de vos utilisateurs. Note Si vous souhaitez que CloudFront respecte les paramètres de partage des ressources crossorigine d'Amazon S3, configurez CloudFront de manière à transmettre l'en-tête Origin à Amazon S3. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Si vous distribuez actuellement du contenu directement à partir de votre compartiment Amazon S3 avec votre propre nom de domaine (comme example.com) au lieu du nom de domaine de votre compartiment Amazon S3 (tel que MyAWSBucket.s3.amazonaws.com), vous pouvez utiliser la procédure ci-dessous pour ajouter CloudFront de manière totalement transparente. Pour ajouter CloudFront tandis que vous distribuez déjà du contenu à partir d'Amazon S3 1. Créez une distribution CloudFront au moyen de la procédure décrite dans la rubrique correspondante : • Liste des tâches de création d'une distribution web (p. 54) • Liste des tâches du streaming multimédia avec RTMP (p. 89) Lors de la création de la distribution, indiquez le nom de votre compartiment Amazon S3 comme serveur d'origine. Important Pour que votre compartiment fonctionne avec CloudFront, le nom doit être conforme aux exigences DNS en la matière. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. Si vous utilisez un CNAME avec Amazon S3, indiquez aussi le CNAME de votre distribution. 2. Créez une page Web test qui contient des liens vers des objets accessibles au public dans votre compartiment Amazon S3 et testez les liens. Pour ce test initial, utilisez le nom de domaine CloudFront de votre distribution dans les URL d'objets, comme par exemple http:// d111111abcdef8.cloudfront.net/images/image.jpg. Pour plus d'informations sur le format des URL CloudFront, consultez Format des URL pour les objets CloudFront (p. 100). 3. Si vous utilisez des CNAME Amazon S3, votre application emploie votre nom de domaine (comme par exemple example.com) pour référencer les objets de votre compartiment Amazon S3 au lieu d'employer le nom de votre compartiment (comme par exemple myawsbucket.s3.amazonaws.com). Pour continuer d'utiliser votre propre nom de domaine afin de API Version 2016-01-13 51 Amazon CloudFront Guide du développeur Déplacement d'un compartiment Amazon S3 vers une région différente référencer les objets au lieu d'employer le nom de domaine CloudFront de votre distribution (soit par exemple d111111abcdef8.cloudfront.net), vous devez mettre à jour vos paramètres auprès de votre prestataire de services DNS. Pour que les CNAME Amazon S3 fonctionnent, votre prestataire de services DNS doit disposer d'un jeu d'enregistrements de ressources CNAME pour votre domaine qui achemine actuellement les requêtes pour le domaine vers votre compartiment Amazon S3. Si un utilisateur demande, par exemple, cet objet : http://example.com/images/image.jpg la requête est automatiquement réacheminée et l'utilisateur voit cet objet : http://myawsbucket.s3.amazonaws.com/images/image.jpg Pour acheminer les requêtes vers votre distribution CloudFront au lieu de votre compartiment Amazon S3, il convient d'utiliser la méthode fournie par votre prestataire de services DNS afin de mettre à jour le jeu d'enregistrements de ressources CNAME de votre domaine. Une fois mis à jour, ce jeu d'enregistrements de ressources CNAME commencera à rediriger les requêtes DNS de votre domaine vers le nom de domaine CloudFront de votre distribution. Pour plus d'informations, consultez la documentation fournie par votre prestataire de services DNS. Note Si vous utilisez Amazon Route 53 comme service DNS, vous pouvez utiliser un jeu d'enregistrements de ressources d'alias ou CNAME. Pour en savoir plus sur la modification des jeux d'enregistrements de ressources, consultez Editing Resource Record Sets. Pour en savoir plus sur les jeux d'enregistrements de ressources d'alias, consultez Choosing Between Alias and Non-Alias Resource Record Sets. Ces deux rubriques se trouvent sous Amazon Route 53 Manuel du développeur. Pour plus d'informations sur l'utilisation des CNAME avec CloudFront, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Après avoir mis à jour le jeu d'enregistrements de ressources CNAME, un délai maximum de 72 heures peut être nécessaire pour que la modification se propage dans tout le système DNS, mais cela se produit en général plus vite. Pendant ce temps, certaines requêtes visant votre contenu seront toujours acheminées vers votre compartiment Amazon S3, tandis que d'autres seront acheminées vers CloudFront. Déplacement d'un compartiment Amazon S3 vers une région différente Si vous utilisez Amazon S3 comme origine d'une distribution CloudFront et si vous déplacez le compartiment dans une région différente, CloudFront peut prendre jusqu'à une heure pour mettre à jour ses archives de manière à inclure le changement de région lorsque les deux points suivants se vérifient : • vous utilisez une identité d'accès à l'origine (OAI) pour restreindre l'accès au compartiment ; • vous déplacez le compartiment vers une région Amazon S3 qui exige Signature version 4 pour l'authentification. Lorsque vous employez des OAI, CloudFront se base sur la région (entre autres valeurs) afin de calculer la signature utilisée pour demander des objets provenant de votre compartiment. Pour en savoir plus sur les OAI, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre API Version 2016-01-13 52 Amazon CloudFront Guide du développeur Modifications de l'API CloudFront contenu Amazon S3 (p. 172). Pour une liste des régions Amazon S3 et des versions de signatures prises en charge, consultez Amazon Simple Storage Service (Amazon S3) dans le chapitre portant sur les régions et points de terminaison du manuel Amazon Web Services General Reference. Pour forcer une mise à jour plus rapide des archives de CloudFront, vous pouvez mettre à niveau votre distribution CloudFront en mettant à jour, par exemple, le champ Comment de l'onglet General dans la console CloudFront. Lorsque vous mettez à jour une distribution, CloudFront vérifie immédiatement la région dans laquelle se trouve votre compartiment. La propagation de la modification à tous les emplacements périphériques doit prendre moins de 15 minutes. Modifications de l'API CloudFront À partir de la version 2012-05-05 de l'API CloudFront, nous avons apporté d'importantes modifications au format du document XML à inclure dans le corps de la requête lors de la création ou de la modification d'une distribution Web ou RTMP, ainsi que lorsque vous invalidez des objets. Avec les versions précédentes de l'API, nous avons découvert qu'il était trop facile de supprimer accidentellement une ou plusieurs valeurs d'un élément qui accepte plusieurs valeurs, comme par exemple les CNAME et les utilisateurs de confiance. Nos changements pour la version 2012-05-05 visent à éviter ces suppressions accidentelles et à vous prévenir en cas d'incohérence entre le nombre de valeurs que vous indiquez avoir spécifié dans l'élément Quantity et celui que vous avez spécifié en réalité. Tenez compte des aspects suivants relatifs à l'utilisation de l'API 2012-05-05 et versions ultérieures avec les distributions Web et RTMP créées avec des versions d'API antérieures : • Il n'est pas possible d'utiliser des versions de l'API antérieures à 2012-05-05 pour mettre à jour une distribution Web créée ou mise à jour avec la version 2012-05-05 de l'API CloudFront ou des versions ultérieures. • Vous pouvez utiliser la nouvelle version de l'API pour obtenir une liste des distributions, accéder à des informations sur une distribution ou obtenir une configuration de distribution. CloudFront renvoie un document XML au nouveau format XML. • Pour mettre à jour une distribution créée au moyen d'une version d'API antérieure, utilisez la version 2012-05-05 ou une version ultérieure de GET Distribution ou GET Streaming Distribution afin d'obtenir un document XML au nouveau format XML, modifiez les données souhaitées, puis utilisez la version 2012-05-05 ou une version ultérieure de PUT Distribution Config ou PUT Streaming Distribution Config pour envoyer les modifications à CloudFront. • Vous pouvez utiliser la nouvelle API pour supprimer une distribution créée avec une version d'API antérieure. La distribution doit être déjà désactivée. API Version 2016-01-13 53 Amazon CloudFront Guide du développeur Liste des tâches de création d'une distribution web Utilisation des distributions web Cette section explique la configuration et la gestion des distributions web CloudFront. Pour une explication élémentaire des distributions, consultez Utiliser les distributions (p. 41). Pour plus d'informations sur les distributions RTMP CloudFront, consultez Utilisation des distributions RTMP (p. 87). Rubriques • Liste des tâches de création d'une distribution web (p. 54) • Création ou mise à jour d'une distribution web à l'aide de la console CloudFront (p. 56) • Test de votre distribution web (p. 57) • Utilisation des origines Amazon S3 et des origines personnalisées pour les distributions web (p. 58) • Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59) • Valeurs que CloudFront affiche dans la console lors de la création ou de la mise à jour d'une distribution web (p. 79) • Conditions requises et recommandations pour l'utilisation d'Amazon EC2 et autres origines personnalisées (p. 80) • Utilisation d'AWS WAF pour contrôler l'accès à votre contenu (p. 81) • Restriction de la distribution géographique de votre contenu (p. 82) • Configuration de Smooth Streaming à la demande (p. 84) • Configuration des téléchargements progressifs à la demande (p. 85) • Configuration d'Apple HTTP Live Streaming (HLS) à la demande (p. 86) Liste des tâches de création d'une distribution web La liste des tâches suivante récapitule le processus de création d'une distribution web. API Version 2016-01-13 54 Amazon CloudFront Guide du développeur Liste des tâches de création d'une distribution web Pour créer une distribution web 1. Créez un ou plusieurs compartiments Amazon S3 ou configurez les serveurs HTTP comme serveurs d'origine. Une origine désigne l'emplacement où vous stockez la version originale de votre contenu web. Quand CloudFront reçoit une demande pour vos fichiers, il accède à l'origine pour obtenir les fichiers qu'il distribue aux emplacements périphériques. Vous pouvez utiliser toute combinaison de compartiments Amazon S3 et de serveurs HTTP comme serveurs d'origine. Si vous utilisez Amazon S3, notez que le nom de votre compartiment doit être intégralement en lettres minuscules et qu'il ne peut pas contenir d'espaces. Si vous utilisez un serveur Amazon EC2 ou une autre origine personnalisée, consultez Conditions requises et recommandations pour l'utilisation d'Amazon EC2 et autres origines personnalisées (p. 80). Pour la limite actuelle du nombre d'origines que vous pouvez créer pour une distribution, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/ create?issueType=service-limit-increase&limitType=service-code-cloudfront-distributions. 2. Téléchargez votre contenu sur vos serveurs d'origine. Si vous ne voulez pas limiter l'accès à votre contenu avec les URL signées CloudFront, rendez les objets publiquement disponibles. Caution Vous devez garantir la sécurité de votre serveur d'origine. Vous devez vous assurer que CloudFront a l'autorisation d'accéder au serveur et que les paramètres de sécurité sont appropriés à la sauvegarde de votre contenu. 3. Créez votre distribution web CloudFront : • Pour plus d'informations sur la création d'une distribution web à l'aide de la console CloudFront, consultez Création ou mise à jour d'une distribution web à l'aide de la console CloudFront (p. 56). • Pour plus d'informations sur la création d'une distribution web avec l'API CloudFront, consultez POST Distribution dans le manuel Amazon CloudFront API Reference. 4. Facultatif : si vous avez créé votre distribution avec la console CloudFront, créez plusieurs comportements de cache ou origines pour votre distribution. Pour plus d'informations, consultez Pour répertorier, afficher et mettre à jour les distributions CloudFront au moyen de la console CloudFront (p. 44). 5. Testez votre distribution web. Pour plus d'informations, consultez Test de votre distribution web (p. 57). 6. Développez votre site web ou application pour accéder à votre contenu à l'aide du nom de domaine que CloudFront a retourné après que vous avez créé votre distribution à l'étape 3. Par exemple, si CloudFront retourne d111111abcdef8.cloudfront.net comme nom de domaine de votre distribution, l'URL du fichier image.jpg d'un compartiment Amazon S3 ou du répertoire racine d'un serveur HTTP sera http://d111111abcdef8.cloudfront.net/image.jpg. Si vous avez spécifié un ou plusieurs noms de domaine alternatifs (CNAME) quand vous avez créé votre distribution, vous pouvez utiliser votre propre nom de domaine. Dans ce cas, l'URL de image.jpg pourrait être http://www.example.com/image.jpg. Remarques : • Si vous voulez utiliser des URL signées pour limiter l'accès à votre contenu, consultez Service d'un contenu privé via CloudFront (p. 168). • Si vous voulez livrer un contenu compressé, consultez Service de fichiers compressés (p. 139). API Version 2016-01-13 55 Amazon CloudFront Guide du développeur Création ou mise à jour d'une distribution web à l'aide de la console CloudFront • Pour plus d'informations sur le comportement de demande et de réponse CloudFront pour Amazon S3 et les origines personnalisées, consultez Comportement des demandes et des réponses (p. 144). Création ou mise à jour d'une distribution web à l'aide de la console CloudFront Les procédures de cette rubrique expliquent comment créer ou mettre à jour une distribution web à l'aide de la console CloudFront. Pour créer une distribution web à l'aide de l'API CloudFront, consultez POST Distribution dans le manuel Amazon CloudFront API Reference. Pour mettre à jour une distribution web à l'aide de l'API CloudFront, consultez PUT DistributionConfig dans le manuel Amazon CloudFront API Reference. Pour obtenir la limite actuelle du nombre de distributions web que vous pouvez créer pour chaque compte AWS, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/ support/home#/case/create?issueType=service-limit-increase&limitType=service-code-cloudfrontdistributions. • Pour créer une distribution web CloudFront à l'aide de la console CloudFront (p. 56) • Pour mettre à jour une distribution web CloudFront à l'aide de la console CloudFront (p. 56) Pour créer une distribution web CloudFront à l'aide de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez Create Distribution. 3. Sur la première page de l'Assistant Create Distribution Wizard, dans la section Web, choisissez Get Started. 4. Spécifiez les paramètres de la distribution. Pour plus d'informations, consultez Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). 5. Choisissez Create Distribution. 6. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Si vous avez choisi d'activer la distribution, elle sera alors prête pour traiter les demandes. Cela devrait prendre moins de 15 minutes. Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. (Elle apparaît aussi sous l'onglet General d'une distribution sélectionnée.) 7. Quand votre distribution est déployée, confirmez que vous pouvez accéder à votre contenu à l'aide de votre nouvelle URL ou nouveau CNAME CloudFront. Pour plus d'informations, consultez Test de votre distribution web (p. 57). Pour mettre à jour une distribution web CloudFront à l'aide de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez l'ID de la distribution que vous souhaitez mettre à jour. 3. Mettez à jour les valeurs applicables. Pour plus d'informations, consultez Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). 4. Choisissez Create Distribution. API Version 2016-01-13 56 Amazon CloudFront Guide du développeur Test de votre distribution web 5. Après que vous avez modifié les paramètres, la valeur de la colonne Status de votre distribution devient InProgress tandis que CloudFront propage les modifications aux emplacements périphériques. Lorsque Status a la valeur Deployed, la distribution est prête à traiter les demandes. (La valeur de la colonne State de la distribution doit également être Enabled.) Cette valeur devrait être effective moins de 15 minutes après que vous avez enregistré la dernière modification. Test de votre distribution web Après que vous avez créé votre distribution, CloudFront sait où se trouve votre serveur d'origine et vous-même connaissez le nom de domaine associé à la distribution. Vous pouvez créer des liens à vos objets à l'aide du nom de domaine CloudFront et CloudFront remettra les objets à votre application ou page web. Note Vous devez attendre jusqu'à ce que l'état de la distribution devienne Deployed avant que vous puissiez tester vos liens. Pour créer des liens aux objets dans une distribution web 1. Copiez le code HTML suivant dans un nouveau fichier, remplacez nom-domaine par le nom de domaine de votre distribution et remplacez nom-objet par le nom de votre objet. <html> <head>My CloudFront Test</head> <body> <p>My text content goes here.</p> <p><img src="http://domain-name/object-name" alt="my test image" </body> </html> Par exemple, si votre nom de domaine était d111111abcdef8.cloudfront.net et que votre objet était image.jpg, l'URL du lien sera : http://d111111abcdef8.cloudfront.net/image.jpg. Si votre objet se trouve dans un dossier de votre serveur d'origine, le dossier doit également être inclus dans l'URL. Par exemple, si image.jpg se trouvait dans le dossier images de votre serveur d'origine, l'URL serait : http://d111111abcdef8.cloudfront.net/images/image.jpg 2. Enregistrez le code HTML dans un fichier ayant .html comme extension de nom de fichier. 3. Ouvrez votre page web dans un navigateur afin de vous assurer que vous voyez votre objet. Le navigateur renvoie votre page avec le fichier d'image incorporé et servi depuis l'emplacement périphérique que CloudFront a déterminé comme approprié pour servir l'objet. API Version 2016-01-13 57 Amazon CloudFront Guide du développeur Utilisation des origines Amazon S3 et des origines personnalisées pour les distributions web Utilisation des origines Amazon S3 et des origines personnalisées pour les distributions web Lorsque vous créez une distribution web, vous spécifiez où CloudFront envoie les demandes des fichiers qu'il distribue aux emplacements périphériques. CloudFront prend en charge l'utilisation des compartiments Amazon S3 et des serveurs HTTP (par exemple, serveurs web) comme origines. Utilisation de compartiments Amazon S3 pour votre origine Lorsque vous utilisez Amazon S3 comme origine de votre distribution, vous placez les objets que CloudFront doit remettre dans un compartiment Amazon S3. Vous pouvez utiliser toute méthode prise en charge par Amazon S3 pour accéder à vos objets dans Amazon S3 : par exemple, l'API ou la console Amazon S3, ou un outil tiers. Vous pouvez créer une hiérarchie dans votre compartiment pour stocker les objets, comme vous le feriez avec tout autre compartiment Amazon S3. L'utilisation d'un compartiment Amazon S3 existant comme serveur d'origine CloudFront ne modifie pas le compartiment en aucune façon ; vous pouvez continuer de l'utiliser comme vous le feriez normalement pour stocker les objets Amazon S3 et y accéder, et ce au prix Amazon S3 standard. Le stockage d'objets dans le compartiment est l'objet de frais Amazon S3 réguliers. Pour plus d'informations sur les frais d'utilisation de CloudFront, consultez Rapports CloudFront (p. 11). Important Pour que votre compartiment fonctionne avec CloudFront, le nom doit être conforme aux exigences DNS en la matière. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. Lorsque vous spécifiez le compartiment Amazon S3 à partir duquel CloudFront doit obtenir les objets, la façon de spécifier le nom du compartiment dépend du fait que vous ayez ou pas configuré le compartiment comme point de terminaison d'un site web : Le compartiment n'est pas configuré comme point de terminaison d'un site web En règle générale, utilisez le format suivant : bucket-name.s3.amazonaws.com Si votre compartiment se trouve dans la région USA Standard et que vous voulez que Amazon S3 achemine les demandes vers une installation située en Virginie du Nord, utilisez le format suivant : bucket-name.s3-external-1.amazonaws.com Lorsque vous spécifiez le nom de compartiment dans ce format, vous pouvez utiliser les fonctions CloudFront suivantes : • Configurez CloudFront pour qu'il communique avec votre compartiment Amazon S3 à l'aide de SSL. Pour plus d'informations, consultez Utilisation d'une connexion HTTPS pour accéder à vos objets (p. 237). • Utilisez une Origin Access Identity pour exiger que vos utilisateurs accèdent à votre contenu à l'aide d'URL CloudFront, et non d'URL Amazon S3. Pour plus d'informations, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). • Mettez à jour le contenu de votre compartiment en envoyant les demandes POST et PUT à CloudFront. Pour plus d'informations, consultez Méthodes HTTP (p. 146) dans la API Version 2016-01-13 58 Amazon CloudFront Guide du développeur Utilisation d'Amazon EC2 ou autres origines personnalisées rubrique Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront (p. 144). Le compartiment est configuré comme point de terminaison d'un site web Entrez le point de terminaison de l'hébergement du site web statique Amazon S3 de votre compartiment. La valeur s'affiche dans la console Amazon S3, sur la page Properties sous Static Website Hosting. Lorsque vous spécifiez le nom de compartiment dans ce format, vous pouvez utiliser les redirections Amazon S3 et les documents d'erreur personnalisés CloudFront. CloudFront fournit aussi des pages d'erreur personnalisées. Pour plus d'informations, consultez Personnaliser des réponses d'erreur (p. 132).) Pour plus d'informations sur les fonctions Amazon S3, consultez la documentation Amazon S3. Ne spécifiez pas le compartiment à l'aide des formats suivants : • Chemin d'accès Amazon S3, s3.amazonaws.com/bucket-name • CNAME Amazon S3, le cas échéant Utilisation d'Amazon EC2 ou autres origines personnalisées Une origine personnalisée est un serveur HTTP, par exemple, un serveur web. Le serveur HTTP peut être une instance Amazon EC2 ou un serveur HTTP que vous gérez de façon privée. Lorsque vous utilisez une origine personnalisée, vous spécifiez le nom DNS du serveur, les ports HTTP et HTTPS, et le protocole que CloudFront doit utiliser lors de l'extraction des objets à partir de votre origine. La plupart des fonctions CloudFront sont prises en charge lorsque vous utilisez une origine personnalisée avec les exceptions suivantes : • Distributions RTMP : non prises en charge. • Contenu privé : même si vous pouvez utiliser une URL signée pour distribuer le contenu à partir d'une origine personnalisée, pour que CloudFront puisse accéder à l'origine personnalisée, celle-ci doit demeurer publiquement accessible. Pour plus d'informations, consultez Service d'un contenu privé via CloudFront (p. 168). Pour plus d'informations sur les conditions requises et les recommandations lors de l'utilisation des origines personnalisées, consultez Conditions requises et recommandations pour l'utilisation d'Amazon EC2 et autres origines personnalisées (p. 80). Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web Lorsque vous créez ou mettez à jour une distribution web, vous spécifiez les valeurs ci-après. Pour plus d'informations sur la création ou la mise à jour d'une distribution web à l'aide de la console CloudFront, consultez la rubrique applicable : • Utilisation des distributions web (p. 54) • Liste, affichage et mise à jour des distributions CloudFront (p. 43) Méthode de remise (p. 61) API Version 2016-01-13 59 Amazon CloudFront Guide du développeur Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web Paramètres d'origine (p. 61) • Nom de domaine d'origine (p. 62) • Chemin d'origine (p. 63) • ID d'origine (p. 63) • Retreindre l'accès au compartiment (uniquement Amazon S3) (p. 63) • Origin Access Identity (Amazon S3 uniquement) (p. 63) • Commentaire relatif à la nouvelle identité (Amazon S3 uniquement) (p. 64) • Vos identités (Amazon S3 uniquement) (p. 64) • Accorder les autorisations de lecture sur le compartiment (Amazon S3 uniquement) (p. 64) • Protocoles SSL de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 64) • Stratégie de protocole de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 64) • Port HTTP (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 65) • Port HTTPS (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 65) • Origin Custom Headers (p. 65) Paramètres de comportement du cache (p. 66) • Modèle de chemin d'accès (p. 66) • Origine (distributions existantes uniquement) (p. 68) • Viewer Protocol Policy (p. 68) • Méthodes HTTP autorisées (p. 68) • Méthodes HTTP mises en cache (p. 69) • Réacheminer les en-têtes (p. 69) • En-têtes sur liste blanche (p. 70) • Mise en cache d'un objet (p. 70) • Durée de vie minimale (p. 70) • TTL par défaut (p. 71) • Durée de vie (TTL) maximale (p. 71) • Transmission des cookies (Amazon EC2 et autres origines personnalisées uniquement) (p. 71) • Cookies sur liste blanche (Amazon EC2 et autres origines personnalisées uniquement) (p. 71) • Réacheminer les chaînes de requête (p. 72) • Smooth Streaming (p. 72) • Restreindre l'accès des visionneuses (utiliser les URL signées) (p. 72) • Utilisateurs de confiance (p. 73) • Numéros de comptes AWS (p. 73) • Compresser automatiquement les objets (p. 73) Détails de la distribution (p. 73) • Catégorie de tarifs – (p. 73) • ACL Web AWS WAF (p. 74) • Noms de domaine alternatifs (CNAME) (p. 74) • Certificat SSL (p. 75) • Clients pris en charge (p. 75) API Version 2016-01-13 60 Amazon CloudFront Guide du développeur Méthode de remise • Version minimale du protocole SSL (p. 75) • Objet racine par défaut (p. 76) • Journalisation (p. 76) • Compartiment pour les journaux (p. 76) • Préfixe de journal (p. 76) • Journalisation des cookies (p. 76) • Commentaire (p. 77) • Etat de la distribution (p. 77) Pages d'erreur personnalisées et mise en cache des erreurs (p. 77) • Code d’erreur (p. 78) • Chemin de la page de réponse (p. 78) • Code de réponse (p. 78) • Durée de vie minimale (TTL) de la mise en cache des erreurs (p. 78) Restrictions (p. 78) • Activer une restriction géographique (p. 78) • Type de restriction (p. 78) • Pays (p. 79) Méthode de remise Vous spécifiez le mode de remise lorsque vous créez une distribution. Pour une distribution web, cette valeur est toujours Web. Vous ne pouvez pas modifier le mode de remise d'une distribution existante. Paramètres d'origine Lorsque vous créez ou mettez à jour une distribution, vous fournissez des informations sur un ou plusieurs emplacements, appelés origines, où vous stockez les versions originales de votre contenu web. CloudFront obtient votre contenu web de vos origines et le remet aux visionneuses via un réseau mondial de serveurs périphériques. Chaque origine est un compartiment Amazon S3 ou un serveur HTTP : par exemple, un serveur web. Pour la limite actuelle du nombre d'origines que vous pouvez créer pour une distribution, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/ create?issueType=service-limit-increase&limitType=service-code-cloudfront-distributions. Si vous voulez supprimer une origine, vous devez d'abord modifier ou supprimer les comportements de cache associés à cette origine. Caution Si vous supprimez une origine, confirmez que les fichiers qui étaient précédemment remis par cette origine sont disponibles dans une autre origine et que vos comportements de cache acheminent désormais ces fichiers vers la nouvelle origine. Lorsque vous créez ou mettez à jour une distribution web, vous spécifiez les valeurs suivantes pour chaque origine. API Version 2016-01-13 61 Amazon CloudFront Guide du développeur Paramètres d'origine Nom de domaine d'origine Nom de domaine DNS du compartiment Amazon S3 ou du serveur HTTP à partir duquel vous voulez que CloudFront obtienne les objets pour cette origine ; par exemple : • Compartiment Amazon S3 : myawsbucket.s3.amazonaws.com • Instance Amazon EC2 : ec2-203-0-113-25.compute-1.amazonaws.com • Equilibreur de charge Elastic Load Balancing : my-load-balancer-1234567890.uswest-2.elb.amazonaws.com Si votre origine est un serveur HTTP, tapez le nom de domaine de la ressource. Les fichiers doivent être accessibles publiquement en lecture. Si votre origine est un compartiment Amazon S3, dans la console CloudFront, sélectionnez le champ Origin Domain Name et une liste affiche les compartiments Amazon S3 associés au compte AWS actuel. Remarques : • Si le compartiment est configuré comme site web, entrez le point de terminaison de l'hébergement du site web statique Amazon S3 de votre compartiment ; ne sélectionnez pas le nom du compartiment dans la liste du champ Origin Domain Name. Le point de terminaison de l'hébergement du site web statique s'affiche dans la console Amazon S3, sur la page Properties sous Static Website Hosting. • Si vous avez configuré Amazon S3 Transfer Acceleration pour votre compartiment, ne spécifiez pas le point de terminaison s3-accelerate pour Origin Domain Name. • Si vous utilisez un compartiment d'un autre compte AWS et que le compartiment n'est pas configuré comme site web, tapez son nom au format suivant : bucket-name.s3.amazonaws.com Si votre compartiment se trouve dans la région USA Standard et que vous voulez que Amazon S3 achemine les demandes vers une installation située en Virginie du Nord, utilisez le format suivant : bucket-name.s3-external-1.amazonaws.com Si votre compartiment se trouve dans la région UE (Francfort), vous pouvez aussi utiliser le format suivant : bucket-name.s3.eu-central-1.amazonaws.com • Les fichiers doivent être publiquement accessibles en lecture à moins que vous ne sécurisiez votre contenu dans Amazon S3 à l'aide d'une Origin Access Identity CloudFront. Pour plus d'informations, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). Important Si l'origine est un compartiment Amazon S3, le nom du compartiment doit être conforme aux exigences de dénomination DNS. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. Lorsque vous modifiez la valeur d'Origin Domain Name d'une origine, CloudFront commence immédiatement à répercuter la modification sur les emplacements périphériques CloudFront. Tant que la configuration de la distribution n'est pas mise à jour dans un emplacement périphérique donné, CloudFront continue à acheminer les demandes vers le compartiment Amazon S3 ou le serveur HTTP précédent. Dès que la configuration de la distribution est mise à jour dans cet emplacement API Version 2016-01-13 62 Amazon CloudFront Guide du développeur Paramètres d'origine périphérique, CloudFront commence à acheminer les demandes vers le nouveau compartiment Amazon S3 ou serveur HTTP. La modification de l'origine ne nécessite pas que CloudFront remplisse à nouveau les caches périphériques avec les objets de la nouvelle origine. Aussi longtemps que les demandes de la visionneuse de votre application n'ont pas changé, CloudFront continue à servir les objets qui sont déjà dans un cache périphérique tant que la durée de vie (TTL) de chaque objet n'a pas expiré ou que les objets rarement demandés n'ont pas été évincés. Chemin d'origine Si vous voulez que CloudFront demande le contenu d'un répertoire de votre compartiment Amazon S3 ou de votre origine personnalisée, entrez le nom du chemin ici, en commençant par un /. CloudFront ajoute le chemin du répertoire à la valeur du champ Origin Domain Name : par exemple, cforigin.example.com/production/images. N'ajoutez pas un / à la fin du chemin d'accès. Imaginons que vous ayez, par exemple, les valeurs suivantes pour votre distribution : • Origin Domain Name : un compartiment Amazon S3 nommé myawsbucket • Origin Path : /production • Alternate Domain Names (CNAMEs) : example.com Quand un utilisateur entre example.com/index.html dans un navigateur, CloudFront envoie une demande à Amazon S3 de myawsbucket/production/index.html. Quand un utilisateur entre example.com/acme/index.html dans un navigateur, CloudFront envoie une demande à Amazon S3 de myawsbucket/production/acme/index.html. ID d'origine Chaîne qui distingue de façon unique cette origine des autres origines de la distribution. Si vous créez des comportements de cache en plus du comportement de cache par défaut, vous utilisez l'ID d'origine que vous spécifiez ici pour identifier l'origine vers laquelle vous voulez que CloudFront achemine une demande, quand la demande correspond au modèle de chemin d'accès de ce comportement de cache. Pour plus d'informations, consultez Paramètres de comportement du cache (p. 66). Retreindre l'accès au compartiment (uniquement Amazon S3) Choisissez Yes pour obliger les utilisateurs à accéder aux objets d'un compartiment Amazon S3 en n'utilisant que les URL CloudFront, et non les URL Amazon S3. Puis, spécifiez les valeurs applicables. Choisissez Non si vous voulez que les utilisateurs puissent accéder aux objets à l'aide des URL CloudFront, ou des URL Amazon S3. Pour plus d'informations, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). Pour plus d'informations sur la façon d'exiger des utilisateurs qu'ils accèdent aux objets d'une origine personnalisée en n'utilisant que les URL CloudFront, consultez Utilisation des en-têtes personnalisés pour limiter l'accès à votre contenu sur une origine personnalisée (p. 116). Origin Access Identity (Amazon S3 uniquement) Si vous sélectionnez Yes pour Restrict Bucket Access, choisissez de créer une Origin Access Identity ou utilisez une identité existante associée à votre compte AWS. Si vous disposez déjà d'une Origin Access Identity, nous vous recommandons de la réutiliser pour simplifier la maintenance. Pour plus d'informations sur les identités d'accès à l'origine, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). API Version 2016-01-13 63 Amazon CloudFront Guide du développeur Paramètres d'origine Commentaire relatif à la nouvelle identité (Amazon S3 uniquement) Si vous avez choisi Create a New Identity pour Origin Access Identity, entrez un commentaire qui identifie la nouvelle Origin Access Identity. CloudFront crée l'Origin Access Identity lorsque vous créez la distribution. Vos identités (Amazon S3 uniquement) Si vous avez choisi Use an Existing Identity pour Origin Access Identity, sélectionnez l'Origin Access Identity que vous voulez utiliser. Vous ne pouvez pas utiliser une Origin Access Identity associée à un autre compte AWS. Accorder les autorisations de lecture sur le compartiment (Amazon S3 uniquement) Si vous voulez que CloudFront attribue automatiquement à l'Origin Access Identity l'autorisation de lire les objets de votre compartiment Amazon S3, choisissez Yes, Update Bucket Policy. Important Si vous choisissez Yes, Update Bucket Policy, CloudFront met à jour la stratégie du compartiment pour attribuer à l'Origin Access Identity spécifiée l'autorisation de lire les objets de votre compartiment. Cependant, CloudFront ne supprime pas les autorisations existantes de la stratégie de compartiment ou les autorisations sur les objets individuels. Si les utilisateurs disposent actuellement de l'autorisation d'accéder aux objets de votre compartiment à l'aide des URL Amazon S3, ils continueront à l'avoir après que CloudFront a mis à jour votre stratégie de compartiment. Pour afficher ou modifier la stratégie de compartiment existante et les autorisations existantes sur les objets de votre compartiment, utilisez une méthode fournie par Amazon S3. Pour plus d'informations, consultez Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 (p. 175). Si vous voulez mettre à jour les autorisations manuellement (par exemple, si vous voulez mettre à jour les listes ACL de vos objets au lieu de mettre à jour les autorisations de compartiment), choisissez No, I will Update Permissions. Protocoles SSL de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) Choisissez les protocoles SSL que CloudFront peut utiliser lorsqu'il établit une connexion HTTPS avec votre origine. Le protocole SSLv3 étant moins sécurisé, nous vous recommandons de choisir SSLv3 uniquement si votre origine ne prend pas en charge TLSv1 ou version ultérieure. Si l'origine est un compartiment Amazon S3, CloudFront utilise toujours TSLv1.2. Stratégie de protocole de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) Stratégie de protocole que CloudFront doit utiliser lors de l'extraction des objets depuis votre serveur d'origine. API Version 2016-01-13 64 Amazon CloudFront Guide du développeur Paramètres d'origine Important Si votre compartiment Amazon S3 est configuré comme point de terminaison d'un site web, vous devez spécifier HTTP Only. Amazon S3 ne prend pas en charge les connexions HTTPS dans cette configuration. Choisissez la valeur applicable : • HTTP Only : CloudFront utilise uniquement HTTP pour accéder à l'origine. • HTTPS Only : CloudFront utilise uniquement HTTPS pour accéder à l'origine. • Match Viewer : CloudFront communique avec votre origine avec HTTP ou HTTPS, selon le protocole de la demande de la visionneuse. CloudFront ne met l'objet en cache qu'une seule fois, même si les visionneuses émettent des demandes à l'aide des protocoles HTTP et HTTPS. Important Pour les demandes de visionneuse HTTPS que CloudFront transmet à cette origine, l'un des noms de domaine du certificat SSL de votre serveur d'origine doit correspondre au nom de domaine que vous spécifiez pour Origin Domain Name. Sinon, CloudFront répond aux demandes de la visionneuse avec un code d'état HTTP égal à 502 (Passerelle erronée) au lieu de l'objet demandé. Pour plus d'informations, consultez Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine (p. 239). Port HTTP (origines Amazon EC2 et autres origines personnalisées uniquement) Facultatif. Port HTTP sur lequel l'origine personnalisée écoute. Valeurs valides : ports 80, 443, et 1024 à 65535. La valeur par défaut est 80. Port HTTPS (origines Amazon EC2 et autres origines personnalisées uniquement) Facultatif. Port HTTPS sur lequel l'origine personnalisée écoute. Valeurs valides : ports 80, 443, et 1024 à 65535. La valeur par défaut est 443. Origin Custom Headers Si vous voulez que CloudFront inclut les en-têtes personnalisés chaque fois qu'il transmet une demande à votre origine, spécifiez les valeurs suivantes : Nom de l'en-tête Nom de l'en-tête que CloudFront doit transmettre à votre origine. Value Valeur de l'en-tête que vous avez spécifiée dans le champ Custom Header. Pour plus d'informations, consultez Transfert d'en-têtes personnalisés vers votre origine (distributions Web uniquement) (p. 114). Pour obtenir la limite actuelle du nombre maximal d'en-têtes personnalisés que vous pouvez transmettre à l'origine, la longueur maximale d'un nom et d'une valeur d'en-tête personnalisé, et la longueur totale de tous les noms et valeurs d'en-tête, consultez Restrictions (p. 362). API Version 2016-01-13 65 Amazon CloudFront Guide du développeur Paramètres de comportement du cache Paramètres de comportement du cache Un comportement de cache vous permet de configurer une grande variété de fonctionnalités CloudFront pour un modèle de chemin d'URL donné des fichiers de votre site web. Par exemple, un comportement de cache peut s'appliquer à tous les fichiers .jpg du répertoire images d'un serveur web que vous utilisez comme serveur d'origine pour CloudFront. Les fonctionnalités que vous pouvez configurer pour chaque comportement de cache sont les suivantes : • Le modèle du chemin d'accès. • Si vous avez configuré plusieurs origines pour votre distribution CloudFront, l'origine vers laquelle vous voulez que CloudFront achemine vos demandes. • Transmission ou pas des chaînes de requête à votre origine. • L'accès aux fichiers spécifiés requiert ou non des URL signées. • Les utilisateurs doivent utiliser HTTPS ou pas pour accéder à ces fichiers. • Durée minimale pendant laquelle ces fichiers demeurent dans le cache CloudFront indépendamment de la valeur de tout en-tête Cache-Control que votre origine ajoute aux fichiers. Lorsque vous créez une distribution, vous spécifiez les paramètres du comportement de cache par défaut, lequel achemine automatiquement toutes les demandes vers l'origine que vous spécifiez lors de la création de la distribution. Après que vous avez créé une distribution, vous pouvez créer des comportements de cache supplémentaires qui définissent comment CloudFront répond quand il reçoit une demande pour des objets qui correspondent à un modèle de chemin d'accès : par exemple, *.jpg. Si vous créez des comportements de cache supplémentaires, le comportement de cache par défaut est toujours le dernier à être traité. Les autres comportements de cache sont traités dans l'ordre dans lequel ils apparaissent dans la console CloudFront ou, si vous utilisez l'API CloudFront, l'ordre dans lequel ils apparaissent dans l'élément DistributionConfig de la distribution. Pour plus d'informations, consultez Modèle de chemin d'accès (p. 66). Lorsque vous créez un compartiment de cache, vous spécifiez une origine à partir de laquelle vous voulez que CloudFront obtienne les objets. En conséquence, si vous voulez que CloudFront distribue les objets de la totalité de vos origines, vous devez avoir au moins autant de comportements de cache (y compris le comportement de cache par défaut) que vous avez d'origines. Par exemple, si vous avez deux origines et uniquement le comportement de cache par défaut, ce dernier obligera CloudFront à obtenir les objets à partir de l'une des origines, mais l'autre ne sera jamais utilisée. Pour obtenir la limite actuelle du nombre de comportements de cache que vous pouvez ajouter à une distribution, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/ home#/case/create?issueType=service-limit-increase&limitType=service-code-cloudfront-distributions. Modèle de chemin d'accès Un modèle de chemin (par exemple, images/*.jpg) spécifie les demandes auxquelles vous voulez que ce comportement de cache s'applique. Quand CloudFront reçoit une demande d'un utilisateur final, le chemin d'accès demandé est comparé aux modèles de chemin d'accès dans l'ordre où les comportements de cache apparaissent dans la distribution. La première correspondance détermine le comportement de cache qui s'applique à la demande. Imaginons, par exemple, que vous ayez trois comportements de cache avec les trois modèles de chemin suivants classés par ordre : • images/*.jpg • images/* • *.gif API Version 2016-01-13 66 Amazon CloudFront Guide du développeur Paramètres de comportement du cache Note Vous pouvez le cas échéant inclure une barre oblique (/) au début du modèle de chemin d'accès : par exemple, /images/*.jpg. Le comportement de CloudFront est le même avec ou sans barre oblique /. Une demande du fichier images/sample.gif ne correspondant pas au premier modèle de chemin d'accès, les comportements de cache associés ne s'appliquent pas à la demande. Comme le fichier satisfait bel et bien au second modèle, les comportements de cache associés au deuxième modèle s'appliquent même si la demande correspond aussi au troisième modèle. Note Lorsque vous créez une distribution, la valeur de Path Pattern pour le comportement de cache par défaut est définie sur * (tous les fichiers) et ne peut pas être modifiée. Cette valeur conduit CloudFront à acheminer toutes les demandes relatives à vos objets vers l'origine que vous avez spécifiée dans le champ Nom de domaine d'origine (p. 62). Si la demande d'un objet ne correspond pas au modèle de chemin d'accès de l'un des autres comportements de cache, CloudFront applique le comportement que vous spécifiez dans le comportement de cache par défaut. Caution Définissez soigneusement les modèles de chemin et leur séquence, sans quoi vous risquez d'offrir aux utilisateurs un accès non souhaité à votre contenu. Par exemple, imaginons qu'une demande corresponde au modèle de chemin de deux comportements de cache. Le premier comportement de cache n'exige pas d'URL signées, à l'inverse du second comportement de cache. Les utilisateurs pourront accéder aux objets sans utiliser une URL signée, parce que CloudFront traite le comportement de cache associé à la première correspondance. Le chemin que vous spécifiez s'applique aux demandes relatives à tous les fichiers du répertoire spécifié et aux sous-répertoires situés sous le répertoire. CloudFront ne prend pas en compte les chaînes de requête ou les cookies lors de l'évaluation du modèle de chemin d'accès. Par exemple, si un répertoire images contient les sous-répertoires product1 et product2, le modèle de chemin d'accès images/*.jpg s'applique aux demandes concernant un fichier .jpg des répertoires images, images/product1 et images/product2. Si vous voulez appliquer un autre comportement de cache aux fichiers du répertoire images/product1 qu'à ceux des répertoires images et images/ product2, créez un comportement de cache distinct pour images/product1 et déplacez ce comportement de cache vers un emplacement au-dessus (avant) du comportement de cache du répertoire images. Vous pouvez utiliser les caractères génériques suivants dans votre modèle de chemin d'accès : • * correspond à 0 caractère ou plus. • ? correspond à 1 caractère exactement. L'exemple suivant montre le fonctionnement des caractères génériques : Modèle de chemin Fichiers correspondant au modèle de chemin d'accès d'accès *.jpg Tous les fichiers .jpg images/*.jpg Tous les fichiers .jpg du répertoire images et des sous-répertoires du répertoire images API Version 2016-01-13 67 Amazon CloudFront Guide du développeur Paramètres de comportement du cache Modèle de chemin Fichiers correspondant au modèle de chemin d'accès d'accès a*.jpg • Tous les fichiers .jpg dont le nom commence par a : par exemple, apple.jpg et appalachian_trail_2012_05_21.jpg • Tous les fichiers .jpg dont le chemin d'accès commence par a : par exemple, abra/cadabra/magic.jpg. a??.jpg Tous les fichiers .jpg dont le nom commence par a, suivi de deux autres caractères exactement : par exemple, ant.jpg et abe.jpg *.doc* Tous les fichiers .jpg dont l'extension de nom de fichier commence par .doc : par exemple, les fichiers .doc, .docx et .docm. Vous ne pouvez pas utiliser le modèle de chemin d'accès *.doc? dans ce cas, parce que ce modèle ne s'appliquerait pas aux demandes relatives aux fichiers .doc ; le caractère générique ? remplace exactement un seul caractère. La longueur maximale d'un modèle de chemin est de 255 caractères. La valeur peut contenir l'un des caractères suivants : • A-Z, a-z Les modèles de chemin d'accès étant sensibles à la casse, le modèle *.jpg ne s'applique pas au fichier LOGO.JPG. • 0-9 • _-.*$/~"'@:+ • &, transmis et retourné comme & Origine (distributions existantes uniquement) Entrez la valeur Origin ID pour une origine existante. Cette valeur identifie l'origine vers laquelle CloudFront doit acheminer les demandes quand une demande (telle que http://example.com/ logo.jpg) correspond au modèle de chemin d'accès d'un comportement de cache (tel que *.jpg) ou du comportement de cache par défaut (*). Viewer Protocol Policy Sélectionnez la stratégie de protocole à utiliser pour accéder au contenu des emplacements périphériques CloudFront : • HTTP and HTTPS : les deux protocoles peuvent être utilisés. • Redirect HTTP to HTTPS : les deux protocoles peuvent être utilisés, mais les requêtes HTTP sont automatiquement redirigées vers des requêtes HTTPS. • HTTPS Only : l'accès au contenu ne peut se faire qu'à l'aide du protocole HTTPS. Pour plus d'informations, consultez Utilisation d'une connexion HTTPS pour accéder à vos objets (p. 237). Méthodes HTTP autorisées Spécifiez les méthodes HTTP que CloudFront doit traiter et transmettre à votre origine. • GET, HEAD : vous pouvez utiliser CloudFront uniquement pour obtenir les objets de votre origine ou pour obtenir les en-têtes d'objet. API Version 2016-01-13 68 Amazon CloudFront Guide du développeur Paramètres de comportement du cache • GET, HEAD, OPTIONS : vous pouvez utiliser CloudFront uniquement pour obtenir les objets de votre origine, récupérer les en-têtes d'objet ou extraire la liste des options que votre serveur d'origine prend en charge. • GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE : vous pouvez utiliser CloudFront pour obtenir, ajouter, mettre à jour et supprimer des objets, et pour obtenir des en-têtes d'objet. De plus, vous pouvez exécuter d'autres opérations POST telles que l'envoi de données à partir d'un formulaire web. Note CloudFront met en cache les réponses apportées aux demandes GET et HEAD, et le cas échéant, aux demandes OPTIONS. CloudFront ne met pas en cache les réponses aux demandes qui utilisent d'autres méthodes. Si vous utilisez un compartiment Amazon S3 comme origine de votre distribution et que vous utilisez des identités d'accès à l'origine CloudFront, les demandes POST ne sont pas prises en charge dans certaines régions Amazon S3 et les demandes PUT de ces régions nécessitent un en-tête supplémentaire. Pour plus d'informations, consultez Utilisation d'une identité d'accès à l'origine dans les régions Amazon S3 prenant uniquement en charge l'authentification Signature version 4 (p. 177). Caution Si vous choisissez GET, HEAD, OPTIONS ou GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE, il se peut que vous ayez besoin de limiter l'accès à votre compartiment Amazon S3 ou à votre origine personnalisée pour empêcher que les utilisateurs n'exécutent des opérations qu'ils ne sont pas autorisés à faire. Les exemples suivants expliquent comment limiter l'accès : • Si vous utilisez Amazon S3 comme origine de votre distribution : créez une Origin Access Identity CloudFront pour restreindre l'accès à votre contenu Amazon S3 et attribuez à l'Origin Access Identity les autorisations applicables. Par exemple, si vous configurez CloudFront pour accepter et acheminer ces méthodes uniquement parce que vous voulez utiliser PUT, vous devez continuer à configurer les stratégies de compartiment Amazon S3 ou les listes ACL de manière à gérer correctement les demandes DELETE. Pour plus d'informations, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). • Si vous utilisez une origine personnalisée : configurez votre serveur d'origine pour qu'il gère toutes les méthodes. Par exemple, si vous configurez CloudFront pour accepter et acheminer ces méthodes uniquement parce que vous voulez utiliser POST, vous devez continuer à configurer votre serveur d'origine de manière à gérer correctement les demandes DELETE. Méthodes HTTP mises en cache Spécifiez si vous voulez que CloudFront mette en cache la réponse de votre origine lors d'une demande OPTIONS. CloudFront met toujours en cache les réponses aux demandes GET et HEAD. Réacheminer les en-têtes Spécifiez si vous souhaitez que CloudFront réachemine les en-têtes de demande vers votre serveur d'origine et mette en cache les objets en fonction des valeurs de l'en-tête : • All : CloudFront achemine tous les en-têtes vers votre origine pour un comportement de cache. API Version 2016-01-13 69 Amazon CloudFront Guide du développeur Paramètres de comportement du cache Important Si vous configurez CloudFront pour transmettre tous les en-têtes à votre origine, CloudFront ne met pas en cache les objets associés à ce comportement de cache. Par contre, il envoie chaque demande à l'origine. • Whitelist : CloudFront transmet à l'origine uniquement les en-têtes spécifiés. Utilisez Whitelist Headers pour sélectionner les en-têtes que CloudFront doit transmettre. • None (Improves Caching) : CloudFront transmet à l'origine les en-têtes par défaut, mais ne met pas en cache vos objets en fonction des valeurs d'en-tête. Si vous utilisez un compartiment Amazon S3 comme origine, notez que Amazon S3 ne traite que trois en-têtes : Access-Control-Request-Headers, Access-Control-Request-Method et Origin. Il ignore tous les autres en-têtes d'une demande. Pour plus d'informations sur la transmission des en-têtes vers l'origine, consultez Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Pour obtenir la liste des en-têtes HTTP et les informations relatives à l'éventuelle transmission par défaut de l'en-tête à l'origine, consultez En-têtes de requête HTTP et comportement de CloudFront (p. 155). En-têtes sur liste blanche Spécifiez les en-têtes que CloudFront doit prendre en compte lors de la mise en cache de vos objets. Sélectionnez les en-têtes dans la liste des en-têtes disponibles et choisissez Add. Pour transmettre un en-tête personnalisé, entrez le nom de l'en-tête dans le champ et choisissez Add Custom. Pour obtenir la limite actuelle du nombre d'en-têtes que vous pouvez mettre en liste blanche pour chaque comportement de cache, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/create?issueType=service-limitincrease&limitType=service-code-cloudfront-distributions. Mise en cache d'un objet Si votre serveur d'origine ajoute un en-tête Cache-Control à vos objets pour contrôler la façon dont ceux-ci demeurent dans le cache CloudFront et que vous ne voulez pas modifier la valeur CacheControl, choisissez Use Origin Cache Headers. Pour spécifier une durée maximale et une durée minimale pendant lesquelles vos objets demeurent dans le cache quels que soient les en-têtes Cache-Control, ainsi qu'une durée par défaut quand l'en-tête Cache-Control est absent d'un objet, choisissez Customize. Puis, dans les champs Minimum TTL, Default TTL et Maximum TTL, spécifiez la valeur applicable. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Durée de vie minimale Spécifiez la durée minimale, en secondes, pendant laquelle les objets doivent rester dans le cache CloudFront avant que CloudFront ne transmette une autre demande à votre origine pour déterminer si l'objet a été mis à jour. La valeur par défaut de Minimum TTL est 0 seconde. Important Si vous configurez CloudFront pour transmettre tous les en-têtes à votre origine pour un comportement de cache, CloudFront ne met jamais en cache les objets associés. En revanche, CloudFront transmet toutes les demandes pour ces objets à votre origine. Dans cette configuration, la valeur de Minimum TTL doit être 0. API Version 2016-01-13 70 Amazon CloudFront Guide du développeur Paramètres de comportement du cache Pour spécifier une valeur pour Minimum TTL, vous devez choisir l'option Customize pour le paramètre Object Caching. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). TTL par défaut Spécifiez la durée par défaut, en secondes, pendant laquelle les objets doivent rester dans le cache CloudFront avant que CloudFront ne transmette une autre demande à votre origine pour déterminer si l'objet a été mis à jour. La valeur que vous spécifiez pour Default TTL s'applique uniquement quand votre origine n'ajoute pas aux objets les en-têtes HTTP tels que Cache-Control max-age, CacheControl s-maxage ou Expires. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Pour spécifier une valeur pour Default TTL, vous devez choisir l'option Customize pour le paramètre Object Caching. La valeur par défaut de Default TTL est 86 400 secondes (soit 1 journée). Si vous remplacez la valeur de Minimum TTL par une valeur supérieure à 86 400 secondes, la valeur par défaut de Default TTL prend la valeur de Minimum TTL. Durée de vie (TTL) maximale Spécifiez la durée maximale, en secondes, pendant laquelle les objets doivent rester dans le cache CloudFront avant que CloudFront n'interroge votre origine pour savoir si l'objet a été mis à jour. La valeur que vous spécifiez pour Maximum TTL s'applique uniquement quand votre origine ajoute aux objets les en-têtes tels que Cache-Control max-age, Cache-Control s-maxage ou Expires. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Pour spécifier une valeur pour Maximum TTL, vous devez choisir l'option Customize pour le paramètre Object Caching. La valeur par défaut de Maximum TTL est 31 536 000 secondes (soit 1 année). Si vous remplacez la valeur de Minimum TTL ou Default TTL par une valeur supérieure à 31 536 000 secondes, la valeur par défaut de Maximum TTL prend la valeur de Default TTL. Transmission des cookies (Amazon EC2 et autres origines personnalisées uniquement) Spécifiez si vous voulez que CloudFront transmette des cookies à votre serveur d'origine et, si tel est le cas, lesquels. Si vous choisissez de ne transmettre que les cookies sélectionnés (liste blanche de cookies), entrez les noms de cookie dans le champ Whitelist Cookies. Si vous choisissez All, CloudFront transmet tous les cookies, quel que soit le nombre utilisé par votre application. Amazon S3 ne traite pas les cookies, et la transmission des cookies à l'origine réduit la capacité de mise en cache. Pour les comportements de cache qui transmettent les demandes à une origine Amazon S3, choisissez None pour Forward Cookies. Pour plus d'informations sur la transmission des cookies à l'origine, consultez Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Cookies sur liste blanche (Amazon EC2 et autres origines personnalisées uniquement) Si vous choisissez Whitelist dans la liste Forward Cookies, dans le champ Whitelist Cookies, entrez les noms des cookies que CloudFront doit transmettre à votre serveur d'origine pour ce comportement de cache. Entrez chaque nom sur une nouvelle ligne. API Version 2016-01-13 71 Amazon CloudFront Guide du développeur Paramètres de comportement du cache Vous pouvez utiliser les caractères génériques suivants pour spécifier les noms de cookie : • * correspond à 0 caractère ou plus dans le nom de cookie • ? correspond à 1 caractère exactement dans le nom de cookie. Imaginons, par exemple, qu'une demande inclue un cookie nommé : userid_member-number où chacun de vos utilisateurs possède une valeur unique pour member-number. Vous voulez que CloudFront mette en cache une version distincte de l'objet pour chaque membre. Vous pourriez y parvenir en transmettant tous les cookies à votre origine, mais les demandes incluent certains cookies que CloudFront ne doit pas mettre en cache. De même, vous pouvez spécifier la valeur suivante comme nom de cookie, ce qui oblige CloudFront à transmettre à l'origine appropriée tous les cookies commençant par userid_ : userid_* Pour obtenir la limite actuelle du nombre de noms de cookie que vous pouvez mettre sur liste blanche pour chaque comportement de cache, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/create?issueType=service-limitincrease&limitType=service-code-cloudfront-distributions. Réacheminer les chaînes de requête Si votre serveur d'origine retourne différentes versions d'un objet basé sur une chaîne de requête de l'URL, choisissez Yes. Si votre origine renvoie la même version d'un objet quelle que soit la chaîne de requête, sélectionnez No. Ceci augmente la probabilité que CloudFront puisse servir une demande à partir du cache, ce qui améliore les performances et diminue la charge sur votre origine. Pour plus d'informations sur les chaînes de requête, consultez Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête (p. 106). Smooth Streaming Choisissez Yes si vous voulez distribuer les fichiers multimédias au format Microsoft Smooth Streaming à l'aide de l'origine associée à ce comportement de cache. Sinon, choisissez Non. Note Si vous spécifiez Yes, vous pouvez continuer à distribuer d'autres contenus à l'aide de ce comportement de cache s'ils correspondent à la valeur de Path Pattern. Pour plus d'informations, consultez Configuration de Smooth Streaming à la demande (p. 84). Restreindre l'accès des visionneuses (utiliser les URL signées) Si vous voulez des demandes d'objets qui correspondent à la valeur de PathPattern pour que le comportement de cache utilise des URL publiques, choisissez No. Si vous voulez des demandes d'objets qui correspondent à la valeur de PathPattern pour que le comportement de cache utilise des URL signées, choisissez No. Puis, spécifiez les comptes AWS que vous voulez utiliser pour créer des URL signées ; ces comptes sont connus comme utilisateurs de confiance. Pour plus d'informations sur les utilisateurs de confiance, consultez Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). API Version 2016-01-13 72 Amazon CloudFront Guide du développeur Détails de la distribution Utilisateurs de confiance Choisissez les comptes AWS que vous voulez utiliser comme utilisateurs de confiance pour ce comportement de cache : • Self : utilisez le compte avec lequel vous êtes connecté à AWS Management Console comme utilisateur de confiance. Si vous êtes actuellement connecté comme utilisateur IAM, le compte AWS associé est ajouté comme utilisateur de confiance. • Specify Accounts : entrez les numéros de compte des utilisateurs de confiance dans le champ AWS Account Numbers. Pour créer des URL signées, un compte AWS doit avoir au moins une paire de clés CloudFront active. Caution Si vous chargez une distribution que vous utilisez déjà pour distribuer le contenu, n'ajoutez des utilisateurs de confiance que lorsque vous êtes prêt à démarrer la génération d'URL signées pour vos objets. Après que vous avez ajouté les utilisateurs de confiance à une distribution, les utilisateurs doivent employer les URL signées pour accéder à un objet qui correspond à la valeur de PathPattern pour ce comportement de cache. Numéros de comptes AWS Si vous voulez créer des URL signées à l'aide de comptes AWS en plus du compte actuel (ou à sa place), entrez un numéro de compte AWS par ligne dans ce champ. Remarques : • Les comptes que vous spécifiez doivent avoir au moins une paire de clés CloudFront active. Pour plus d'informations, consultez Création de paires de clés CloudFront pour vos utilisateurs de confiance (p. 179). • Comme vous ne pouvez pas créer de paires de clés CloudFront pour les utilisateurs IAM, vous ne pouvez pas utiliser d'utilisateurs IAM comme utilisateurs de confiance. • Pour plus d'informations sur l'obtention du numéro de compte AWS d'un compte, consultez Comment puis-je obtenir les informations d'identification de sécurité ? dans le manuel Amazon Web Services General Reference. • Si vous entrez le numéro de compte du compte actif, CloudFront coche automatiquement la case Self et supprime le numéro de compte de la liste AWS Account Numbers. Compresser automatiquement les objets Si vous voulez que CloudFront compresse automatiquement les fichiers de certains types quand les demandes incluent Accept-Encoding: gzip dans l'en-tête, choisissez Yes. Quand CloudFront compresse votre contenu, les téléchargements sont beaucoup plus rapides, parce que les fichiers sont plus petits et que vos pages web s'affichent plus rapidement pour vos utilisateurs. Pour plus d'informations, consultez Service de fichiers compressés (p. 139). Détails de la distribution Les valeurs suivantes s'appliquent à la totalité de la distribution. Catégorie de tarifs – Sélectionnez la catégorie de tarifs associée au prix maximum que vous souhaitez payer pour un service CloudFront. Par défaut, CloudFront sert vos objets à partir des emplacements périphériques de toutes les régions CloudFront. API Version 2016-01-13 73 Amazon CloudFront Guide du développeur Détails de la distribution Pour plus d'informations sur les catégories de tarifs et sur la façon dont votre choix de catégorie affecte les performances de CloudFront pour votre distribution, consultez Choix de la catégorie de tarifs pour une distribution CloudFront (p. 49). Pour plus d'informations sur la tarification CloudFront, y compris la façon dont les catégories de tarifs correspondent aux régions CloudFront, consultez Tarification de Amazon CloudFront. ACL Web AWS WAF Si vous voulez utiliser AWS WAF pour autoriser ou bloquer les demandes selon des critères que vous spécifiez, choisissez la liste ACL web à associer à cette distribution. AWS WAF est un pare-feu d'application web qui vous permet de surveiller les requêtes HTTP et HTTPS qui sont transmises à CloudFront, ainsi que de contrôler l'accès à votre contenu. Selon les conditions que vous spécifiez, comme les adresses IP d'où proviennent les requêtes ou les valeurs des chaînes de requête, CloudFront répond aux requêtes avec le contenu demandé ou avec un code d'état HTTP 403 (Interdit). Vous pouvez aussi configurer CloudFront de façon à retourner une page d'erreur personnalisée quand une demande est bloquée. Pour plus d'informations sur AWS WAF, consultez le Guide du développeur AWS WAF. Noms de domaine alternatifs (CNAME) Facultatif. Spécifiez un ou plusieurs noms de domaine que vous voulez utiliser pour les URL de vos objets à la place du nom de domaine que CloudFront attribue lorsque vous créez votre distribution. Par exemple, si vous voulez que l'URL de l'objet : /images/image.jpg se présente ainsi : http://www.example.com/images/image.jpg et non comme suit : http://d111111abcdef8.cloudfront.net/images/image.jpg ajoutez un CNAME pour www.example.com. Important Si vous ajoutez un CNAME pour www.example.com à votre distribution, vous devez aussi créer (ou mettre à jour) un enregistrement CNAME avec votre service DNS pour acheminer les requêtes de www.example.com vers d111111abcdef8.cloudfront.net. Vous devez avoir l'autorisation de créer un enregistrement CNAME avec le fournisseur de services DNS du domaine. Généralement, cela signifie que le domaine vous appartient, mais il se peut aussi que vous développiez une application pour le propriétaire du domaine. Pour obtenir la limite actuelle relative au nombre de noms de domaine alternatifs qu'il est possible d'ajouter à une distribution, consultez Limites de Amazon CloudFront dans Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/ support/home#/case/create?issueType=service-limit-increase&limitType=service-code-cloudfrontdistributions. Pour plus d'informations sur les noms de domaine alternatifs, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Pour plus d'informations sur les URL CloudFront, consultez Format des URL pour les objets CloudFront (p. 100). API Version 2016-01-13 74 Amazon CloudFront Guide du développeur Détails de la distribution Certificat SSL Pour que vos visionneuses utilisent HTTPS pour accéder à vos objets, sélectionnez la valeur applicable. De plus, si vous choisissez Custom SSL Certificate, choisissez le certificat que vous voulez utiliser : • Certificat CloudFront par défaut (*.cloudfront.net) : si vous voulez utiliser le nom de domaine CloudFront dans les URL de vos objets, telles que https:// d111111abcdef8.cloudfront.net/image1.jpg, choisissez cette option. Sélectionnez aussi cette option si vous voulez que HTTP soit utilisé pour accéder à vos objets. • Certificat SSL personnalisé : si vous voulez utiliser votre propre nom de domaine dans les URL de vos objets, tel que https://example.com/image1.jpg, sélectionnez cette option, puis choisissez le certificat applicable. Notez que la liste peut inclure à la fois les certificats mis en service par AWS Certificate Manager et ceux achetés auprès d'une autre autorité de certification et téléchargés dans le magasin de certificats IAM. Pour plus d'informations, consultez Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). Si vous choisissez cette valeur, il est recommandé de n'utiliser qu'un nom de domaine alternatif dans vos URL d'objet (https://example.com/logo.jpg). Si vous utilisez votre nom de domaine alternatif CloudFront (https://d111111abcdef8.cloudfront.net/logo.jpg) et que la visionneuse prend en charge l'indication du nom de serveur (SNI), CloudFront se comporte normalement. Néanmoins, une visionneuse qui ne prend pas en charge l'extension SNI adopte l'un des comportements suivants, selon la valeur du paramètre Clients Supported : • All Clients : si la visionneuse ne prend pas en charge l'extension SNI, elle affiche un avertissement, car le nom de domaine CloudFront ne correspond pas au nom de domaine de votre certificat SSL. • Only Clients that Support Server Name Indication (SNI) : CloudFront abandonne la connexion avec la visionneuse sans renvoyer l'objet. Clients pris en charge Si vous avez spécifié un ou plusieurs noms de domaine alternatifs, ainsi qu'un certificat SSL du magasin de certificats IAM, choisissez la façon dont vous voulez que CloudFront serve les requêtes HTTPS, à savoir une méthode qui fonctionne pour tous les clients ou une méthode qui fonctionne pour la plupart des clients : • All Clients : tous les clients peuvent accéder à votre contenu. Cependant, vous devez demander l'autorisation d'utiliser cette fonction et des frais mensuels supplémentaires vous sont facturés. • Only Clients that Support Server Name Indication (SNI) : tous les navigateurs modernes peuvent accéder à votre contenu, parce qu'ils prennent tous en charge l'indication du nom du serveur (SNI). Cependant, certains navigateurs toujours utilisés ne prennent pas en charge SNI. Les utilisateurs pourvus de ces navigateurs doivent accéder à votre contenu à l'aide d'une autre méthode, comme, par exemple, en accédant directement à vos objets depuis l'origine. Pour plus d'informations, consultez Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). Version minimale du protocole SSL Spécifiez la version minimale du protocole SSL que CloudFront doit utiliser (SSLv3 ou TLSv1) pour les connexions HTTPS. CloudFront ne sert vos objets qu'aux navigateurs ou appareils qui prennent en charge au moins la version SSL que vous spécifiez. Le protocole TLSv1 étant plus sécurisé, nous vous recommandons de spécifier SSLv3 uniquement si vos utilisateurs emploient des navigateurs ou des appareils ne prenant pas en charge TLSv1. API Version 2016-01-13 75 Amazon CloudFront Guide du développeur Détails de la distribution Si vous avez sélectionné Custom SSL Certificate et Only Clients that Support Server Name Indication (SNI), CloudFront utilise TLSv1, qui est le protocole SSL minimal autorisé pour SNI. Objet racine par défaut Facultatif. Objet que CloudFront doit demander depuis votre origine (par exemple, index.html) en cas de demande de l'URL racine de votre distribution (http://www.example.com/) au lieu d'un objet de votre distribution (http://www.example.com/product-description.html). Spécifier un objet racine par défaut permet d'éviter d'exposer le contenu de votre distribution. La longueur maximale du nom est de 255 caractères. Le nom peut contenir l'un des caractères suivants : • A-Z, a-z • 0-9 • _-.*$/~"' • &, transmis et retourné comme & Lorsque vous spécifiez l'objet racine par défaut, entrez uniquement le nom de l'objet, par exemple, index.html. N'ajoutez pas / devant le nom de l'objet. Pour plus d'informations, consultez Spécifier un objet racine par défaut (distributions Web uniquement) (p. 137). Journalisation Définit si vous voulez que CloudFront enregistre les informations relatives à chaque demande d'un objet et stocke les fichiers journaux dans un compartiment Amazon S3. Vous pouvez activer ou désactiver la journalisation à tout moment. L'activation de la journalisation ne fait l'objet d'aucuns frais supplémentaires, mais vous augmentez le coût habituel de Amazon S3 de stockage et d'accès aux fichiers dans un compartiment Amazon S3. Vous pouvez supprimer les fichiers journaux à tout moment. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Compartiment pour les journaux Si vous avez choisi On pour Logging, le compartiment Amazon S3 dans lequel CloudFront doit stocker les journaux d'accès, par exemple, myawslogbucket.s3.amazonaws.com. Si vous activez la journalisation, CloudFront enregistre les informations sur chaque demande par l'utilisateur d'un objet et stocke les fichiers dans le compartiment Amazon S3 spécifié. Vous pouvez activer ou désactiver la journalisation à tout moment. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Préfixe de journal Facultatif. Si vous avez choisi On pour Logging, spécifiez la chaîne, le cas échéant, que CloudFront doit utiliser comme préfixe des noms des fichiers journaux d'accès, par exemple, exampleprefix/. La barre oblique de fin (/) est facultative, mais recommandée pour simplifier la navigation dans vos fichiers-journaux. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Journalisation des cookies Si vous voulez que CloudFront inclut les cookies dans les journaux d'accès, choisissez On. Si vous avez choisi d'inclure les cookies dans les journaux, CloudFront enregistre tous les cookies, quelle que API Version 2016-01-13 76 Amazon CloudFront Guide du développeur Pages d'erreur personnalisées et mise en cache des erreurs soit la façon dont vous configurez les comportements de cache pour cette distribution : transmettre tous les cookies, ne transmettre aucun cookie ou transmettre une liste spécifiée de cookies à l'origine. Comme Amazon S3 ne traite pas les cookies, à moins que votre distribution n'inclue aussi une origine Amazon EC2 ou autre origine personnalisée, nous vous recommandons de choisir Off comme valeur de Cookie Logging. Pour plus d'informations sur les cookies, consultez Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Commentaire Facultatif. Lorsque vous créez une distribution, vous pouvez inclure un commentaire de 128 caractères au plus. Vous pouvez mettre à jour le commentaire à tout moment. Etat de la distribution Indique si vous voulez que la distribution soit activée ou désactivée une fois déployée : • Enabled signifie que dès que la distribution est entièrement déployée, vous pouvez déployer les liens qui utilisent le nom de domaine de la distribution et que les utilisateurs peuvent extraire le contenu. Chaque fois qu'une distribution est activée, CloudFront accepte et gère toutes les demandes de contenu de l'utilisateur final qui emploient le nom de domaine associé à cette distribution. Lorsque vous créez, modifiez ou supprimez une distribution CloudFront, la propagation des modifications sur la base de données CloudFront nécessite un certain temps. Une demande immédiate d'informations sur une distribution peut ne pas afficher la modification. La propagation s'effectue généralement en quelques minutes, mais une charge système ou une partition du réseau élevées peuvent augmenter cette durée. • Disabled signifie que même si la distribution peut être déployée et prête à être utilisée, les utilisateurs ne peuvent pas l'utiliser. Chaque fois qu'une distribution est désactivée, CloudFront n'accepte pas les demandes de l'utilisateur final qui emploient le nom de domaine associé à cette distribution. Tant que vous n'avez pas basculé la distribution de « disabled » en « enabled » (en mettant à jour la configuration de la distribution), personne ne peut l'utiliser. Vous pouvez basculer une distribution de désactivée à activée (et inversement) aussi souvent que vous le voulez. Suivez la procédure de mise à jour de la configuration d'une distribution. Pour plus d'informations, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). Pages d'erreur personnalisées et mise en cache des erreurs CloudFront peut retourner un objet au navigateur (un fichier HTML, par exemple) quand votre origine Amazon S3 ou origine personnalisée retourne un code d'état HTTP 4xx ou 5xx à CloudFront. Vous pouvez aussi spécifier la durée pendant laquelle une réponse d'erreur de votre origine ou d'une page d'erreur personnalisée est mise en cache dans les caches périphériques CloudFront. Pour plus d'informations, consultez Personnaliser des réponses d'erreur (p. 132). Note Comme les valeurs suivantes ne sont pas incluses dans l'Assistant Create Distribution, vous ne pouvez configurer les pages d'erreur personnalisées que lorsque vous mettez à jour une distribution. API Version 2016-01-13 77 Amazon CloudFront Guide du développeur Restrictions Code d’erreur Le code d'état HTTP pour lequel CloudFront doit renvoyer une page d'erreur personnalisée. Vous pouvez configurer CloudFront de façon à renvoyer des pages d'erreur personnalisées pour aucun, certains ou tous les codes d'état HTTP que CloudFront met en cache. Chemin de la page de réponse Chemin d'accès à la page d'erreur personnalisée (par exemple, /erreurs-4xx/403forbidden.html) que CloudFront doit renvoyer à un navigateur quand votre origine retourne le code d'état HTTP que vous avez spécifié pour Error Code (par exemple, 403). Si vous souhaitez stocker vos objets et vos pages d'erreur personnalisées dans des emplacements différents, votre distribution doit inclure un comportement de cache pour lequel les conditions suivantes sont vraies : • La valeur de Path Pattern correspond au chemin d'accès de vos messages d'erreur personnalisés. Par exemple, supposons que vous avez enregistré des pages d'erreur personnalisées pour les erreurs 4xx dans un compartiment Amazon S3 d'un répertoire nommé /erreurs-4xx. Votre distribution doit inclure un comportement de cache pour lequel le modèle de chemin transmet les demandes de vos pages d'erreur personnalisées vers cet emplacement, par exemple, /erreurs-4xx/*. • La valeur d'Origin spécifie la valeur d'Origin ID pour l'origine qui contient vos pages d'erreur personnalisées. Code de réponse Code d'état HTTP que CloudFront doit retourner avec la page d'erreur personnalisée. Durée de vie minimale (TTL) de la mise en cache des erreurs Durée minimale (en secondes) pendant laquelle CloudFront doit mettre en cache les réponses d'erreur de votre serveur d'origine. Restrictions Si vous devez empêcher les utilisateurs de pays sélectionnés d'accéder à votre contenu, vous pouvez configurer votre distribution CloudFront pour permettre aux utilisateurs sur liste blanche des pays spécifiés d'accéder à votre contenu ou pour ne pas permettre aux utilisateurs sur liste noire des pays spécifiés d'accéder à votre contenu. Pour plus d'informations, consultez Restriction de la distribution géographique de votre contenu (p. 82). Note Comme les valeurs suivantes ne sont pas incluses dans l'Assistant Create Distribution, vous ne pouvez configurer les restrictions géographiques que lorsque vous mettez à jour une distribution. Activer une restriction géographique Si vous souhaitez ou non empêcher les utilisateurs de certains pays d'accéder à votre contenu. Pas de frais supplémentaires pour la configuration de restrictions géographiques. Type de restriction Indique comment vous voulez que soient spécifiés les pays à partir desquels vos utilisateurs peuvent accéder à votre contenu : API Version 2016-01-13 78 Amazon CloudFront Guide du développeur Valeurs que CloudFront affiche dans la console lors de la création ou de la mise à jour d'une distribution web • Liste blanche : la liste Countries inclut tous les pays à partir desquels vous voulez que vos utilisateurs accèdent à votre contenu. • Liste noire : la liste Countries inclut tous les pays à partir desquels vous ne voulez pas que vos utilisateurs accèdent à votre contenu. Pays Pays que vous voulez ajouter à votre liste blanche ou noire. Pour ajouter un pays, sélectionnez-le dans la liste à gauche et choisissez Add. Remarques : • Pour ajouter plusieurs pays consécutifs, sélectionnez le premier pays, appuyez sur la touche Maj et maintenez-la enfoncée, sélectionnez le dernier pays et choisissez Add. • Pour ajouter plusieurs pays non consécutifs, sélectionnez le premier pays, appuyez sur la touche Ctrl et maintenez-la enfoncée, sélectionnez les pays restants et choisissez Add. • Pour rechercher un pays dans la liste de gauche, entrez les tout premiers caractères du nom complet du pays. • Le code à deux lettres devant le nom de chaque pays correspond à la valeur que vous entrez pour créer ou mettre à jour une distribution à l'aide de l'API CloudFront. Nous utilisons les codes pays de l'Organisation internationale de normalisation (ISO). Pour accéder à une liste facile à utiliser et pouvant être triée par code et nom de pays, consultez l'entrée Wikipedia ISO 3166-1 alpha-2. Valeurs que CloudFront affiche dans la console lors de la création ou de la mise à jour d'une distribution web Lorsque vous créez ou mettez à jour une distribution web, CloudFront affiche les informations suivantes dans la console CloudFront. Note Utilisateurs de confiance actifs, les comptes AWS ayant une paire de clés CloudFront active et pouvant être utilisés pour créer des URL signées valides ne sont pas visibles actuellement dans la console CloudFront. Distribution ID (onglet General) Lorsque vous exécutez une action sur une distribution à l'aide de l'API CloudFront, vous utilisez l'ID de distribution pour spécifier la distribution sur laquelle vous voulez exécuter une action, par exemple, EDFDVBD6EXAMPLE. Vous ne pouvez pas modifier l'ID de distribution. Distribution Status (onglet General) Les valeurs d'état possibles pour une distribution sont répertoriées dans le tableau suivant. Value Description InProgress La distribution est en cours de création ou de mise à jour. Deployed La distribution a été créée ou mise à jour, et les modifications ont été entièrement appliquées à l'ensemble du système CloudFront. API Version 2016-01-13 79 Amazon CloudFront Guide du développeur Last Modified (onglet General) Note En plus de garantir que l'état d'une distribution a la valeur Deployed, vous devez activer la distribution avant que les utilisateurs ne puissent utiliser CloudFront pour accéder à votre contenu. Pour plus d'informations, consultez Etat de la distribution (p. 77). Last Modified (onglet General) Date et heure de dernière modification de la distribution, à l'aide du format ISO 8601 : par exemple, 2012-05-19T19:37:58Z. Pour plus d'informations, consultez http://www.w3.org/TR/NOTE-datetime. Domain Name (onglet General) Vous utilisez le nom de domaine de la distribution dans les liens vers vos objets. Par exemple, si le nom de domaine de votre distribution est d111111abcdef8.cloudfront.net, le lien vers / images/image.jpg sera http://d111111abcdef8.cloudfront.net/images/image.jpg. Vous ne pouvez pas modifier le nom de domaine CloudFront de votre distribution. Pour plus d'informations sur les URL CloudFront, des liens vers vos objets, consultez Format des URL pour les objets CloudFront (p. 100). Si vous avez spécifié un ou plusieurs noms de domaine alternatifs (CNAME), vous pouvez utiliser vos propres noms de domaine pour les liens vers vos objets au lieu d'utiliser le nom de domaine CloudFront. Pour plus d'informations sur les CNAME, consultez Noms de domaine alternatifs (CNAME) (p. 74). Note Les noms de domaine CloudFront sont uniques. Le nom de domaine de votre distribution n'avait jamais été utilisé pour une distribution précédente et ne sera jamais réutilisé pour une autre distribution à l'avenir. Conditions requises et recommandations pour l'utilisation d'Amazon EC2 et autres origines personnalisées Suivez les instructions ci-après pour utiliser les instances Amazon EC2 et d'autres origines personnalisées avec CloudFront. • Hébergez et servez le même contenu sur tous les serveurs. • Enregistrez les entrées d'en-tête X-Amz-Cf-Id sur tous les serveurs ; CloudFront requiert cette information à des fins de débogage. • Limitez-les demandes d'accès aux ports HTTP et HTTPS sur lesquels votre origine personnalisée écoute. • Synchronisez les horloges de tous les serveurs de votre implémentation. • Utilisez des serveurs redondants pour gérer les défaillances. • Pour plus d'informations sur l'utilisation d'une origine personnalisée pour servir un contenu privé consultez Utilisation d'un serveur HTTP pour le contenu privé (p. 169). • Pour plus d'informations sur le comportement de demande et de réponse, ainsi que sur les codes d'état HTTP pris en charge, consultez Comportement des demandes et des réponses (p. 144). API Version 2016-01-13 80 Amazon CloudFront Guide du développeur Utilisation d'AWS WAF pour contrôler l'accès à votre contenu Si vous utilisez Amazon Elastic Compute Cloud pour vos origines personnalisées, nous vous recommandons de procéder comme suit : 1. Utilisez un Amazon Machine Image qui installe automatiquement le logiciel d'un serveur web. Pour plus d'informations, consultez la documentation Amazon EC2. 2. Utilisez un équilibreur de charge Elastic Load Balancing pour gérer le trafic entre plusieurs instances Amazon EC2 et isoler votre application des modifications apportées aux instances Amazon EC2. Par exemple, si vous utilisez un équilibreur de charge, vous pouvez ajouter et supprimer les instances Amazon EC2 sans modifier votre application. Pour plus d'informations, consultez la documentation Elastic Load Balancing. 3. Lorsque vous créez votre distribution CloudFront, spécifiez l'URL de l'équilibreur de charge correspondant au nom de domaine de votre serveur d'origine. Pour plus d'informations, consultez Utilisation des distributions web (p. 54). Utilisation d'AWS WAF pour contrôler l'accès à votre contenu AWS WAF est un pare-feu d'application web qui vous permet de surveiller les requêtes HTTP et HTTPS qui sont transmises à CloudFront, ainsi que de contrôler l'accès à votre contenu. Selon les conditions que vous spécifiez, comme les adresses IP d'où proviennent les requêtes ou les valeurs des chaînes de requête, CloudFront répond aux requêtes avec le contenu demandé ou avec un code d'état HTTP 403 (Interdit). Vous pouvez aussi configurer CloudFront de façon à retourner une page d'erreur personnalisée quand une demande est bloquée. Pour plus d'informations sur AWS WAF, consultez le Guide du développeur AWS WAF. Après que vous avez créé une liste de contrôle d'accès (ACL) web, vous créez ou mettez à jour une distribution web et l'associez à une liste ACL web. Vous pouvez associer autant de distributions CloudFront que vous le souhaitez à la même liste ACL web ou à différentes listes ACL web. Pour plus d'informations sur la création d'une distribution web et son association à une liste ACL web, consultez Création ou mise à jour d'une distribution web à l'aide de la console CloudFront (p. 56). Pour associer ou dissocier une liste ACL web et une distribution existante, ou modifier la liste ACL web associée à une distribution, exécutez la procédure suivante. Pour associer ou dissocier une liste ACL web AWS WAF et une distribution CloudFront existante à l'aide de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez l'ID de la distribution que vous souhaitez mettre à jour. 3. Sous l'onglet General, choisissez Edit. 4. Sur la page Distribution Settings, dans la liste AWS WAF Web ACL, choisissez la liste ACL web que vous voulez associer à cette distribution. Si vous voulez dissocier la distribution de toutes les listes ACL web, choisissez None. Si vous voulez associer la distribution à une autre liste ACL web, choisissez la nouvelle liste ACL web. 5. Choisissez Yes, Edit. 6. Répétez les étapes 2 à 5 pour les autres distributions, le cas échéant, pour lesquelles vous voulez ajouter, supprimer ou modifier les associations avec les listes ACL web AWS WAF. 7. Après que vous avez modifié les paramètres, la valeur de la colonne Status des distributions que vous avez mises à jour devient InProgress tandis que CloudFront propage les modifications sur les emplacements périphériques. Lorsque le champ Status d'une distribution a la valeur Deployed, API Version 2016-01-13 81 Amazon CloudFront Guide du développeur Restriction de la distribution géographique de votre contenu la distribution est prête à utiliser AWS WAF pour traiter les demandes. (La valeur de la colonne State de la distribution doit également être Enabled.) Cette valeur devrait être effective moins de 15 minutes après que vous avez enregistré la dernière modification de la distribution. Restriction de la distribution géographique de votre contenu Vous pouvez utiliser la restriction géographique, également appelée blocage géographique, pour empêcher les utilisateurs d'emplacements géographiques spécifiques d'accéder au contenu que vous distribuez via une distribution web CloudFront. Pour utiliser la restriction géographique, vous avez deux options : • Utiliser la fonction de restriction géographique de CloudFront. 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 sousensemble des fichiers associés à une distribution ou pour le limiter à un niveau de détail plus fin que le niveau pays. Rubriques • Utilisation de la restriction géographique CloudFront (p. 82) • Utilisation d'un service de géolocalisation tiers (p. 83) Utilisation de la restriction géographique CloudFront Lorsqu'un utilisateur demande votre contenu, CloudFront sert généralement le contenu demandé quel que soit l'emplacement de l'utilisateur. Si vous devez empêcher les utilisateurs de certains pays d'accéder à votre contenu, vous pouvez utiliser la fonction de restriction géographique pour exécuter l'une des actions suivantes : • Permettre à vos utilisateurs de n'accéder à votre contenu que s'ils résident dans l'un des pays de la liste blanche des pays approuvés. • Empêcher vos utilisateurs d'accéder à votre contenu s'ils résident dans l'un des pays de la liste noire des pays interdits. Par exemple, si la demande provient d'un pays où, pour des raisons de copyright, vous n'êtes pas autorisé à distribuer votre contenu, vous pouvez utiliser la restriction géographique CloudFront pour bloquer la demande. Note CloudFront détermine l'emplacement de vos utilisateurs à l'aide d'une base de données GeoIP 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 %. La restriction géographique fonctionne comme suit : 1. Imaginons que vous n'ayez le droit de distribuer votre contenu qu'au Liechtenstein. Vous mettez à jour votre distribution web CloudFront et ajoutez une liste blanche qui ne comporte que le Liechtenstein. (Vous pouvez, à la place, ajouter une liste noire qui contient tous les pays, à l'exception du Liechtenstein.) API Version 2016-01-13 82 Amazon CloudFront Guide du développeur Utilisation d'un service de géolocalisation tiers 2. Un utilisateur situé à Monaco demande votre contenu et DNS achemine la demande vers l'emplacement périphérique CloudFront, à Milan. 3. L'emplacement périphérique de Milan recherche votre distribution et établit que l'utilisateur de Monaco n'est pas autorisé à télécharger votre contenu. 4. CloudFront renvoie un code d'état HTTP 403 (Interdit) à l'utilisateur. Vous pouvez, le cas échéant, configurer CloudFront de façon à retourner un message d'erreur personnalisé à l'utilisateur et vous pouvez spécifier la durée pendant laquelle CloudFront doit mettre en cache la réponse d'erreur à l'objet demandé ; la valeur par défaut est de 5 minutes. Pour plus d'informations, consultez Personnaliser des réponses d'erreur (p. 132). La restriction géographique s'applique à la totalité d'une distribution web. Si vous devez appliquer une restriction à une partie de votre contenu et utiliser une autre restriction (ou aucune restriction) pour une autre partie de votre contenu, vous devez créer des distributions web CloudFront distinctes ou utiliser un service de géolocalisation tiers. Si vous activez la journalisation des accès CloudFront, vous pouvez identifier les demandes que CloudFront a rejetées en recherchant les entrées de journal où sc-status (le code d'état HTTP) a la valeur 403. Cependant, si vous n'utilisez que les journaux d'accès, vous ne pouvez pas distinguer une demande que CloudFront a rejetée à cause de l'emplacement de l'utilisateur d'une demande que CloudFront a rejetée parce que l'utilisateur n'avait pas l'autorisation d'accéder à l'objet pour une autre raison. Si vous disposez d'un service de géolocalisation tiers tel que Digital Element ou MaxMind, vous pouvez identifier l'emplacement des demandes en fonction de l'adresse IP de la colonne c-ip (adresse IP du client) dans les journaux d'accès. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). La procédure suivante explique comment utiliser la console CloudFront pour ajouter une restriction géographique à une distribution web existante. Pour plus d'informations sur l'utilisation de la console pour créer une distribution web, consultez Utilisation des distributions web (p. 54). Pour utiliser la console CloudFront afin d'ajouter une restriction géographique à votre distribution web CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. 3. 4. Sélectionnez la distribution que vous voulez mettre à jour. Dans le volet Distribution Settings, choisissez l'ongletRestrictions. Choisissez Edit. 5. 6. Entrez les valeurs applicables. Pour plus d'informations, consultez Restrictions (p. 78). Choisissez Yes, Edit. Utilisation d'un service de géolocalisation tiers La fonction de restriction géographique CloudFront vous permet de contrôler la distribution de votre contenu au niveau pays pour tous les fichiers que vous distribuez à l'aide d'une distribution web donnée. Si vous avez des restrictions géographiques sur les emplacements où votre contenu peut être distribué et que les restrictions ne suivent pas les frontières des pays, ou si vous voulez limiter l'accès à quelques-uns des fichiers uniquement que vous distribuez via CloudFront, vous pouvez associer CloudFront à un service de géolocalisation tiers. Vous pouvez ainsi contrôler l'accès à votre contenu en fonction non seulement du pays, mais également de la ville ou du code postal, voire de la latitude et de la longitude. Lorsque vous utilisez un service de géolocalisation tiers, il est recommandé d'utiliser les URL signées CloudFront, qui vous permettent de spécifier une date et une heure d'expiration au-delà desquelles l'URL n'est plus valide. De plus, nous vous recommandons d'utiliser un compartiment Amazon API Version 2016-01-13 83 Amazon CloudFront Guide du développeur Configuration de Smooth Streaming à la demande S3 comme origine parce que vous pouvez alors utiliser une Origin Access Identity CloudFront pour empêcher les utilisateurs d'accéder directement à votre contenu depuis l'origine. Pour plus d'informations sur les URL signées et les identités d'accès à l'origine, consultez Service d'un contenu privé via CloudFront (p. 168). La liste des tâches ci-après explique comment contrôler l'accès à vos fichiers à l'aide d'un service de géolocalisation tiers. Liste des tâches pour restreindre l'accès aux fichiers d'une distribution CloudFront en fonction de l'emplacement géographique 1. Obtenez un compte avec un service de géolocalisation. 2. Chargez votre contenu sur un compartiment Amazon Simple Storage Service (S3). Pour plus d'informations, consultez la documentation Amazon S3. 3. Configurez Amazon CloudFront and Amazon S3 pour servir un contenu privé. Pour plus d'informations, consultez Service d'un contenu privé via CloudFront (p. 168). 4. Ecrivez votre application web pour exécuter ce qui suit : a. Envoyez l'adresse IP de chaque demande utilisateur au service de géolocalisation. b. Evaluez la valeur de retour du service de géolocalisation pour déterminer si l'utilisateur se trouve dans un emplacement où CloudFront doit distribuer votre contenu. c. Selon que vous voulez ou non distribuer le contenu à l'emplacement de l'utilisateur, générez une URL signée pour votre contenu CloudFront ou retournez le code d'état HTTP 403 (Interdit) à l'utilisateur. Vous pouvez aussi configurer CloudFront de façon à retourner un message d'erreur personnalisé. Pour plus d'informations, consultez Personnaliser des réponses d'erreur (p. 132). 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. Cependant, cette adresse IP n'est pas toujours celle de l'utilisateur : elle peut aussi être l'adresse IP d'un serveur proxy, en fonction de 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 XForwarded-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. Configuration de Smooth Streaming à la demande Vous pouvez utiliser CloudFront pour le streaming à la demande de fichiers multimédias que vous avez transcodés au format Microsoft Smooth Streaming. Pour distribuer un contenu Smooth Streaming à la demande, vous avez deux options : API Version 2016-01-13 84 Amazon CloudFront Guide du développeur Configuration des téléchargements progressifs à la demande • Comme origine de votre distribution, spécifier un serveur web capable de diffuser des fichiers transcodés au format Microsoft Smooth Streaming. • Activer Smooth Streaming dans une distribution CloudFront. Smooth Streaming est une propriété des comportements de cache, ce qui signifie que vous pouvez utiliser une même distribution pour distribuer les fichiers multimédias Smooth Streaming aussi bien que d'autres contenus. Si vous activez Smooth Streaming, notez ce qui suit : • Vous pouvez continuer à distribuer d'autres contenus à l'aide du même comportement de cache si le contenu correspond à la valeur de Path Pattern pour ce comportement de cache. • CloudFront peut utiliser un compartiment Amazon S3 ou une origine personnalisée pour les fichiers multimédias Smooth Streaming. Cependant, CloudFront ne peut pas utiliser comme origine un serveur Microsoft IIS Server si le serveur est configuré pour Smooth Streaming. • Vous ne pouvez pas invalider les fichiers multimédias au format Smooth Streaming. Si vous voulez mettre à jour les fichiers avant qu'ils n'expirent, vous devez les renommer. Pour plus d'informations, consultez Ajouter, supprimer et remplacer des objets dans une distribution (p. 117). Pour plus d'informations sur les clients Smooth Streaming, consultez Smooth Streaming Primer sur le site web Microsoft. Pour utiliser CloudFront afin de diffuser les fichiers multimédias encodés au format Microsoft Smooth Streaming sans utiliser un serveur web qui puisse diffuser des fichiers multimédias au format Smooth Streaming, exécutez les tâches suivantes : 1. Transcodez les fichiers multimédias au format MP4 fragmenté Smooth Streaming. Pour obtenir la liste des applications capables de transcoder au format Smooth Streaming, consultez Smooth Streaming Primer sur le site web Microsoft. 2. Effectuez l'une des actions suivantes : • Si vous utilisez la console CloudFront : lorsque vous créez une distribution web, activez Smooth Streaming dans le comportement de cache par défaut. Vous pouvez aussi activer Smooth Streaming dans le comportement de cache par défaut et/ou dans un ou plusieurs comportements de cache personnalisés d'une distribution web CloudFront existante. • Si vous utilisez l'API CloudFront : ajoutez l'élément SmoothStreaming au type complexe DistributionConfig du comportement de cache par défaut et/ou d'un ou de plusieurs comportements de cache personnalisés. 3. Téléchargez les fichiers de vos présentations Smooth Streaming à l'origine applicable. 4. Créez un fichier clientaccesspolicy.xml ou crossdomainpolicy.xml, puis ajoutezle à un emplacement accessible à la racine de votre distribution : par exemple, http:// d111111abcdef8.cloudfront.net/clientaccesspolicy.xml. Pour plus d'informations, consultez Making a Service Available Across Domain Boundaries sur le site web Microsoft Developer Network. 5. Pour les liens de votre application, spécifiez le manifeste du client au format suivant : http://d111111abcdef8.cloudfront.net/video/presentation.ism/Manifest Configuration des téléchargements progressifs à la demande Pour utiliser CloudFront afin de distribuer les fichiers multimédias à l'aide d'un téléchargement progressif, exécutez les tâches suivantes : API Version 2016-01-13 85 Amazon CloudFront Guide du développeur Configuration d'Apple HTTP Live Streaming (HLS) à la demande 1. Transcodez vos fichiers multimédias, le cas échéant. 2. 3. Créez une distribution web CloudFront. Aucun paramètre particulier n'est requis. Téléchargez vos fichiers sur l'origine que vous avez spécifiée lorsque vous avez créé votre distribution. Pour les liens de votre application (un lecteur multimédia, par exemple), spécifiez le nom du fichier multimédia au même format que celui que vous utilisez pour d'autres objets que vous distribuez à l'aide de CloudFront. Pour plus d'informations, consultez Format des URL pour les objets CloudFront (p. 100). 4. Configuration d'Apple HTTP Live Streaming (HLS) à la demande Pour utiliser CloudFront afin de diffuser les fichiers multimédias au format Apple HTTP Live Streaming (HLS), exécutez les tâches suivantes : 1. Transcodez vos fichiers multimédias au format HLS. Vous pouvez utiliser n'importe quelle application de transcodage qui prend en charge le format HLS : par exemple, Amazon Elastic Transcoder. 2. 3. Créez une distribution web CloudFront. Aucun paramètre particulier n'est requis. Téléchargez vos fichiers sur l'origine que vous avez spécifiée lorsque vous avez créé votre distribution. 4. Pour les liens de votre application (un lecteur multimédia, par exemple), spécifiez la liste de lecture maître au même format que celui que vous utilisez pour d'autres objets que vous distribuez à l'aide de CloudFront. Pour plus d'informations, consultez Format des URL pour les objets CloudFront (p. 100). API Version 2016-01-13 86 Amazon CloudFront Guide du développeur Fonctionnement des distributions RTMP Utilisation des distributions RTMP Rubriques • Fonctionnement des distributions RTMP (p. 87) • Liste des tâches du streaming multimédia avec RTMP (p. 89) • Création d'une distribution RTMP à l'aide de la console CloudFront (p. 90) • Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution RTMP (p. 90) • Valeurs que CloudFront affiche dans la console lors de la création ou de la mise à jour d'une distribution RTMP (p. 95) • Configuration du lecteur multimédia (p. 96) • Utilisation d'un compartiment Amazon S3 comme origine d'une distribution RTMP (p. 97) • Création de plusieurs distributions RTMP pour un serveur d'origine (p. 98) • Restriction des accès avec Crossdomain.xml (p. 98) • Codes d'erreur pour les distributions RTMP (p. 98) • Dépannage des distributions RTMP (p. 99) Cette section explique la configuration et la gestion des distributions RTMP. Pour plus d'informations sur la création d'une distribution RTMP, consultez Liste des tâches du streaming multimédia avec RTMP (p. 89). Fonctionnement des distributions RTMP Pour diffuser des fichiers multimédias avec CloudFront, vous fournissez deux types de fichiers à vos utilisateurs finaux : • Vos fichiers multimédias • Un lecteur multimédia, tel que JW Player, Flowplayer ou Adobe Flash Les utilisateurs finaux affichent vos fichiers multimédias à l'aide du lecteur que vous leur fournissez ; il n'utilise pas celui (le cas échéant) déjà installé sur leur ordinateur ou autre appareil. API Version 2016-01-13 87 Amazon CloudFront Guide du développeur Fonctionnement des distributions RTMP Quand un utilisateur final diffuse votre fichier multimédia, le lecteur multimédia commence à lire le contenu du fichier tandis que le téléchargement se poursuit depuis CloudFront. Le fichier multimédia n'est pas stocké localement sur le système de l'utilisateur final. Pour utiliser CloudFront afin de servir à la fois le lecteur multimédia et les fichiers multimédias, vous avez besoin de deux types of distribution : une distribution web pour le lecteur multimédia et une distribution RTMP pour les fichiers multimédias. Les distributions web servent les fichiers via HTTP, tandis que les distributions RTMP diffusent les fichiers multimédias via RTMP (ou une variante de RTMP). L'exemple suivant présume que vos fichiers multimédias et votre lecteur multimédia sont stockés dans différents compartiments de Amazon S3, mais ce n'est pas obligatoire (vous pouvez stocker les fichiers multimédias et votre lecteur multimédia dans le même compartiment Amazon S3). Vous pouvez aussi rendre le lecteur multimédia accessible aux utilisateurs finaux par d'autres moyens, comme, par exemple, l'utilisation de CloudFront et d'une origine personnalisée. Cependant, les fichiers multimédias doivent utiliser un compartiment Amazon S3 comme origine. Dans le schéma suivant, votre site sert une copie mise en cache du lecteur multimédia à chaque utilisateur final via le domaine d1234.cloudfront.net. Le lecteur multimédia accède aux copies mises en cache de vos fichiers multimédias via le domaine s5678.cloudfront.net. Votre compartiment contient le lecteur multimédia et constitue le serveur d'origine d'une distribution HTTP normale. Dans cet exemple, le nom de domaine de la distribution est d1234.cloudfront.net. (Le d de d1234.cloudfront.net indique qu'il s'agit d'une distribution web.) Votre compartiment de streaming multimédia contient vos fichiers multimédias et constitue le serveur d'origine d'une distribution RTMP. Dans cet exemple, le nom de domaine de la distribution est s5678.cloudfront.net. (Le s de s5678.cloudfront.net indique qu'il s'agit d'une distribution RTMP.) Lorsque vous configurez CloudFront pour distribuer les fichiers multimédias, CloudFront utilise Adobe Flash Media Server 3.5 comme serveur de streaming et diffuse vos fichiers multimédias à l'aide du protocole RTMP (Real-Time Messaging Protocol) d'Adobe. CloudFront accepte les requêtes RTMP sur les ports 1935 et 80. CloudFront prend en charge les variantes suivantes du protocole RTMP : • RTMP : protocole RTMP (Real-Time Message Protocol) d'Adobe • RTMPT streaming Adobe par tunnel via HTTP • RTMPE : chiffré par Adobe • RTMPTE : chiffré Adobe par tunnel via HTTP Pour un bref résumé de RTMP et des formats de fichier qu'Adobe Flash Media Server prend en charge, consultez Overview of Streaming with Flash Media Server 3 sur le site web Adobe. La présentation inclut des informations sur les codecs et conteneurs pris en charge. CloudFront prend en charge toutes les fonctions d'Adobe Flash Media Server 3.5 associées au streaming dynamique, qui vous permet de passer d'un flux de qualité différente à l'autre pendant la lecture. Pour plus d'informations, consultez Dynamic streaming in Flash Media Server 3.5: Part 1 sur le site web Adobe. Pour servir le contenu diffusé, vous devez fournir un lecteur multimédia à vos utilisateurs finaux. Vous pouvez écrire votre propre lecteur avec Adobe Flash. Pour plus d'informations, consultez http:// API Version 2016-01-13 88 Amazon CloudFront Guide du développeur Liste des tâches du streaming multimédia avec RTMP www.adobe.com/products/flashplayer/. Le cas échéant, vous pouvez utiliser un lecteur existant. Pour plus d'informations, consultez les didacticiels suivants : • Streaming de vidéos à la demande avec CloudFront et Adobe Flash Player (p. 349) • Streaming de vidéos à la demande avec CloudFront et Flowplayer pour Adobe Flash Player (p. 353) • Streaming de vidéos à la demande avec CloudFront et JW Player (p. 358) Liste des tâches du streaming multimédia avec RTMP Cette section résume la procédure générale de configuration du streaming à la demande avec le protocole Adobe RTMP pour un lecteur multimédia, quel qu'il soit. Si vous utilisez Adobe Flash Player, Flowplayer ou JW Player pour votre lecteur multimédia, consultez à la place le didacticiel applicable : • Streaming de vidéos à la demande avec CloudFront et Adobe Flash Player (p. 349) • Streaming de vidéos à la demande avec CloudFront et Flowplayer pour Adobe Flash Player (p. 353) • Streaming de vidéos à la demande avec CloudFront et JW Player (p. 358) La liste des tâches suivante résume le processus de création d'une distribution web. Pour créer une distribution RTMP 1. Créez un compartiment Amazon S3 pour vos fichiers multimédias. Si vous utilisez un autre compartiment Amazon S3 pour votre lecteur multimédia, créez également un compartiment Amazon S3 pour les fichiers du lecteur multimédia. Les noms de vos compartiments doivent tous être en lettres minuscules et ne peuvent pas contenir d'espaces. 2. Choisissez et configurez un lecteur pour lire vos fichiers multimédias. Pour plus d'informations, consultez la documentation relative au lecteur multimédia. 3. Téléchargez les fichiers de votre lecteur multimédia sur l'origine à partir de laquelle vous voulez que CloudFront obtienne les fichiers. Si vous utilisez un compartiment Amazon S3 comme origine du lecteur multimédia, rendez les fichiers (pas le compartiment) publiquement accessibles en lecture. 4. Créez une distribution web pour votre lecteur multimédia. (Vous pouvez aussi utiliser une distribution existante.) Pour de plus amples informations, veuillez consulter Liste des tâches de création d'une distribution web (p. 54). 5. Téléchargez vos fichiers multimédias sur le compartiment Amazon S3 que vous avez créé pour les fichiers multimédias et rendez le contenu (pas le compartiment) publiquement accessible en lecture. Important Les fichiers multimédias d'un conteneur Flash Video doivent inclure l'extension de nom de fichier .flv, sans quoi ils ne peuvent pas être diffusés. Vous pouvez placer les fichiers du lecteur multimédia et les fichiers multimédias dans le même compartiment. 6. Créez une distribution RTMP pour vos fichiers multimédias : API Version 2016-01-13 89 Amazon CloudFront Guide du développeur Création d'une distribution RTMP à l'aide de la console CloudFront • Pour plus d'informations sur la création d'une distribution web à l'aide de la console CloudFront, consultez Création d'une distribution RTMP à l'aide de la console CloudFront (p. 90). • Pour plus d'informations sur la création d'une distribution web avec l'API CloudFront, consultez POST Streaming Distribution dans le manuel Amazon CloudFront API Reference. 7. Configurez votre lecteur multimédia. Pour de plus amples informations, veuillez consulter Configuration du lecteur multimédia (p. 96). Si vous avez des difficultés à lire votre contenu, consultez Dépannage des distributions RTMP (p. 99). Création d'une distribution RTMP à l'aide de la console CloudFront La procédure suivante explique comment créer une distribution RTMP à l'aide de la console CloudFront. Pour créer une distribution RTMP à l'aide de l'API CloudFront, consultez POST Streaming Distribution dans le manuel Amazon CloudFront API Reference. Pour obtenir la limite actuelle du nombre de distributions RTMP que vous pouvez créer pour chaque compte AWS, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/ support/home#/case/create?issueType=service-limit-increase&limitType=service-code-cloudfrontdistributions. Pour créer une distribution RTMP à l'aide de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. 3. Cliquez sur Create Distribution. Sur la première page de l'Assistant Create Distribution Wizard, dans la section RTMP, choisissez Get Started. Spécifiez les paramètres de la distribution. Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution RTMP (p. 90). 4. 5. 6. Cliquez sur Create Distribution. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Si vous avez choisi d'activer la distribution, elle sera alors prête pour traiter les demandes. Cela devrait prendre moins de 15 minutes. Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. Le nom de domaine apparaît aussi sous l'onglet General d'une distribution sélectionnée. Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution RTMP Pour diffuser les fichiers multimédias avec CloudFront, vous créez une distribution RTMP et spécifiez les valeurs suivantes. Rubriques API Version 2016-01-13 90 Amazon CloudFront Guide du développeur Nom de domaine d'origine (compartiment Amazon S3) • Nom de domaine d'origine (compartiment Amazon S3) (p. 91) • Retreindre l'accès au compartiment (uniquement Amazon S3) (p. 92) • Identité d'accès à l'origine (Amazon S3 uniquement) (p. 92) • Commentaire relatif à la nouvelle identité (Amazon S3 uniquement) (p. 92) • Vos identités (Amazon S3 uniquement) (p. 92) • Accorder les autorisations de lecture sur le compartiment (Amazon S3 uniquement) (p. 92) • Catégorie de tarifs – (p. 93) • Noms de domaine alternatifs (CNAME) (p. 93) • Journalisation (p. 93) • Compartiment pour les journaux (p. 93) • Préfixe de journal (p. 94) • Commentaire (p. 94) • Etat de la distribution (p. 94) • Restreindre l'accès des visionneuses (utiliser les URL signées) (p. 94) • Utilisateurs de confiance (p. 94) • Numéros de comptes AWS (p. 95) Nom de domaine d'origine (compartiment Amazon S3) Nom de domaine DNS du compartiment Amazon S3 à partir duquel vous voulez que CloudFront obtienne les objets pour cette origine ; par exemple : myawsbucket.s3.amazonaws.com. Dans la console CloudFront, cliquez sur le champ Origin Domain Name et une liste affiche les compartiments Amazon S3 associés au compte AWS actuel. Pour utiliser un compartiment d'un autre compte AWS, tapez son nom de domaine en respectant le format suivant : bucket-name.s3.amazonaws.com Si votre compartiment se trouve dans la région USA Standard et que vous voulez que Amazon S3 achemine les demandes vers une installation située en Virginie du Nord, utilisez le format suivant : bucket-name.s3-external-1.amazonaws.com Si vous avez configuré Amazon S3 Transfer Acceleration pour votre compartiment, ne spécifiez pas le point de terminaison s3-accelerate pour Origin Domain Name. Les fichiers doivent être publiquement accessibles en lecture à moins que vous ne sécurisiez votre contenu dans Amazon S3 à l'aide d'une identité d'accès à l'origine CloudFront. Pour de plus amples informations, veuillez consulter Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). Important Le nom du compartiment doit être conforme aux exigences DNS de dénomination. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. Lorsque vous modifiez le compartiment à partir duquel CloudFront obtient les objets pour l'origine actuelle, CloudFront commence immédiatement à répliquer la modification sur les emplacements périphériques CloudFront. Tant que la configuration de la distribution n'est pas mise à jour dans un emplacement périphérique donné, CloudFront continue à acheminer les demandes vers le API Version 2016-01-13 91 Amazon CloudFront Guide du développeur Retreindre l'accès au compartiment (uniquement Amazon S3) compartiment Amazon S3 précédent. Dès que la configuration de la distribution est mise à jour dans cet emplacement périphérique, CloudFront commence à acheminer les demandes vers le nouveau compartiment Amazon S3. La modification du compartiment ne nécessite pas que CloudFront remplisse à nouveau les caches périphériques avec les objets de la nouvelle origine. Aussi longtemps que les demandes de la visionneuse de votre application n'ont pas changé, CloudFront continue à servir les objets qui sont déjà dans un cache périphérique tant que la durée de vie (TTL) de chaque objet n'a pas expiré ou que les objets rarement demandés n'ont pas été évincés. Pour de plus amples informations, veuillez consulter Utilisation d'un compartiment Amazon S3 comme origine d'une distribution RTMP (p. 97). Retreindre l'accès au compartiment (uniquement Amazon S3) Cliquez sur Yes pour obliger les utilisateurs finaux à accéder aux objets d'un compartiment Amazon S3 en n'utilisant que les URL CloudFront, et non les URL Amazon S3. Puis, spécifiez les valeurs applicables. Cliquez sur No si vous voulez que les utilisateurs finaux puissent accéder aux objets à l'aide des URL CloudFront, ou des URL Amazon S3. Pour de plus amples informations, veuillez consulter Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). Identité d'accès à l'origine (Amazon S3 uniquement) Si vous sélectionnez Yes pour Restrict Bucket Access, choisissez de créer une Origin Access Identity ou utilisez une identité existante associée à votre compte AWS. Si vous disposez déjà d'une Origin Access Identity, nous vous recommandons de la réutiliser pour simplifier la maintenance. Pour plus d'informations sur les identités d'accès à l'origine, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). Commentaire relatif à la nouvelle identité (Amazon S3 uniquement) Si vous avez choisi Create a New Identity pour Origin Access Identity, entrez un commentaire qui identifie la nouvelle identité d'accès à l'origine. CloudFront crée l'Origin Access Identity lorsque vous créez la distribution. Vos identités (Amazon S3 uniquement) Si vous avez choisi Use an Existing Identity pour Origin Access Identity, sélectionnez l'Origin Access Identity que vous voulez utiliser. Vous ne pouvez pas utiliser une Origin Access Identity associée à un autre compte AWS. Accorder les autorisations de lecture sur le compartiment (Amazon S3 uniquement) Si vous voulez que CloudFront attribue automatiquement à l'identité d'accès à l'origine l'autorisation de lire les objets de votre compartiment Amazon S3, cliquez sur Yes, Update Bucket Policy. API Version 2016-01-13 92 Amazon CloudFront Guide du développeur Catégorie de tarifs – Important Si vous cliquez sur Yes, Update Bucket Policy, CloudFront met à jour la stratégie du compartiment pour attribuer à l'identité d'accès à l'origine spécifiée l'autorisation de lire les objets de votre compartiment. Cependant, CloudFront ne supprime pas les autorisations existantes de la stratégie de compartiment ou les autorisations sur les objets individuels. Si les utilisateurs disposent actuellement de l'autorisation d'accéder aux objets de votre compartiment à l'aide des URL Amazon S3, ils continueront à l'avoir après que CloudFront a mis à jour votre stratégie de compartiment. Pour afficher ou modifier la stratégie de compartiment existante et les autorisations existantes sur les objets de votre compartiment, utilisez une méthode fournie par Amazon S3. Pour de plus amples informations, veuillez consulter Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 (p. 175). Si vous voulez mettre à jour les autorisations manuellement (par exemple, si vous voulez mettre à jour les listes ACL de vos objets au lieu de mettre à jour les autorisations de compartiment), cliquez sur No, I will Update Permissions. Catégorie de tarifs – La catégorie de tarifs associée au prix maximum que vous souhaitez payer pour un service CloudFront. Par défaut, CloudFront sert vos objets à partir des emplacements périphériques de toutes les régions CloudFront. Pour plus d'informations sur les catégories de tarifs et sur la façon dont votre choix de catégorie affecte les performances de CloudFront pour votre distribution, consultez Choix de la catégorie de tarifs pour une distribution CloudFront (p. 49). Pour plus d'informations sur la tarification CloudFront, y compris la façon dont les catégories de tarifs correspondent aux régions CloudFront, consultez Tarification de Amazon CloudFront. Noms de domaine alternatifs (CNAME) Facultatif. Vous pouvez associer un ou plusieurs alias CNAME à une distribution de telle sorte que vous puissiez utiliser votre nom de domaine (par exemple, example.com) dans les URL de vos objets au lieu d'utiliser le nom de domaine que CloudFront vous a attribué lorsque vous avez créé votre distribution. Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Journalisation Définit si vous voulez que CloudFront enregistre les informations relatives à chaque demande d'un objet et stocke les fichiers journaux dans un compartiment Amazon S3. Vous pouvez activer ou désactiver la journalisation à tout moment. L'activation de la journalisation ne fait l'objet d'aucuns frais supplémentaires, mais vous augmentez le coût habituel de Amazon S3 de stockage et d'accès aux fichiers dans un compartiment Amazon S3. Vous pouvez supprimer les fichiers journaux à tout moment. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Compartiment pour les journaux Si vous avez choisi On pour Logging, le compartiment Amazon S3 dans lequel CloudFront doit stocker les journaux d'accès, par exemple, myawslogbucket.s3.amazonaws.com. Si vous activez la journalisation, CloudFront enregistre les informations sur chaque demande par l'utilisateur d'un objet et stocke les fichiers dans le compartiment Amazon S3 spécifié. Vous pouvez activer ou désactiver la journalisation à tout moment. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). API Version 2016-01-13 93 Amazon CloudFront Guide du développeur Préfixe de journal Préfixe de journal Facultatif. Si vous avez choisi On pour Logging, spécifiez la chaîne, le cas échéant, que CloudFront doit utiliser comme préfixe des noms des fichiers journaux d'accès, par exemple, exampleprefix/. La barre oblique de fin (/) est facultative, mais recommandée pour simplifier la navigation dans vos fichiers-journaux. Pour plus d'informations sur les journaux d'accès CloudFront, consultez Journaux d'accès (p. 267). Commentaire Facultatif. Lorsque vous créez une distribution, vous pouvez inclure un commentaire de 128 caractères au plus. Vous pouvez mettre à jour le commentaire à tout moment. Etat de la distribution Lorsque vous créez une distribution, vous devez spécifier si vous voulez que la distribution soit activée ou désactivée après avoir été créée : • Enabled signifie que dès que la distribution est entièrement déployée, vous pouvez déployer les liens qui utilisent le nom de domaine de la distribution et que les utilisateurs finaux peuvent extraire le contenu. Chaque fois qu'une distribution est activée, CloudFront accepte et traite toutes les demandes de contenu de l'utilisateur final qui emploient le nom de domaine associé à cette distribution. Lorsque vous créez, modifiez ou supprimez une distribution CloudFront, la propagation des modifications sur la base de données CloudFront nécessite un certain temps. Une demande immédiate d'informations sur une distribution peut ne pas afficher la modification. La propagation s'effectue généralement en quelques minutes, mais une charge système ou une partition du réseau élevées peuvent augmenter cette durée. • Disabled signifie que même si la distribution peut être déployée et prête à être utilisée, les utilisateurs finaux ne peuvent pas l'utiliser. Quand une distribution est désactivée, CloudFront n'accepte pas les demandes de l'utilisateur final qui emploient le nom de domaine associé à cette distribution. Tant que vous n'avez pas basculé la distribution de « disabled » en « enabled » (en mettant à jour la configuration de la distribution), personne ne peut l'utiliser. Vous pouvez basculer une distribution de désactivée à activée (et inversement) aussi souvent que vous le voulez. Pour plus d'informations sur la mise à jour de la configuration d'une distribution, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). Restreindre l'accès des visionneuses (utiliser les URL signées) Si vous voulez que les demandes d'objets servies par cette distribution utilisent les URL publiques, cliquez sur No. Si vous voulez que les demandes utilisent des URL signées, cliquez sur Yes. Puis, spécifiez les comptes AWS que vous voulez utiliser pour créer des URL signées ; ces comptes sont connus comme utilisateurs de confiance. Pour plus d'informations sur les utilisateurs de confiance, consultez Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). Utilisateurs de confiance Choisissez les comptes AWS que vous voulez utiliser comme utilisateurs de confiance pour cette distribution : API Version 2016-01-13 94 Amazon CloudFront Guide du développeur Numéros de comptes AWS • Self : utilisez le compte avec lequel vous êtes connecté à AWS Management Console comme utilisateur de confiance. Si vous êtes actuellement connecté comme utilisateur IAM, le compte AWS associé est ajouté comme utilisateur de confiance. • Specify Accounts : entrez les numéros de compte des utilisateurs de confiance dans le champ AWS Account Numbers. Pour créer des URL signées, un compte AWS doit avoir au moins une paire de clés CloudFront active. Caution Si vous chargez une distribution que vous utilisez déjà pour distribuer le contenu, n'ajoutez des utilisateurs de confiance que lorsque vous êtes prêt à démarrer la génération d'URL signées pour vos objets. Après que vous avez ajouté les utilisateurs de confiance à une distribution, les utilisateurs doivent employer les URL signées pour accéder aux objets servis par cette distribution. Numéros de comptes AWS Si vous voulez créer des URL signées à l'aide de comptes AWS en plus du compte actuel (ou à sa place), entrez un numéro de compte AWS par ligne dans ce champ. Remarques : • Les comptes que vous spécifiez doivent avoir au moins une paire de clés CloudFront active. Pour plus d'informations, consultez Création de paires de clés CloudFront pour vos utilisateurs de confiance (p. 179). • Comme vous ne pouvez pas créer de paires de clés CloudFront pour les utilisateurs IAM, vous ne pouvez pas utiliser d'utilisateurs IAM comme utilisateurs de confiance. • Pour plus d'informations sur l'obtention du numéro de compte AWS d'un compte, consultez Comment puis-je obtenir les informations d'identification de sécurité ? dans le manuel Amazon Web Services General Reference. • Si vous entrez le numéro de compte du compte actif, CloudFront coche automatiquement la case Self et supprime le numéro de compte de la liste AWS Account Numbers. Valeurs que CloudFront affiche dans la console lors de la création ou de la mise à jour d'une distribution RTMP Lorsque vous créez ou mettez à jour une distribution RTMP, CloudFront affiche les informations suivantes dans la console CloudFront. Note Utilisateurs de confiance actifs, les comptes AWS ayant une paire de clés CloudFront key active et pouvant être utilisés pour créer des URL signées valides ne sont pas visibles actuellement dans la console CloudFront. ID de distribution Lorsque vous exécutez une action sur une distribution à l'aide de l'API CloudFront, vous utilisez l'ID de distribution pour spécifier la distribution sur laquelle vous voulez exécuter une action, par exemple, EDFDVBD6EXAMPLE. Vous ne pouvez pas modifier l'ID de distribution. API Version 2016-01-13 95 Amazon CloudFront Guide du développeur Etat Etat Les valeurs d'état possibles pour une distribution sont répertoriées dans le tableau suivant. Value Description InProgress La distribution est en cours de création ou de mise à jour. Deployed La distribution a été créée ou mise à jour, et les modifications ont été entièrement appliquées à l'ensemble du système CloudFront. En plus de garantir que l'état d'une distribution a la valeur Deployed, vous devez activer la distribution avant que les utilisateurs finaux ne puissent utiliser CloudFront pour accéder à votre contenu. Pour de plus amples informations, veuillez consulter Etat de la distribution (p. 94). Dernière modification Date et heure de dernière modification de la distribution, à l'aide du format ISO 8601 : par exemple, 2012-05-19T19:37:58Z. Pour plus d'informations, consultez http://www.w3.org/TR/NOTE-datetime. Nom de domaine Vous utilisez le nom de domaine de la distribution dans les liens vers vos objets, à moins que vous n'utilisiez des noms de domaine alternatifs (CNAME). Par exemple, si le nom de domaine de votre distribution est d111111abcdef8.cloudfront.net, le lien vers le fichier exemple /images/ image.jpg sera http://d111111abcdef8.cloudfront.net/images/image.jpg. Vous ne pouvez pas modifier le nom de domaine CloudFront de votre distribution. Pour plus d'informations sur les URL CloudFront, des liens vers vos objets, consultez Format des URL pour les objets CloudFront (p. 100). Si vous avez spécifié un ou plusieurs noms de domaine alternatifs (CNAME), vous pouvez utiliser vos propres noms de domaine pour les liens vers vos objets au lieu d'utiliser le nom de domaine CloudFront. Pour plus d'informations sur les CNAME, consultez Noms de domaine alternatifs (CNAME) (p. 74). Note Les noms de domaine CloudFront sont uniques. Le nom de domaine de votre distribution n'avait jamais été utilisé pour une distribution précédente et ne sera jamais réutilisé pour une autre distribution à l'avenir. Configuration du lecteur multimédia Pour lire un fichier multimédia, vous devez configurer le lecteur multimédia avec le chemin approprié du fichier. La configuration dépend du lecteur multimédia que vous utilisez et de la façon de l'utiliser. Lorsque vous configurez le lecteur multimédia, le chemin d'accès du fichier multimédia doit contenir les caractères cfx/st immédiatement après le nom de domaine, par exemple : rtmp://s5c39gqb8ow64r.cloudfront.net/cfx/st/mediafile.flv. Note CloudFront respecte les conventions de dénomination FMS d'Adobe. Les différents lecteurs ont leurs propres règles quant à la façon de spécifier les flux. L'exemple ci-dessus concerne API Version 2016-01-13 96 Amazon CloudFront Guide du développeur Fichiers MPEG JW Player. Consultez la documentation de votre lecteur. Par exemple, Flash Media Server (Adobe) n'autorise pas la présence de l'extension .flv sur le chemin d'accès. La plupart des lecteurssuppriment automatiquement l'extension .flv. Votre lecteur multimédia peut demander que le chemin soit distinct du nom de fichier. Par exemple, avec l'Assistant JW Player, vous spécifiez les variables streamer et file : • streamer : rtmp://s5c39gqb8ow64r.cloudfront.net/cfx/st (sans barre oblique de fin) • file— mediafile.flv Si vous avez stocké les fichiers multimédias dans un répertoire de votre compartiment (par exemple, videos/mediafile.flv), les variables pour JW Player seront : • streamer : rtmp://s5c39gqb8ow64r.cloudfront.net/cfx/st (sans barre oblique de fin) • file— videos/mediafile.flv Pour utiliser l'Assistant JW Player, consultez la page Setup Wizard du site web JW Player. Fichiers MPEG Pour proposer les fichiers audio MP3 ou les fichiers vidéo H.264/MPEG-4, il se peut que vous ayez besoin de préfixer le nom de fichier avec mp3: ou mp4:. Certains lecteurs multimédias peuvent être configurés pour ajouter le préfixe automatiquement. Le lecteur multimédia peut aussi requérir que vous spécifiiez le nom de fichier sans l'extension de fichier (par exemple, magicvideo au lieu de magicvideo.mp4). Utilisation d'un compartiment Amazon S3 comme origine d'une distribution RTMP Lorsque vous créez une distribution, vous spécifiez où CloudFront obtient les fichiers qu'il distribue aux emplacements périphériques. Pour une distribution RTMP, vous devez utiliser un compartiment Amazon S3 ; les origines personnalisées ne sont pas prises en charge. Pour accéder aux objets de votre compartiment, vous pouvez utiliser toute méthode prise en charge par Amazon S3 : par exemple, l'API ou la console Amazon S3, ou un outil tiers. Vous pouvez créer une hiérarchie dans votre compartiment, comme vous le feriez avec tout autre compartiment Amazon S3. Le stockage d'objets dans le compartiment est l'objet de frais Amazon S3 réguliers. Pour plus d'informations sur les frais d'utilisation de CloudFront, consultez Rapports CloudFront (p. 11). L'utilisation d'un compartiment Amazon S3 existant comme serveur d'origine CloudFront ne modifie pas le compartiment en quelque façon que ce soit ; vous pouvez continuer de l'utiliser comme vous le feriez normalement pour stocker les objets Amazon S3 et y accéder, et ce au prix Amazon S3 normal. Vous pouvez utiliser le même compartiment Amazon S3 pour les distributions RTMP et les distributions web. Note Après que vous avez créé une distribution RTMP, vous ne pouvez pas modifier son serveur d'origine. Si vous devez modifier le compartiment Amazon S3 d'une distribution RTMP, vous devez créer une distribution qui utilise le nouveau compartiment et mettre à jour vos liens ou vos enregistrements DNS pour qu'ils utilisent le nom de domaine pour la nouvelle distribution. Vous pouvez alors supprimer la distribution originale. Pour de plus amples informations, veuillez consulter Suppression d'une distribution (p. 44). API Version 2016-01-13 97 Amazon CloudFront Guide du développeur Création de plusieurs distributions RTMP pour un serveur d'origine Lorsque vous spécifiez le nom du compartiment Amazon S3 à partir duquel vous voulez que CloudFront obtienne les objets, vous utilisez généralement le format suivant : bucket-name.s3.amazonaws.com Si votre compartiment se trouve dans la région USA Standard et que vous voulez que Amazon S3 achemine les demandes vers une installation située en Virginie du Nord, utilisez le format suivant : bucket-name.s3-external-1.amazonaws.com Ne spécifiez pas le nom du compartiment à l'aide des valeurs suivantes : • Chemin d'accès Amazon S3, s3.amazonaws.com/bucket-name • CNAME Amazon S3, le cas échéant Important Pour que votre compartiment fonctionne avec CloudFront, le nom doit être conforme aux exigences DNS en la matière. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. Création de plusieurs distributions RTMP pour un serveur d'origine Vous créez généralement une distribution RTMP par compartiment Amazon S3, mais vous pouvez choisir de créer plusieurs distributions RTMP pour le même compartiment. Par exemple, si vous aviez deux distributions pour un compartiment Amazon S3, vous pourriez référencer un seul fichier multimédia à l'aide de l'une ou l'autre distribution. Dans ce cas, si vous aviez un fichier multimédia appelé media.flv sur votre serveur d'origine, CloudFront utiliserait chaque distribution comme s'il référençait un objet media.flv individuel : un media.flv accessible via une distribution et un autre media.flv accessible via l'autre distribution. Restriction des accès avec Crossdomain.xml Le fichier Adobe Flash Media Server crossdomain.xml spécifie les domaines qui peuvent accéder aux fichiers multimédias d'un domaine particulier. CloudFront fournit un fichier par défaut qui permet à tous les domaines d'accéder aux fichiers multimédias de votre distribution RTMP et vous ne pouvez pas modifier ce comportement. Si vous incluez un fichier crossdomain.xml plus restrictif dans votre compartiment Amazon S3, CloudFront l'ignore. Codes d'erreur pour les distributions RTMP Le tableau suivant répertorie les codes d'erreur que CloudFront peut envoyer à votre lecteur multimédia. Les erreurs font partie de la chaîne retournée avec Event.info.application.message ou Event.info.description. Erreur Description DistributionNotFound La distribution est introuvable. API Version 2016-01-13 98 Amazon CloudFront Guide du développeur Dépannage des distributions RTMP Erreur Description DistributionTypeMismatch La distribution n'est pas une distribution RTMP. InvalidInstance L'instance n'est pas valide. InvalidURI L'URI n'est pas valide. Dépannage des distributions RTMP Si vous avez des difficultés à lire les fichiers multimédias, vérifiez les points suivants. Elément à vérifier Description Distributions distinctes pour les fichiers du lecteur multimédia et les fichiers multimédias Le lecteur multimédia doit être servi par une distribution HTTP régulière (par exemple, domain name d111111abcdef8.cloudfront.net) et les fichiers multimédias par une distribution RTMP (par exemple, domain name s5c39gqb8ow64r.cloudfront.net). Vérifiez que vous n'utilisez pas la même distribution pour les deux. /cfx/st dans le chemin d'accès Confirmez que le chemin du fichier inclut /cfx/st. Vous n'avez pas à inclure /cfx/st dans le chemin d'accès à l'objet du compartiment Amazon S3. Pour de plus amples informations, veuillez consulter Configuration du lecteur multimédia (p. 96). Noms de fichier dans le Certains lecteurs multimédias requièrent que vous incluiez l'extension de chemin d'accès nom de fichier (par exemple, mp4:) avant le nom de fichier dans le chemin d'accès. Certains lecteurs multimédias requièrent aussi que vous excluiez l'extension de nom de fichier (par exemple, .mp4) du chemin d'accès. Pour de plus amples informations, veuillez consulter Fichiers MPEG (p. 97). Note Les noms des fichiers multimédias de votre compartiment Amazon S3 doivent toujours inclure l'extension de nom de fichier applicable. Port 1935 sur votre pare-feu Adobe Flash Media Server utilise le port 1935 pour RTMP. Assurez-vous que votre pare-feu a ce port ouvert. Dans le cas contraire, le message généralement retourné est « Unable to play video ». Vous pouvez aussi basculer de RTMPT vers le tunnel via HTTP à l'aide du port 80. Messages Adobe Flash Par défaut, le lecteur Adobe Flash Player n'affiche pas de message si le Player fichier vidéo qu'il essaie de lire est manquant. Il attend à la place que le fichier s'affiche. Il se peut que vous souhaitiez modifier ce comportement pour offrir à vos utilisateurs finaux une meilleure expérience. Pour que le lecteur envoie un message si la vidéo est absente, utilisez play("vid",0,-1) au lieu de play("vid"). API Version 2016-01-13 99 Amazon CloudFront Guide du développeur Format des URL pour les objets CloudFront Utilisation des objets Rubriques • Format des URL pour les objets CloudFront (p. 100) • Traitement des demandes par CloudFront dans les requêtes HTTP et HTTPS (p. 103) • Augmenter la proportion de demandes servies à partir des caches périphériques CloudFront (p. 103) • Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête (p. 106) • Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108) • Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110) • Transfert d'en-têtes personnalisés vers votre origine (distributions Web uniquement) (p. 114) • Ajouter, supprimer et remplacer des objets dans une distribution (p. 117) • Personnaliser des réponses d'erreur (p. 132) • Traitement par CloudFront des demandes partielles pour un objet (Range GET) (p. 136) • Spécifier un objet racine par défaut (distributions Web uniquement) (p. 137) • Service de fichiers compressés (p. 139) Cette section explique comment utiliser des objets dans CloudFront. Format des URL pour les objets CloudFront Rubriques • Format des URL publiques pour les objets dans Amazon S3 (p. 101) • Format des URL publiques pour les objets dans une origine personnalisée (p. 102) • Impact des URL publiques sur l'invalidation de répertoires (p. 102) API Version 2016-01-13 100 Amazon CloudFront Guide du développeur Format des URL publiques pour les objets dans Amazon S3 • Format des URL signées (p. 103) Lorsque vous créez une distribution, vous recevez le nom de domaine CloudFront associé à cette distribution. Vous utilisez ce nom de domaine lorsque vous créez les liens vers vos objets. Si vous préférez utiliser un autre nom de domaine (par exemple, www.example.com), vous pouvez ajouter un alias CNAME. Pour plus d'informations, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Lorsque vous créez des URL pour donner à des utilisateurs finaux accès à vos objets dans votre distribution CloudFront, les URL sont des URL publiques ou des URL signées : Les URL publiques permettent aux utilisateurs d'accéder aux objets suivants : • Les objets qui ne sont associés à aucune restriction. • Les objets figurant dans un compartiment Amazon S3 auquel les utilisateurs finaux doivent accéder via CloudFront mais qui n'ont pas besoin d'une URL signée. Ces objets ne sont pas accessibles à l'aide d'une URL Amazon S3. Des URL signées sont requises pour accéder aux objets qui sont spécifiés par un comportement de cache que vous avez configuré pour exiger des URL signées. Notez que si une demande pour un objet (par exemple, image.jpg) correspond aux modèles de chemin pour plusieurs comportements de cache, CloudFront traite la demande répertoriée en premier dans la distribution. Si le premier comportement de cache n'exige pas des URL signées contrairement au deuxième comportement de cache, les utilisateurs finaux pourront accéder à image.jpg sans URL signée. Pour plus d'informations sur les comportements de cache, notamment les modèles de chemin, consultez Paramètres de comportement du cache (p. 66). Pour en savoir plus sur les URL signées, consultez Service d'un contenu privé via CloudFront (p. 168). Format des URL publiques pour les objets dans Amazon S3 Une URL publique pour un objet dans un compartiment Amazon S3 utilise ce format : http://<CloudFront domain name>/<object name in Amazon S3 bucket> Important Si les serveurs de distribution servent des contenus en streaming, des caractères supplémentaires sont requis dans le chemin d'accès au fichier. Pour plus d'informations, consultez Configuration du lecteur multimédia (p. 96). A titre d'exemple, supposez que vous ayez un compartiment Amazon S3 nommé mybucket. Le compartiment contient un objet accessible en lecture au public nommé /images/image.jpg. Vous créez une distribution CloudFront et spécifiez mybucket.s3.amazonaws.com comme serveur d'origine pour cette distribution. CloudFront renvoie d111111abcdef8.cloudfront.net comme nom de domaine pour la distribution et EDFDVBD6EXAMPLE comme ID de distribution. L'URL que vous fournissez aux utilisateurs finaux pour accéder à l'objet dans cet exemple est la suivante : http://d111111abcdef8.cloudfront.net/images/image.jpg Pour les distributions Web, si vous stockez votre contenu dans plusieurs compartiments Amazon S3, le format des URL est le même ; les URL n'incluent aucune information sur vos compartiments Amazon API Version 2016-01-13 101 Amazon CloudFront Guide du développeur Format des URL publiques pour les objets dans une origine personnalisée S3. Pour acheminer des demandes vers le compartiment applicable, vous créez une origine pour chaque compartiment et un ou plusieurs comportements de cache qui acheminent les demandes vers chaque origine. Le modèle de chemin dans un comportement de cache spécifie les demandes qui sont acheminées vers l'origine (le compartiment Amazon S3) associée à ce comportement de cache. Pour plus d'informations sur les paramètres pour les origines et les comportements de cache dans une distribution CloudFront, consultez Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). Pour plus d'informations sur les noms et les chemins pour les compartiments Amazon S3, consultez Hébergement virtuel de compartiments dans le Amazon Simple Storage Service Manuel du développeur. Chaque fois qu'un utilisateur final accède à cet objet, CloudFront gère l'objet à partir de l'emplacement périphérique approprié. Si l'objet n'est pas dans cet emplacement périphérique, CloudFront accède au serveur d'origine associé à la distribution EDFDVBD6EXAMPLE (mybucket.s3.amazonaws.com) et obtient une copie pour l'emplacement périphérique à fournir à l'utilisateur final. Format des URL publiques pour les objets dans une origine personnalisée Le format des URL publiques pour les objets dans une origine personnalisée est très similaire à celui des URL publiques pour les objets dans Amazon S3 : http://<CloudFront domain name>/<object name in custom origin> Si votre objet est dans un dossier sur votre serveur d'origine, l'URL CloudFront doit inclure le nom du dossier. Par exemple, si image.jpg est situé dans le dossier images, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/images/image.jpg CloudFront extrait des objets du domaine que vous avez spécifié quand vous avez créé la distribution, à l'aide du chemin et du nom de l'objet dans l'URL publique. Par exemple, si le domaine pour votre origine personnalisée est example.com et que le chemin et le nom de l'objet sont /images/ image.jpg, CloudFront extrait l'objet de l'emplacement suivant : http://example.com/images/image.jpg Si vous stockez votre contenu sur plusieurs origines personnalisées, le format des URL est le même ; les URL n'incluent aucune information sur l'origine personnalisée. Pour acheminer des demandes vers l'origine personnalisée applicable, vous ajoutez une origine à votre distribution pour chaque origine personnalisée, et vous créez un ou plusieurs comportements de cache qui acheminent les demandes vers chaque origine. Le modèle de chemin dans un comportement de cache spécifie les demandes qui sont acheminées vers l'origine associée à ce comportement de cache. Pour plus d'informations sur les paramètres pour les origines et les comportements de cache dans une distribution CloudFront, consultez Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). Impact des URL publiques sur l'invalidation de répertoires Si vous utilisez des URL CloudFront qui donnent à des utilisateurs finaux accès à des répertoires, nous vous recommandons de toujours utiliser le même format d'URL, soit avec, soit sans barre oblique de fin (/), par exemple : http://d111111abcdef8.cloudfront.net/images/ API Version 2016-01-13 102 Amazon CloudFront Guide du développeur Format des URL signées http://d111111abcdef8.cloudfront.net/images Les navigateurs et les autres applications web résolvent les deux formats en le même répertoire. Par contre, CloudFront stocke les URL publiques exactement comme elles apparaissent dans la demande. Si vous souhaitez invalider un répertoire, vous devez spécifier exactement le même répertoire, en incluant ou en excluant la barre oblique. Si vous ne disposez pas d'une norme sur la façon de spécifier des répertoires, vous devez invalider le répertoire avec et sans la barre oblique pour vous assurer que CloudFront retire le répertoire de l'emplacement périphérique. Si vous avez atteint la limite d'invalidations gratuites pour le mois, vous paierez pour les deux invalidations même si un seul des répertoires existe. Format des URL signées Les URL signées permettent aux utilisateurs finaux d'accéder à une distribution configurée pour traiter les contenus privés. Les URL incluent des informations supplémentaires qui restreignent l'accès aux objets mis en cache. Pour en savoir plus sur le format des URL signées, consultez Service d'un contenu privé via CloudFront (p. 168). Traitement des demandes par CloudFront dans les requêtes HTTP et HTTPS Pour les origines Amazon S3, CloudFront accepte les demandes dans les protocoles HTTP et HTTPS pour les objets dans une distribution CloudFront par défaut. CloudFront transmet ensuite les demandes vers votre compartiment Amazon S3 à l'aide du même protocole que celui avec lequel les demandes ont été faites. Pour les origines personnalisées, lorsque vous créez une distribution, vous pouvez spécifier la manière dont CloudFront accède à votre origine : HTTP uniquement ou en adoptant le protocole utilisé par la visionneuse. Pour plus d'informations sur la façon dont CloudFront traite les requêtes HTTP et HTTPS pour les origines personnalisées, consultez Protocoles (p. 159). Pour plus d'informations sur la façon de restreindre votre distribution Web pour que les utilisateurs finaux puissent uniquement accéder aux objets à l'aide de HTTPS, consultez Utilisation d'une connexion HTTPS pour accéder à vos objets (p. 237). (Cette option ne s'applique pas aux distributions RTMP qui utilisent le protocole RTMP.) Note Les frais pour les requêtes HTTPS sont plus élevés que ceux pour les requêtes HTTP. Pour plus d'informations sur la facturation, accédez à la page Web concernant le plan de tarification CloudFront. Augmenter la proportion de demandes servies à partir des caches périphériques CloudFront L'un des objectifs de l'utilisation de CloudFront consiste à réduire le nombre de demandes auxquelles votre serveur d'origine répond. Ceci réduit la charge de votre serveur d'origine, ainsi que la latence car plus d'objets sont servis à partir des emplacements périphériques CloudFront qui sont plus proches de vos utilisateurs. Plus la proportion de demandes que CloudFront est en mesure de servir à partir des caches périphériques est élevée par rapport à toutes les demandes (plus le taux d'accès au cache est API Version 2016-01-13 103 Amazon CloudFront Guide du développeur Spécifier pendant combien de temps CloudFront garde vos objets en cache important), plus le nombre de demande que CloudFront a besoin de transmettre à votre origine pour obtenir la dernière version ou la version unique d'un objet est faible. Vous pouvez consulter le pourcentage de demandes de visionneuses correspondant à des accès (hit), des échecs (miss) et des erreurs sur la console CloudFront. Pour plus d'informations, consultez Rapports CloudFront Cache Statistics (p. 12) dans le manuel Amazon CloudFront Manuel du développeur. Les sections suivantes expliquent comment améliorer votre taux d'accès au cache. Rubriques • Spécifier pendant combien de temps CloudFront garde vos objets en cache (p. 104) • Mise en cache basée sur les paramètres de chaîne de requête (p. 104) • Mise en cache basée sur des valeurs de cookie (p. 105) • Mise en cache basée sur des valeurs d'en-tête (p. 105) • Servir un contenu multimédia à l'aide de HTTP (p. 106) Spécifier pendant combien de temps CloudFront garde vos objets en cache Pour augmenter votre taux d'accès au cache, vous pouvez configurer votre origine pour ajouter une directive Cache-Control max-age à vos objets et spécifier la plus longue valeur réaliste pour maxage. Plus la durée de conservation en cache est courte, plus la fréquence à laquelle CloudFront transmet une autre demande pour déterminer si l'objet a changé et obtenir la dernière version si tel est le cas est élevée. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Mise en cache basée sur les paramètres de chaîne de requête Si vous configurez CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête, vous pouvez améliorer la mise en cache si vous procédez comme suit : • Configurez CloudFront pour acheminer uniquement les chaînes de requête pour lesquelles votre origine renverra des objets uniques. • Utilisez la même casse (majuscules ou minuscules) pour toutes les instances du même paramètre. Par exemple, si une demande contient parameter1=A et une autre demande contient parameter1=a, CloudFront transmet des demandes distinctes à votre origine lorsqu'une demande contient parameter1=A et l'autre, parameter1=a. CloudFront met alors en cache séparément les objets correspondants renvoyés par votre origine même si les objets sont identiques. Si vous utilisez uniquement A ou a, CloudFront transmet moins de demandes à votre origine. • Listez les paramètres dans le même ordre. Comme avec les différences de casse, si une demande pour un objet contient la chaîne de requête parameter1=a¶meter2=b et une autre demande contient parameter2=b¶meter1=a, CloudFront transmet les deux demandes à votre origine et met en cache les objets correspondants séparément même s'ils sont identiques. Si vous utilisez uniquement toujours le même ordre pour les paramètres, CloudFront transmet moins de demandes à votre origine. Pour plus d'informations, consultez Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête (p. 106). Si vous souhaitez vérifier les chaînes de requête que CloudFront transmet à votre origine, activez les journaux d'accès CloudFront et consultez les valeurs API Version 2016-01-13 104 Amazon CloudFront Guide du développeur Mise en cache basée sur des valeurs de cookie de la colonne cs-uri-query de vos fichiers journaux. Pour plus d'informations, consultez Journaux d'accès (p. 267). Mise en cache basée sur des valeurs de cookie Si vous configurez CloudFront pour effectuer la mise en cache en fonction de valeurs de cookie, vous pouvez améliorer la mise en cache si vous procédez comme suit : • Configurez CloudFront pour transmettre uniquement les cookies spécifiés et non tous les cookies. Pour les cookies pour lesquels vous configurez CloudFront pour les transmettre à votre origine, CloudFront transmet chaque combinaison de nom et de valeur de cookie, et met en cache séparément les objets renvoyés par votre origine même s'ils sont identiques. Par exemple, supposons que les visionneuses incluent deux cookies dans chaque demande, que chaque cookie dispose de trois valeurs possibles et que toutes les combinaisons de valeurs de cookie sont possibles. CloudFront transmet jusqu'à six demandes différentes à votre origine pour chaque objet. Si votre origine renvoie des versions différentes d'un objet en fonction d'un seul des cookies, CloudFront transmet plus de demandes à votre origine que nécessaire et met en cache inutilement plusieurs versions identiques de l'objet. • Créez des comportements de cache distincts pour les contenus statiques et dynamiques, et configurez CloudFront pour transmettre les cookies à votre origine uniquement pour les contenus dynamiques. Par exemple, supposons que vous disposiez d'un seul comportement de cache pour votre distribution pour les contenus dynamiques, tels que les fichiers .php, et les fichiers .css qui changent rarement. CloudFront met en cache des versions distinctes de vos fichiers .css en fonction des valeurs de cookie. Par conséquent, chaque emplacement périphérique CloudFront transmet une demande à votre origine pour chaque nouvelle combinaison de nom et de valeur de cookie. Si vous créez un comportement de cache pour lequel le modèle de chemin est *.css et pour lequel CloudFront n'effectue pas la mise en cache selon les valeurs de cookie, CloudFront transmet les demandes pour des fichiers .css à votre origine uniquement pour la première demande reçue par un emplacement périphérique pour un fichier .css donné et pour la première demande après qu'un fichier .css expire. • Si possible, créez des comportements de cache distincts pour les contenus dynamiques pour lesquels les valeurs de cookie sont uniques pour chaque utilisateur (comme un ID utilisateur) et les contenus dynamiques qui varient selon un plus petit nombre de valeurs uniques. Pour plus d'informations, consultez Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Si vous souhaitez vérifier les cookies que CloudFront transmet à votre origine, activez les journaux d'accès CloudFront et consultez les valeurs de la colonne cs(Cookie) de vos fichiers journaux. Pour plus d'informations, consultez Journaux d'accès (p. 267). Mise en cache basée sur des valeurs d'en-tête Si vous configurez CloudFront pour effectuer la mise en cache en fonction de valeurs d'en-tête, vous pouvez améliorer la mise en cache si vous procédez comme suit : • Configurez CloudFront pour transmettre et mettre en cache uniquement en fonction d'en-têtes spécifiés et non de tous les en-têtes. Pour les en-têtes que vous spécifiez, CloudFront transmet chaque combinaison de nom et de valeur d'en-tête, et met en cache séparément les objets renvoyés par votre origine même s'ils sont identiques. Note CloudFront transmet toujours à votre origine les en-têtes spécifiés dans rubriques suivantes : API Version 2016-01-13 105 Amazon CloudFront Guide du développeur Servir un contenu multimédia à l'aide de HTTP • Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront > En-têtes de requête HTTP que CloudFront supprime ou met à jour (p. 147) • Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront > En-têtes de requête HTTP et comportement de CloudFront (p. 155) Lorsque vous configurez CloudFront pour effectuer la mise en cache en fonction d'en-têtes de demande, vous ne changez pas les en-têtes que CloudFront transmet, vous changez uniquement le fait que CloudFront mette en cache des objets selon leurs valeurs d'en-tête ou non. • Essayez d'éviter d'effectuer la mise en cache en fonction d'en-têtes de demande qui ont des nombres importants de valeurs uniques. Par exemple, si vous souhaitez servir différentes tailles d'une image en fonction de l'appareil de l'utilisateur, ne configurez pas CloudFront pour effectuer la mise en cache en fonction de l'entête User-Agent qui comporte un nombre considérable de valeurs possibles. Configurez plutôt CloudFront pour exécuter la mise en cache en fonction des en-têtes de type d'appareil CloudFront CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer, CloudFront-IsSmartTV-Viewer et CloudFront-Is-Tablet-Viewer. De plus, si vous renvoyez la même version de l'image pour des tablettes et des ordinateurs de bureau, transmettez uniquement l'en-tête CloudFront-Is-Tablet-Viewer, pas l'en-tête CloudFront-Is-Desktop-Viewer. Pour plus d'informations, consultez Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Servir un contenu multimédia à l'aide de HTTP Lorsque vous utilisez HTTP pour servir un contenu multimédia, nous vous recommandons d'utiliser un protocole de streaming dynamique basé sur HTTP comme Apple HTTP Dynamic Streaming (Apple HDS), Apple HTTP Live Streaming (Apple HLS), Microsoft Smooth Streaming ou MPEG-DASH. Pour les protocoles de streaming dynamique, une vidéo est divisée en de nombreux petits segments qui durent généralement quelques secondes chacun. Si vos utilisateurs arrêtent souvent de regarder une vidéo avant sa fin (par exemple, parce qu'ils ferment leur visionneuse pendant le générique), CloudFront a encore en cache tous les petits segments jusqu'à ce point dans la vidéo. Si vous utilisez un protocole pour lequel une vidéo est servie sous la forme d'un seul grand fichier et qu'un utilisateur arrête de la regarder avant sa fin, CloudFront risque de ne pas mettre en cache la totalité de la vidéo, et pourrait avoir besoin de demander à nouveau la vidéo à votre origine la prochaine fois que CloudFront reçoit une demande pour cette vidéo. Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête Pour les distributions Web, vous pouvez choisir si vous souhaitez que CloudFront transmette les paramètres de chaîne de requête à votre origine. Pour les distributions RTMP, vous ne pouvez pas configurer CloudFront pour transmettre les paramètres de chaîne de requête à votre origine. Pour les deux types de distributions, si vous activez la journalisation, CloudFront journalise l'URL complète, y compris les paramètres de chaîne de requête. Pour les distributions Web, c'est le cas que vous ayez configuré ou non CloudFront pour transmettre les paramètres de chaîne requête. Pour plus d'informations sur la journalisation CloudFront, consultez Journaux d'accès (p. 267). Pour plus d'informations, consultez la rubrique applicable : API Version 2016-01-13 106 Amazon CloudFront Guide du développeur Paramètres de chaîne de requête et distributions Web • Paramètres de chaîne de requête et distributions Web (p. 107) • Paramètres de chaîne de requête et distributions RTMP (p. 108) Paramètres de chaîne de requête et distributions Web Pour les distributions Web, vous pouvez indiquer si vous souhaitez que CloudFront inclue les chaînes de requête quand les demandes sont transmises à votre origine. Par exemple, vous pouvez spécifier si vous souhaitez que CloudFront transmette la partie ?parameter1=a de l'URL suivante : http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=a Si vous configurez CloudFront pour transmettre les chaînes de requête à votre origine, CloudFront inclura la portion de chaîne de requête de l'URL lors de la mise en cache de l'objet. Par exemple, les chaînes de requête suivantes entraînent la mise en cache de trois objets par CloudFront. Ceci est le cas même si votre origine toujours renvoie le même image.jpg quelle que soit la chaîne de requête : • http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=a • http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=b • http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=c Si votre origine renvoie différentes versions d'un objet (par exemple, /images/image.jpg) en fonction de la chaîne de requête, sélectionnez Oui pour Réacheminer les chaînes de requête sur la console CloudFront ou spécifiez true pour la valeur de l'élément QueryString du type complexe DistributionConfig lorsque vous utilisez l'API CloudFront. Si votre origine renvoie la même version d'un objet quelle que soit la chaîne de requête, sélectionnez Non ou false. Ceci augmente la probabilité que CloudFront puisse servir une demande à partir du cache, ce qui améliore les performances et diminue la charge sur votre origine. L'ordre des paramètres a de l'importance dans les chaînes de requête. Si vous configurez CloudFront pour transmettre les chaînes de requête à votre origine, les chaînes de requête suivantes entraînent la mise en cache de deux objets par CloudFront. • http://d111111abcdef8.cloudfront.net/images/image.jpg? parameter1=a¶meter2=b • http://d111111abcdef8.cloudfront.net/images/image.jpg? parameter2=b¶meter1=a La casse a également de l'importance dans les chaînes de requête. Si vous configurez CloudFront pour transmettre les chaînes de requête à votre origine, les chaînes de requête suivantes entraînent la mise en cache de deux objets par CloudFront. • http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=a • http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=A Si vous utilisez des URL signées pour restreindre l'accès à votre contenu (si vous avez ajouté des utilisateurs de confiance à votre distribution), CloudFront enlève les paramètres de chaîne de requête suivants avant de transmettre le reste de l'URL à votre origine : • Expires • Key-Pair-Id • Policy API Version 2016-01-13 107 Amazon CloudFront Guide du développeur Paramètres de chaîne de requête et distributions RTMP • Signature Cela signifie que si vous utilisez des URL signées et que vous configurez CloudFront pour transmettre les paramètres de chaîne de requête à votre origine, vos propres paramètres de chaîne de requête ne peuvent pas être nommés Expires, Key-Pair-Id, Policy ou Signature. Paramètres de chaîne de requête et distributions RTMP Pour les distributions RTMP, lorsque CloudFront demande un objet au serveur d'origine, il enlève les paramètres de chaîne de requête. Par exemple, si CloudFront reçoit la demande suivante et que media.flv n'est pas déjà dans le cache CloudFront : http://d111111abcdef8.cloudfront.net/media/media.flv?parameter1=a il envoie l'URL suivante à votre serveur d'origine : http://d111111abcdef8.cloudfront.net/media/media.flv Configurer CloudFront pour mettre en cache des objets en fonction de cookies Pour les distributions Web, vous pouvez choisir si vous souhaitez que CloudFront transmette les cookies à votre origine et mette en cache des versions distinctes de vos objets en fonction de valeurs de cookies dans des demandes de visionneuses. Pour les distributions RTMP (Real Time Messaging Protocol), vous ne pouvez pas configurer CloudFront pour traiter des cookies. Lorsque CloudFront demande un objet au serveur d'origine, il enlève les cookies avant de transmette la demande à votre origine. Si votre origine renvoie des cookies avec l'objet, CloudFront les enlève avant de renvoyer l'objet à la visionneuse. Pour les distributions RTMP, CloudFront ne met pas en cache les cookies dans les caches périphériques. Important Amazon S3 et certains serveurs HTTP ne gèrent pas les cookies. Ne configurez pas des comportements de cache CloudFront pour transmettre des cookies à une origine qui ne traite pas les cookies ; vous affecteriez la capacité de mise en cache et donc les performances. Pour plus d'informations sur les comportements de cache, consultez Paramètres de comportement du cache (p. 66). Pour les distributions Web HTTP et HTTPS, vous pouvez choisir si vous souhaitez que CloudFront transmette les cookies à votre origine. Pour les distributions RTMP, vous ne pouvez pas configurer CloudFront pour traiter des cookies. Pour les distributions Web, par défaut, CloudFront ne prend pas en compte les cookies lors de la mise en cache de vos objets dans des emplacements périphériques. Si votre origine renvoie deux objets et que ceux-ci diffèrent uniquement par les valeurs de l'en-tête Set-Cookie, CloudFront met en cache une seule version de l'objet. Vous pouvez configurer CloudFront afin de transmettre à votre origine tout ou partie des cookies de demandes de visionneuses. CloudFront utilise les cookies dans les demandes de visionneuses pour identifier de manière unique un objet dans le cache. Par exemple, supposons que des demandes pour locations.html contiennent un cookie country ayant la valeur uk ou fr. Lorsque vous configurez CloudFront pour mettre en cache vos objets en fonction de la valeur du cookie country, CloudFront API Version 2016-01-13 108 Amazon CloudFront Guide du développeur Configurer CloudFront pour mettre en cache des objets en fonction de cookies transmet les demandes pour locations.html à l'origine et inclut le cookie country et les valeurs du cookie. Votre origine renvoie locations.html, et CloudFront met l'objet en cache une fois pour les demandes dans lesquelles la valeur du cookie country est uk et une fois pour les demandes dans lesquelles la valeur est fr. Note Si vous configurez CloudFront pour transmettre des cookies à votre origine, CloudFront effectue la mise en cache en fonction des valeurs de cookie. Tel est le cas même si votre origine ignore les valeurs de cookies dans la demande et, dans l'exemple précédent, renvoie toujours la même version de locations.html à CloudFront. De ce fait, CloudFront transmet plus de demandes à votre serveur d'origine pour le même objet, ce qui ralentit les performances et augmente la charge sur votre serveur d'origine. Si la réponse de votre serveur d'origine ne varie pas selon la valeur d'un cookie donné, nous vous recommandons de ne pas configurer CloudFront pour transmettre ce cookie à votre origine. Vous pouvez configurer chaque comportement de cache d'une distribution Web pour exécuter l'une des opérations suivantes : • Transmettre tous les cookies à votre origine – CloudFront transmet les demandes de visionneuses à votre origine, en incluant tous les cookies. Lorsque votre origine renvoie une réponse, CloudFront la met en cache, ainsi que les cookies et les valeurs de cookie de la demande de la visionneuse. (Si votre origine renvoie des cookies qui ne figuraient pas dans la demande de la visionneuse, CloudFront ne les met pas en cache.) CloudFront renvoie à la visionneuse l'objet demandé, ainsi que tous les cookies et les valeurs de cookie, y compris les cookies qui ne figuraient pas dans la demande de la visionneuse. • Transmettre une liste blanche de cookies que vous spécifiez – CloudFront enlève les cookies qui ne faisaient pas partie de la liste blanche avant de transmettre les demandes à votre origine. CloudFront met en cache la réponse de votre origine, ainsi que les cookies spécifiés et leurs valeurs. (Si votre origine renvoie des cookies sur liste blanche et les cookies ne figurant pas sur votre liste blanche, CloudFront met en cache uniquement les cookies sur liste blanche.) CloudFront renvoie également l'objet à la visionneuse, y compris les cookies et valeurs de cookie spécifiés. Si la réponse de votre origine inclut des cookies qui ne figurent pas sur la liste blanche, CloudFront renvoie également ces cookies à la visionneuse. Pour plus d'informations sur la spécification de caractères génériques dans des noms des cookies, consultez Cookies sur liste blanche (Amazon EC2 et autres origines personnalisées uniquement) (p. 71). Pour la limite actuelle sur le nombre de noms des cookies que vous pouvez mettre en liste blanche pour chaque comportement de cache, consultez Limites Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/create?issueType=service-limitincrease&limitType=service-code-cloudfront-distributions. • Ne pas transmettre de cookies à votre origine – CloudFront ne met pas en cache vos objets en fonction des valeurs de cookie. De plus, CloudFront enlève l'en-tête Cookie des demandes qu'il transmet à votre origine, ainsi que l'en-tête Set-Cookie des réponses qu'il renvoie à vos visionneuses. Remarque à propos de la spécification des cookies que vous ne souhaitez pas transmettre : Journaux d'accès Si vous configurez CloudFront pour journaliser les demandes et les cookies, CloudFront journalise tous les cookies et tous les attributs de cookie, même si vous configurez CloudFront pour ne pas transmettre les cookies à votre origine ou si vous configurez CloudFront pour transmettre uniquement une liste spécifiée de cookies. Pour plus d'informations sur la journalisation CloudFront, consultez Journaux d'accès (p. 267). API Version 2016-01-13 109 Amazon CloudFront Guide du développeur Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande Sensibilité à la casse Les noms et valeurs de cookie sont sensibles à la casse. Par exemple, si deux cookies pour le même objet sont identiques à l'exception de la casse, CloudFront met deux fois l'objet en cache. CloudFront trie les cookies CloudFront trie les cookies en ordre naturel par nom de cookie avant de transmette la demande à votre origine. If-Modified-Since et If-None-Match Les demandes conditionnelles If-Modified-Since et If-None-Match ne sont pas prises en charge. Suspendre la mise en cache basée sur les cookies Si vous souhaitez que CloudFront arrête temporairement de mettre en cache les cookies et attributs de cookie, configurez votre serveur d'origine pour ajouter l'en-tête suivant dans les réponses à CloudFront : no-cache="Set-Cookie" Longueur totale des noms de cookie Le nombre total d'octets dans tous les noms de cookie pour lesquels vous configurez CloudFront afin de les transmettre à votre origine ne peut pas dépasser : 512 – (the number of cookies that you're forwarding) Par exemple, si vous configurez CloudFront pour transmettre 10 cookies à votre origine, la longueur combinée des noms des 10 cookies ne peut pas dépasser 502 octets (512 – 10). Si vous configurez CloudFront afin de transmettre tous les cookies à votre origine, la longueur des noms de cookie n'a pas d'importance. Pour plus d'informations sur l'utilisation de la console CloudFront pour mettre à jour une distribution afin que CloudFront transmette les cookies à l'origine, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). Pour plus d'informations sur l'utilisation de l'API CloudFront pour mettre à jour une distribution, consultez PUT Distribution Config dans le manuel Amazon CloudFront API Reference. Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande Pour les distributions Web, CloudFront vous permet de choisir si vous souhaitez que CloudFront transmette les en-têtes à votre origine et mette en cache des versions distinctes d'un objet spécifié en fonction des valeurs d'en-tête dans des demandes de visionneuse. Cela vous permet de servir des versions différentes de votre contenu selon l'appareil employé par l'utilisateur, l'emplacement de la visionneuse, la langue utilisée par la visionneuse et différents autres critères. Pour les distributions RTMP, vous ne pouvez pas configurer CloudFront pour effectuer la mise en cache en fonction de valeurs d'en-tête. Rubriques • En-têtes et distributions Web (p. 110) • En-têtes et distributions RTMP (p. 114) En-têtes et distributions Web Par défaut, CloudFront ne prend pas en compte les en-têtes lors de la mise en cache de vos objets dans des emplacements périphériques. Si votre origine renvoie deux objets et que ceux-ci diffèrent API Version 2016-01-13 110 Amazon CloudFront Guide du développeur En-têtes et distributions Web uniquement par les valeurs des en-têtes de la demande, CloudFront met en cache une seule version de l'objet. Vous pouvez configurer CloudFront pour transmettre des en-têtes à l'origine, ce qui entraîne la mise en cache par CloudFront de plusieurs versions d'un objet selon les valeurs d'un ou plusieurs en-têtes de demande. Par exemple, supposons que des demandes de visionneuse pour logo.jpg contiennent un en-tête Product personnalisé ayant la valeur Acme ou Apex. Lorsque vous configurez CloudFront pour mettre en cache vos objets en fonction de la valeur de l'en-tête Product, CloudFront transmet les demandes pour logo.jpg à l'origine et inclut l'en-tête Product et les valeurs de l'en-tête. CloudFront met en cache logo.jpg une fois pour les demandes dans lesquelles la valeur de l'en-tête Product est Acme et une fois pour les demandes dans lesquelles la valeur est Apex. Vous pouvez configurer chaque comportement de cache d'une distribution Web pour exécuter l'une des opérations suivantes : • Transmettre tous les en-têtes à votre origine Important Si vous configurez CloudFront pour transmettre tous les en-têtes à votre origine, CloudFront ne met pas en cache les objets associés à ce comportement de cache. Par contre, il envoie chaque demande à l'origine. • Transmettre une liste blanche d'en-têtes que vous spécifiez. CloudFront met en cache vos objets selon les valeurs de tous les en-têtes spécifiés. CloudFront transmet également les en-têtes transmis par défaut, mais il met en cache vos objets uniquement en fonction des en-têtes que vous spécifiez. • Transmettre uniquement les en-têtes par défaut. Dans cette configuration, CloudFront ne met pas en cache vos objets selon les valeurs des en-têtes de demande. Pour obtenir la limite actuelle du nombre d'en-têtes que vous pouvez mettre en liste blanche pour chaque comportement de cache, consultez Limites de Amazon CloudFront dans le manuel Amazon Web Services General Reference. Pour demander une limite plus élevée, consultez https://console.aws.amazon.com/support/home#/case/create?issueType=service-limitincrease&limitType=service-code-cloudfront-distributions. Pour des informations sur l'utilisation de la console CloudFront pour mettre à jour une distribution afin que CloudFront transmette des en-têtes à l'origine, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). Pour des informations sur l'utilisation de l'API CloudFront pour mettre à jour une distribution Web existante, consultez PUT Distribution Config dans la manuel Amazon CloudFront API Reference. Rubriques • Sélectionner les en-têtes sur lesquels vous voulez que CloudFront base la mise en cache (p. 112) • Configurer CloudFront pour respecter les paramètres de partage des ressources cross-origin (CORS) (p. 112) • Configurer CloudFront pour mettre en cache des objets en fonction du type d'appareil (p. 113) • Configurer CloudFront pour mettre en cache des objets en fonction de la langue de la visionneuse (p. 113) • Configurer CloudFront pour mettre en cache des objets en fonction de l'emplacement de la visionneuse (p. 113) • Configurer CloudFront pour mettre en cache des objets en fonction du protocole de la demande (p. 113) • Incidence de la mise en cache basée sur les en-têtes sur les performances (p. 113) • Impact de la casse des en-têtes et des valeurs d'en-tête sur la mise en cache (p. 114) • En-têtes renvoyés par CloudFront à la visionneuse (p. 114) API Version 2016-01-13 111 Amazon CloudFront Guide du développeur En-têtes et distributions Web Sélectionner les en-têtes sur lesquels vous voulez que CloudFront base la mise en cache Les en-têtes que vous pouvez transmettre à l'origine et sur lesquels CloudFront base la mise en cache dépendent, selon que vous utilisez un compartiment Amazon S3 ou une origine personnalisée. • Amazon S3 – Vous pouvez configurer CloudFront pour transmettre et mettre en cache vos objets uniquement en fonction de trois en-têtes : Access-Control-Request-Headers, AccessControl-Request-Method et Origin. Transmettre ces en-têtes permet à CloudFront de distribuer des contenus pour des sites Web qui sont activés pour le partage des ressources cross-origin (CORS). Vous ne pouvez pas configurer CloudFront pour transmettre des en-têtes personnalisés à Amazon S3. Pour plus d'informations, consultez Configurer CloudFront pour respecter les paramètres de partage des ressources cross-origin (CORS) (p. 112). • Origine personnalisée – Vous pouvez configurer CloudFront pour effectuer la mise en cache en fonction de la valeur de tout en-tête de demande, à l'exception des en-têtes suivants : • Accept-Encoding • Connection • Cookie – Si vous souhaitez effectuer la transmission et la mise en cache en fonction de cookies, vous utilisez un paramètre distinct dans votre distribution. Pour plus d'informations, consultez Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). • Proxy-Authorization • TE • Upgrade Vous pouvez configurer CloudFront pour mettre en cache des objets selon les valeurs des en-têtes Date et User-Agent, mais ceci n'est pas recommandé. Ces en-têtes possèdent de nombreuses valeurs possibles, et la mise en cache selon leurs valeurs entraînerait la transmission par CloudFront de beaucoup plus de demandes à votre origine. Pour obtenir une liste complète des en-têtes de requête HTTP et savoir comment CloudFront les traite, consultez la rubrique applicable : • Origine Amazon S3 – En-têtes de requête HTTP que CloudFront supprime ou met à jour (p. 147) • Origine personnalisée – En-têtes de requête HTTP et comportement de CloudFront (p. 155) Configurer CloudFront pour respecter les paramètres de partage des ressources cross-origin (CORS) Si vous avez activé le partage des ressources cross-origine (CORS) sur un compartiment Amazon S3 ou une origine personnalisée, vous pouvez configurer CloudFront pour respecter les paramètres CORS. Configurez CloudFront pour transmettre une liste blanche d'en-têtes et inclure les en-têtes applicables dans la liste d'en-têtes à transmettre, selon que vous utilisez Amazon S3 ou une origine personnalisée : Amazon S3 • Quand vous souhaitez que les réponses OPTIONS soient mises en cache, configurez CloudFront pour transmettre les en-têtes suivants : Origin, Access-Control-Request-Headers et Access-Control-Request-Method. • Quand vous ne souhaitez pas que les réponses OPTIONS soient mises en cache, configurez CloudFront pour transmettre l'en-tête Origin. Vous pouvez également configurer CloudFront pour transmettre les en-têtes Access-Control-Request-Headers et Access-Control-RequestMethod, mais ce n'est pas nécessaire. API Version 2016-01-13 112 Amazon CloudFront Guide du développeur En-têtes et distributions Web Origines personnalisées – Transmettez l'en-tête Origin en même temps que tous les autres en-têtes requis par votre origine. Pour plus d'informations sur CORS et Amazon S3, consultez Activation du partage des ressources cross-origin dans le manuel Amazon Simple Storage Service Manuel du développeur. Configurer CloudFront pour mettre en cache des objets en fonction du type d'appareil Si vous souhaitez que CloudFront mette en cache différentes versions de vos objets en fonction de l'appareil avec lequel l'utilisateur visualise votre contenu, configurez CloudFront pour transmettre les en-têtes applicables à votre origine personnalisée : • CloudFront-Is-Desktop-Viewer • CloudFront-Is-Mobile-Viewer • CloudFront-Is-SmartTV-Viewer • CloudFront-Is-Tablet-Viewer 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 avant de transmettre la demande à votre origine. Si un appareil entre dans plusieurs catégories, plusieurs valeurs peuvent être true. Par exemple, pour certaines tablettes, CloudFront peut définir CloudFront-Is-Mobile-Viewer et CloudFront-Is-Tablet-Viewer sur true. Configurer CloudFront pour mettre en cache des objets en fonction de la langue de la visionneuse Si vous souhaitez que CloudFront mette en cache différentes versions de vos objets en fonction de la langue spécifiée dans la demande, programmez votre application pour inclure la langue dans l'en-tête Accept-Language, et configurez CloudFront pour transmettre l'en-tête Accept-Language à votre origine. Configurer CloudFront pour mettre en cache des objets en fonction de l'emplacement de la visionneuse Si vous souhaitez que CloudFront mette en cache différentes versions de vos objets en fonction du pays d'où provient la demande, configurez CloudFront pour transmettre l'en-tête CloudFrontViewer-Country à votre origine. CloudFront convertit automatiquement l'adresse IP d'où est issue la demande en un code pays à deux lettres. Pour accéder à une liste de codes pays facile à utiliser et pouvant être triée par code et nom de pays, consultez l'entrée Wikipedia ISO 3166-1 alpha-2. Configurer CloudFront pour mettre en cache des objets en fonction du protocole de la demande Si vous souhaitez que CloudFront mette en cache différentes versions de vos objets en fonction du protocole de la demande (HTTP ou HTTPS), configurez CloudFront pour transmettre l'en-tête CloudFront-Forwarded-Proto à votre origine. Incidence de la mise en cache basée sur les en-têtes sur les performances Lorsque vous configurez CloudFront pour effectuer la mise en cache en fonction d'un ou plusieurs entêtes et que les en-têtes ont plusieurs valeurs possibles, CloudFront transmet à votre serveur d'origine plus de demandes pour le même objet. Ceci ralentit les performances et augmente la charge sur votre API Version 2016-01-13 113 Amazon CloudFront Guide du développeur En-têtes et distributions RTMP serveur d'origine. Si votre serveur d'origine renvoie le même objet quelle que soit la valeur d'un en-tête donné, nous vous recommandons de ne pas configurer CloudFront pour effectuer la mise en cache en fonction de cet en-tête. Si vous configurez CloudFront pour transmettre plusieurs en-têtes, l'ordre des en-têtes dans les demandes de visionneuse n'a pas d'incidence sur la mise en cache dans la mesure où les valeurs sont les mêmes. Par exemple, si une demande contient les en-têtes A:1,B:2 et une autre demande contient les en-têtes B:2,A:1, CloudFront ne met en cache qu'une seule copie de l'objet. Impact de la casse des en-têtes et des valeurs d'en-tête sur la mise en cache Lorsque CloudFront effectue la mise en cache en fonction de valeurs d'en-tête, il ne prend pas en compte la casse du nom de l'en-tête, mais il tient compte de la casse de la valeur de l'en-tête : • Si des demandes de visionneuse incluent Product:Acme et product:Acme, CloudFront ne met en cache un objet qu'une seule fois. La seule différence entre les deux est la casse du nom de l'en-tête qui n'a pas d'incidence sur la mise en cache. • Si des demandes de visionneuse incluent Product:Acme et Product:acme, CloudFront met en cache un objet deux fois, parce que la valeur est Acme dans certaines demandes et acme dans d'autres. En-têtes renvoyés par CloudFront à la visionneuse Configurer CloudFront pour transmettre et mettre en cache des en-têtes n'a pas d'incidence sur les en-têtes que CloudFront renvoie à la visionneuse. CloudFront renvoie tous les en-têtes qu'il obtient de l'origine à quelques exceptions près. Pour plus d'informations, consultez la rubrique applicable : • Origines Amazon S3 – Consultez En-têtes de réponse HTTP que CloudFront supprime ou met à jour (p. 150). • Origines personnalisées – Consultez En-têtes de réponse HTTP que CloudFront supprime ou met à jour (p. 162). En-têtes et distributions RTMP Pour les distributions RTMP, vous ne pouvez pas configurer CloudFront pour mettre en cache vos contenus en fonction des en-têtes des demandes de visionneuse. Transfert d'en-têtes personnalisés vers votre origine (distributions Web uniquement) Vous pouvez configurer CloudFront afin d'inclure des en-têtes personnalisés lors du transfert d'une requête vers votre origine. Vous pouvez spécifier les noms et valeurs d'en-têtes personnalisés pour chaque origine, que ce soit pour les origines personnalisées ou les compartiments Amazon S3. Les en-têtes personnalisés s'emploient dans divers cas de figures, comme les suivants. • Vous pouvez identifier les requêtes transférées à votre origine personnalisée par CloudFront. Cela peut s'avérer utile lorsque vous souhaitez savoir si les utilisateurs passent outre CloudFront ou si vous avez besoin de connaître les requêtes qui proviennent de tel ou tel réseau de distribution de contenu (CDN) en cas d'utilisation de plusieurs CDN. (Si vous utilisez une origine Amazon S3 avec journalisation des accès au serveur Amazon S3 activée, les journaux n'incluent pas les informations d'en-tête.) API Version 2016-01-13 114 Amazon CloudFront Guide du développeur Configuration de CloudFront de manière à transférer des en-têtes personnalisés vers votre origine • Si vous avez configuré plus d'une distribution CloudFront de manière à utiliser la même origine, vous pouvez spécifier divers en-têtes personnalisés pour les origines de chaque distribution et utiliser les journaux de votre serveur Web afin de faire la distinction entre les requêtes transférées par CloudFront pour chaque distribution. • Si certains utilisateurs emploient des clients qui ne prennent pas en charge le partage des ressources cross-origin (CORS), vous pouvez configurer CloudFront de manière à transférer l'entête Origin vers votre origine. Ainsi, votre origine renverra l'en-tête Access-Control-AllowOrigin pour chaque requête. • Vous pouvez utiliser des en-têtes personnalisés ensembles et, éventuellement, des cookies ou des URL signés, afin de contrôler l'accès au contenu d'une origine personnalisée. Si vous configurez votre origine personnalisée de manière à répondre à des requêtes uniquement dans le cas où elles incluent un en-tête personnalisé, vous pouvez empêcher les utilisateurs de passer outre CloudFront et d'envoyer des requêtes directement à votre origine. Rubriques • Configuration de CloudFront de manière à transférer des en-têtes personnalisés vers votre origine (p. 115) • En-têtes personnalisés impossible à transférer à l'origine pour CloudFront (p. 115) • Utilisation des en-têtes personnalisés pour le partage des ressources cross-origin (CORS) (p. 116) • Utilisation des en-têtes personnalisés pour limiter l'accès à votre contenu sur une origine personnalisée (p. 116) Configuration de CloudFront de manière à transférer des en-têtes personnalisés vers votre origine Afin de configurer une distribution Web pour transférer les en-têtes personnalisés vers votre origine, vous devez mettre à jour la configuration des origines applicables selon l'une des méthodes suivantes. Console CloudFront Lors de la création ou de la mise à jour d'une distribution, spécifiez les noms et valeurs d'en-têtes dans les paramètres Origin Custom Headers. Pour de plus amples informations, veuillez consulter Création ou mise à jour d'une distribution web à l'aide de la console CloudFront (p. 56). API CloudFront Pour chaque origine vers laquelle transférer des en-têtes personnalisés, ajoutez les noms et valeurs d'en-têtes dans la section CustomHeaders du type de complexe DistributionConfig. Pour plus de détails, consultez POST Distribution (pour créer une nouvelle distribution) ou PUT Distribution Config (pour mettre à jour une distribution existante). Si les valeurs et noms d'en-têtes spécifiés ne figurent pas déjà dans la requête de la visionneuse, ils sont ajoutés par CloudFront. Si un en-tête s'y trouve déjà, CloudFront écrase la valeur d'en-tête avant de transférer la requête à l'origine. Pour les limites actuelles liées au transfert des en-têtes personnalisés à l'origine, consultez Restrictions (p. 362). En-têtes personnalisés impossible à transférer à l'origine pour CloudFront Il n'est pas possible de configurer CloudFront de manière à transférer les en-têtes personnalisés suivants à votre origine. API Version 2016-01-13 115 Amazon CloudFront Guide du développeur Utilisation des en-têtes personnalisés pour le partage des ressources cross-origin (CORS) Accept-Encoding Proxy-Authenticate Cache-Control Proxy-Authorization Connection Proxy-Connection Content-Length Range Cookie Request-Range Host TE If-Match Trailer If-Modified-Since Transfer-Encoding If-None-Match Upgrade If-Range Via If-Unmodified-Since En-têtes commençant par X-Amz-* Max-Forwards En-têtes commençant par X-Edge-* Pragma X-Real-Ip Utilisation des en-têtes personnalisés pour le partage des ressources cross-origin (CORS) Vous pouvez configurer CloudFront de manière à toujours transférer les en-têtes applicables à votre origine afin d'accommoder les visionneuses qui n'incluent pas automatiquement ces en-têtes dans les requêtes. Vous devez également configurer CloudFront de manière à respecter les paramètres CORS. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour respecter les paramètres de partage des ressources cross-origin (CORS) (p. 112). Utilisation des en-têtes personnalisés pour limiter l'accès à votre contenu sur une origine personnalisée Si vous utilisez une origine personnalisée, vous pouvez utiliser des en-têtes personnalisés afin d'empêcher les utilisateurs de passer outre CloudFront et de demander du contenu directement à votre origine. Vous pouvez également limiter l'accès à votre contenu en demandant à vos utilisateurs d'accéder à vos objets en utilisant des cookies ou des URL signés. Pour plus d'informations sur le contenu privé, consultez Service d'un contenu privé via CloudFront (p. 168). Pour exiger des utilisateurs un accès à votre contenu via CloudFront, modifiez les paramètres suivants dans vos distributions CloudFront : Origin Custom Headers Configurez CloudFront de manière à transférer les en-têtes personnalisés à votre origine. Voir Configuration de CloudFront de manière à transférer des en-têtes personnalisés vers votre origine (p. 115). Viewer Protocol Policy Configurez votre distribution de manière à ce que les visionneuses emploient HTTPS pour accéder à CloudFront. Voir Viewer Protocol Policy (p. 68). API Version 2016-01-13 116 Amazon CloudFront Guide du développeur Ajouter, supprimer et remplacer des objets dans une distribution Origin Protocol Policy Configurez votre distribution de manière à ce que CloudFront utilise le même protocole que celui des visionneuses pour transférer les requêtes à l'origine. Voir Stratégie de protocole de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 64). La combinaison de Viewer Protocol Policy et Origin Protocol Policy assure le chiffrement des entêtes entre la visionneuse et votre origine. Néanmoins, nous vous recommandons de procéder régulièrement aux tâches suivantes afin d'alterner les en-têtes personnalisés transférés par CloudFront à votre origine : 1. Mettez à jour votre distribution CloudFront pour commencer à transférer un nouvel en-tête à votre origine personnalisée. 2. Mettez à jour votre application pour accepter le nouvel en-tête comme confirmation que la requête provient bien de CloudFront. 3. Lorsque les requêtes des visionneuses n'incluent plus l'en-tête que vous remplacez, mettez à jour votre application pour ne plus accepter l'ancien en-tête comme confirmation que la requête provient bien de CloudFront. Ajouter, supprimer et remplacer des objets dans une distribution Pour plus d'informations sur l'ajout d'objets à une distribution, consultez Ajouter les objets que vous souhaitez que CloudFront distribue (p. 117). Lorsque vous remplacez des objets dans votre distribution, nous vous recommandons d'utiliser des noms d'objet versionnés. Pour plus d'informations, consultez Mettre à jour des objets existants à l'aide de noms d'objet versionnés (p. 118). Vous pouvez également remplacer des objets par des objets ayant le même nom. Voir Mettre à jour des objets existants à l'aide des mêmes noms d'objet (p. 118). Quelle que soit la manière dont vous choisissez de remplacer des objets dans votre distribution, nous vous recommandons de spécifier quand des objets doivent être supprimés du cache CloudFront. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Si vous devez supprimer rapidement des objets d'une distribution, vous pouvez les invalider. Pour plus d'informations, consultez Invalider des objets (distributions Web uniquement) (p. 125). Ajouter les objets que vous souhaitez que CloudFront distribue Lorsque vous souhaitez que CloudFront commence à distribuer des objets supplémentaires, vous ajoutez les objets à l'une des origines que vous avez spécifiées pour la distribution, et vous exposez un lien CloudFront vers les objets. Un emplacement périphérique CloudFront n'extrait pas les nouveaux objets d'une origine tant qu'il n'a pas reçu des demandes de visionneuses pour les objets. Pour plus d'informations, consultez Diffusion de contenu par CloudFront (p. 2). Lorsque vous ajoutez un objet que CloudFront doit distribuer, veillez à l'ajouter à l'un des compartiments Amazon S3 spécifiés dans votre distribution ou, pour une origine personnalisée, à un répertoire dans le domaine spécifié. De plus vérifiez que le modèle de chemin dans le comportement de cache applicable envoie les demandes à l'origine correcte. Par exemple, imaginons qu'un modèle de chemin pour un comportement de cache soit *.html. Si aucun autre comportement de cache n'est configuré pour transmettre les demandes à cette origine, CloudFront ne distribuera jamais les fichiers .jpg que vous chargez sur l'origine. API Version 2016-01-13 117 Amazon CloudFront Guide du développeur Mettre à jour des objets existants à l'aide de noms d'objet versionnés Les serveurs CloudFront ne déterminent pas le type MIME pour les objets qu'ils servent. Lorsque vous chargez un objet dans votre origine, vous devez définir le champ d'en-tête Content-Type pour l'objet. Mettre à jour des objets existants à l'aide de noms d'objet versionnés Lorsque vous mettez à jour des objets existants dans une distribution CloudFront, nous vous recommandons d'inclure un identifiant de version quelconque dans vos noms d'objet ou dans vos noms de répertoire pour vous permettre d'avoir un meilleur contrôle sur vos contenus. Cet identifiant peut être un horodatage, un numéro séquentiel ou toute autre méthode permettant de faire la distinction entre deux versions du même objet. Par exemple, au lieu de nommer un fichier graphique image.jpg, vous pouvez l'appeler image_1.jpg. Lorsque vous souhaitez commencer à servir une nouvelle version du fichier, vous appellerez alors le nouveau fichier image_2.jpg et vous mettrez à jour les liens de votre application Web ou site Web pour pointer sur image_2.jpg. Sinon, vous pouvez placer tous les graphiques dans un répertoire images_v1, et lorsque vous souhaitez commencer à servir des nouvelles versions d'un ou plusieurs graphiques, vous créez un nouveau répertoire images_v2, et vous mettez à jour vos liens pour pointer sur ce répertoire. Avec la gestion des versions, vous n'avez pas besoin d'attendre qu'un objet expire pour que CloudFront commence à servir une nouvelle version de celui-ci, ni de payer pour une invalidation d'objet. Même si vous versionnez vos objets, nous vous recommandons de définir une date d'expiration. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Note La spécification de noms d'objet ou de répertoire versionnés n'est pas lié à la gestion des versions d'objets Amazon S3. Mettre à jour des objets existants à l'aide des mêmes noms d'objet Même si vous pouvez mettre à jour les objets existants dans une distribution CloudFront et utiliser les mêmes noms d'objet, ceci n'est pas recommandé. CloudFront distribue des objets vers les emplacements périphériques uniquement quand les objets sont demandés, et non lorsque vous placez des objets nouveaux ou modifiés sur votre origine. Si vous mettez à jour un objet existant sur votre origine avec une version plus récente ayant le même nom, un emplacement périphérique n'obtient pas cette nouvelle version de votre origine tant que les deux événements suivants ne se sont pas produits : • L'ancienne version de l'objet dans le cache expire. Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). • Il existe une demande d'utilisateur final pour l'objet à cet emplacement périphérique. Si vous utilisez les mêmes noms lorsque vous remplacez des objets, vous ne pouvez pas contrôler quand CloudFront commence à servir les nouveaux fichiers. Par défaut, CloudFront garde en cache des objets dans des emplacements périphériques pendant 24 heures. (Pour plus d'informations, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119).) Par exemple, si vous remplacez tous les objets sur la totalité d'un site Web : • Des objets pour les pages moins populaires peuvent ne figurer dans aucun emplacement périphérique. Les nouvelles versions de ces objets commenceront à être servis sur la demande suivante. API Version 2016-01-13 118 Amazon CloudFront Guide du développeur Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) • Des objets pour certaines pages peuvent se trouver dans certains emplacements périphériques et pas dans d'autres. Vos utilisateurs finaux verront donc des versions différentes selon l'emplacement périphérique à partir duquel ils sont servis. • De nouvelles versions des objets des pages les plus populaires pourraient ne pas être servis pendant jusqu'à 24 heures parce que CloudFront pourrait avoir extrait les objets pour ces pages juste avant que vous ayez remplacé les objets par de nouvelles versions. Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) Vous pouvez contrôler pendant combien de temps des objets restent dans le cache CloudFront avant que CloudFront transmette une autre demande à votre origine. Réduire la durée vous permet de servir des contenus dynamiques. Augmenter la durée signifie que vos utilisateurs obtiennent de meilleures performances parce que vos objets sont plus susceptibles d'être servis directement à partir du cache périphérique. Une durée plus longue réduit également la charge sur votre origine. Généralement, CloudFront sert un objet à partir d'un emplacement périphérique jusqu'à ce que la durée de conservation en cache que vous avez spécifiée soit écoulée, c'est-à-dire jusqu'à ce que l'objet expire. Une fois l'objet expiré, la prochaine fois que l'emplacement périphérique reçoit une demande d'utilisateur pour l'objet, CloudFront transmet la demande au serveur d'origine pour vérifier que le cache contient la dernière version de l'objet. La réponse de l'origine varie selon que l'objet a changé ou non : • Si le cache CloudFront contient déjà la dernière version, l'origine renvoie un code de statut 304 (Non modifié). • Si le cache CloudFront ne contient pas la dernière version, l'origine renvoie un code de statut 200 (OK) et la dernière version de l'objet. Si un objet dans un emplacement périphérique n'est pas souvent demandé, CloudFront pourrait expulser l'objet (l'enlever avant sa date d'expiration) pour faire de la place pour des objets qui ont été demandés plus récemment. Par défaut, chaque objet expire automatiquement au bout de 24 heures. Pour les distributions Web, vous pouvez modifier le comportement par défaut de deux manières : • Pour changer la durée de conservation en cache pour tous les objets qui correspondent au même modèle de chemin, vous pouvez modifier les valeurs CloudFront pour Minimum TTL, Maximum TTL et Default TTL pour un comportement de cache. Pour plus d'informations sur les différents paramètres, consultez Durée de vie minimale, Durée de vie maximale et Durée de vie par défaut. Pour utiliser ces paramètres, vous devez sélectionner l'option Customize pour le paramètre Object Caching. • Pour changer la durée de conservation en cache pour un objet individuel, vous pouvez configurer votre origine pour ajouter une directive Cache-Control max-age ou Cache-Control s-maxage, ou un champ d'en-tête Expires à l'objet. Pour plus d'informations, consultez Utiliser des en-têtes pour contrôler la durée de conservation en cache pour des objets individuels (p. 120). Pour plus d'informations sur la façon dont Minimum TTL, Default TTL et Maximum TTL interagissent avec les directives Cache-Control max-age et Cache-Control s-maxage, et le champ d'en-tête Expires, consultez Spécifier le délai pendant lequel CloudFront garde des objets en cache pour des distributions Web (p. 121). Vous pouvez également contrôler pendant combien de temps des erreurs (par exemple, 404, Non trouvé) restent dans le cache CloudFront avant que CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. Pour plus d'informations, consultez API Version 2016-01-13 119 Amazon CloudFront Guide du développeur Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront (p. 164). Rubriques • Utiliser des en-têtes pour contrôler la durée de conservation en cache pour des objets individuels (p. 120) • Spécifier le délai pendant lequel CloudFront garde des objets en cache pour des distributions Web (p. 121) • Spécifier le délai minimal pendant lequel CloudFront garde des objets en cache pour les distributions RTMP (p. 125) • Ajouter des en-têtes à vos objets à l'aide de la console Amazon S3 (p. 125) Utiliser des en-têtes pour contrôler la durée de conservation en cache pour des objets individuels Vous pouvez utiliser les en-têtes Cache-Control et Expires pour contrôler pendant combien de temps des objets restent dans le cache. Les valeurs de Minimum TTL, Default TTL et Maximum TTL affectent également la durée de conservation en cache, mais voici un aperçu de l'incidence de ces entêtes sur cette durée : • La directive Cache-Control max-age vous permet de spécifier combien de temps (en secondes) vous souhaitez qu'un objet reste dans le cache avant que CloudFront extraie à nouveau l'objet du serveur d'origine. Le délai d'expiration minimum pris en charge par CloudFront est de 0 seconde pour des distributions Web et de 3600 secondes pour des distributions RTMP. La valeur maximale est 100 ans. Spécifiez la valeur au format suivant : Cache-Control: max-age=secondes Par exemple, la directive suivante demande à CloudFront de conserver l'objet associé dans le cache pendant 3600 secondes (une heure) : Cache-Control: max-age=3600 Si vous souhaitez que des objets restent dans des caches périphériques CloudFront pendant une durée différente de celle dans les caches de navigateur, vous pouvez utiliser les directives CacheControl max-age et Cache-Control s-maxage ensemble. Pour plus d'informations, consultez Spécifier le délai pendant lequel CloudFront garde des objets en cache pour des distributions Web (p. 121). • Le champ d'en-tête Expires vous permet de spécifier une date et une heure d'expiration au format spécifié dans RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1 Section 3.3.1, Full Date, par exemple : Sat, 27 Jun 2015 23:59:59 GMT Nous vous recommandons d'utiliser la directive Cache-Control max-age plutôt que le champ d'entête Expires pour contrôler la mise en cache des objets. Si vous spécifiez des valeurs pour CacheControl max-age et pour Expires, CloudFront utilise uniquement la valeur de Cache-Control max-age. Pour plus d'informations, consultez Spécifier le délai pendant lequel CloudFront garde des objets en cache pour des distributions Web (p. 121). Vous ne pouvez pas utiliser les champs d'en-tête HTTP Cache-Control ou Pragma dans une demande GET d'une visionneuse pour forcer CloudFront à revenir au serveur d'origine pour l'objet. CloudFront ignore ces champs d'en-tête dans des demandes de visionneuse. API Version 2016-01-13 120 Amazon CloudFront Guide du développeur Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) Pour plus d'informations sur les champs d'en-tête Cache-Control et Expires, consultez les sections suivantes de RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1: • Section 14.9 Cache Control • Section 14.21 Expires Pour un exemple de la façon d'ajouter les champs d'en-tête Cache-Control et Expires à l'aide du kit AWS SDK pour PHP, consultez Chargement d'un objet grâce au kit AWS SDK pour PHP dans le manuel Amazon Simple Storage Service Manuel du développeur. Certains outils tiers peuvent également ajouter ces champs. Spécifier le délai pendant lequel CloudFront garde des objets en cache pour des distributions Web Pour des distributions Web, vous pouvez utiliser les en-têtes Cache-Control ou Expires, ainsi que les valeurs de durée de vie (TTL) minimale, maximale et par défaut de CloudFront pour contrôler la durée en secondes pendant laquelle CloudFront conserve un objet dans le cache avant de transmettre une autre demande à l'origine. Des valeurs d'en-tête déterminent également combien de temps un navigateur conserve un objet dans le cache avant de transmettre une autre demande à CloudFront. Important Si vous configurez CloudFront pour transmettre tous les en-têtes à votre origine pour un comportement de cache, CloudFront ne met jamais en cache les objets associés. En revanche, CloudFront transmet toutes les demandes pour ces objets à votre origine. Dans cette configuration, la valeur de Minimum TTL doit être 0. Pour plus d'informations, consultez Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Pour spécifier des valeurs pour Minimum TTL, Maximum TTL et Default TTL, vous devez sélectionner l'option Customize pour le paramètre Object Caching. Configuration de l'origine Minimum TTL = 0 Seconds Minimum TTL > 0 Seconds L'origine ajoute une directive Cache-Control max-age aux objets Conservation en cache par CloudFront Conservation en cache par CloudFront CloudFront garde en cache les objets selon la valeur la plus faible entre la directive Cache-Control max-age et la valeur de durée de vie maximale CloudFront. La conservation en cache de CloudFront dépend des valeurs de durée de vie (TTL) minimale et maximale CloudFront, et de la directive Cache-Control maxage : Conservation en cache par les navigateurs • Minimum TTL < max-age < maximum TTL Les navigateurs gardent en cache les objets selon la valeur de la directive Cache-Control max-age. CloudFront garde en cache les objets selon la valeur de la directive Cache-Control max-age. • max-age < minimum TTL CloudFront garde en cache les objets selon la valeur API Version 2016-01-13 121 Amazon CloudFront Guide du développeur Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) Configuration de l'origine Minimum TTL = 0 Seconds Minimum TTL > 0 Seconds de durée de vie minimale CloudFront. • max-age > maximum TTL CloudFront garde en cache les objets selon la valeur de durée de vie maximale CloudFront. Conservation en cache par les navigateurs Les navigateurs gardent en cache les objets selon la valeur de la directive Cache-Control max-age. L'origine n'ajoute pas une directive Cache-Control max-age aux objets Conservation en cache par CloudFront Conservation en cache par CloudFront CloudFront garde en cache les objets selon la valeur de durée de vie par défaut CloudFront. CloudFront garde en cache les objets selon la valeur la plus élevée entre les valeurs de durée de vie minimale ou par défaut CloudFront. Conservation en cache par les navigateurs Dépend du navigateur. Conservation en cache par les navigateurs Dépend du navigateur. API Version 2016-01-13 122 Amazon CloudFront Guide du développeur Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) Configuration de l'origine Minimum TTL = 0 Seconds Minimum TTL > 0 Seconds L'origine ajoute les directives Cache-Control max-age et Cache-Control s-maxage aux objets Conservation en cache par CloudFront Conservation en cache par CloudFront CloudFront garde en cache les objets selon la valeur la plus faible entre la directive Cache-Control s-maxage et la valeur de durée de vie maximale CloudFront. La conservation en cache de CloudFront dépend des valeurs de durée de vie (TTL) minimale et maximale CloudFront, et de la directive Cache-Control smaxage : Conservation en cache par les navigateurs • Minimum TTL < s-maxage < maximum TTL Les navigateurs gardent en cache les objets selon la valeur de la directive Cache-Control max-age. CloudFront garde en cache les objets selon la valeur de la directive Cache-Control smaxage. • s-maxage < minimum TTL CloudFront garde en cache les objets selon la valeur de durée de vie minimale CloudFront. • s-maxage > maximum TTL CloudFront garde en cache les objets selon la valeur de durée de vie maximale CloudFront. Conservation en cache par les navigateurs Les navigateurs gardent en cache les objets selon la valeur de la directive Cache-Control max-age. API Version 2016-01-13 123 Amazon CloudFront Guide du développeur Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) Configuration de l'origine Minimum TTL = 0 Seconds Minimum TTL > 0 Seconds L'origine ajoute un en-tête Expires aux objets Conservation en cache par CloudFront Conservation en cache par CloudFront CloudFront garde en cache les objets jusqu'à la date de l'en-tête Expires ou selon la valeur de durée de vie maximale CloudFront, selon la première de ces éventualités. La conservation en cache par CloudFront dépend des valeurs de durée de vie (TTL) minimale et maximale CloudFront, et de l'en-tête Expires : Conservation en cache par les navigateurs Les navigateurs gardent en cache les objets jusqu'à la date de l'en-tête Expires. • Minimum TTL < Expires < maximum TTL CloudFront garde en cache les objets jusqu'à la date et l'heure de l'en-tête Expires. • Expires < minimum TTL CloudFront garde en cache les objets selon la valeur de durée de vie minimale CloudFront. • Expires > maximum TTL CloudFront garde en cache les objets selon la valeur de durée de vie maximale CloudFront. Conservation en cache par les navigateurs Les navigateurs gardent en cache les objets jusqu'à la date et l'heure de l'en-tête Expires. L'origine ajoute les directives Cache-Control: no-cache, no-store et/ou private aux objets CloudFront et les navigateurs respectent les en-têtes. Conservation en cache par CloudFront Pour une exception sur la façon dont CloudFront traite l'entête Cache-Control: nocache, consultez Demandes simultanées pour le même objet (pics de trafic) (p. 160). CloudFront garde en cache les objets selon la valeur de durée de vie minimale CloudFront. Conservation en cache par les navigateurs Les navigateurs respectent les en-têtes. Pour plus d'informations sur la façon de changer les paramètres pour les distributions Web à l'aide de la console CloudFront, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). Pour plus d'informations sur la façon de changer les paramètres pour les distributions Web à l'aide de l'API CloudFront, consultez PUT Config. API Version 2016-01-13 124 Amazon CloudFront Guide du développeur Invalider des objets (distributions Web uniquement) Spécifier le délai minimal pendant lequel CloudFront garde des objets en cache pour les distributions RTMP Pour les distributions RTMP, CloudFront garde les objets dans les caches périphériques pendant 24 heures par défaut. Vous pouvez ajouter l'en-tête Cache-Control ou Expires à vos objets pour changer la durée pendant laquelle CloudFront garde les objets dans les caches périphériques avant de transmettre une autre demande à l'origine. La durée minimale est de 3600 secondes (une heure). Si vous spécifiez une valeur plus faible, CloudFront utilise 3600 secondes. Ajouter des en-têtes à vos objets à l'aide de la console Amazon S3 Note À l'aide de la console Amazon S3, vous ne pouvez ajouter des en-têtes qu'à un seul objet à la fois, mais avec certains outils tiers, vous pouvez ajouter des en-têtes à plusieurs objets Amazon S3 simultanément. Pour plus d'informations sur les outils tiers prenant en charge Amazon S3, effectuez une recherche sur le Web sur outils tiers AWS S3. Pour ajouter un champ d'en-tête Cache-Control ou Expires à des objets Amazon S3 à l'aide de la console Amazon S3 1. 2. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3. Sur la console Amazon S3, dans le volet des compartiments, cliquez sur le nom du compartiment qui contient les fichiers. 3. 4. 5. Dans la liste d'objets, sélectionnez le premier objet auquel vous voulez ajouter un champ d'en-tête. Cliquez sur Actions, puis sur Properties. Dans le volet droit, développez Metadata. 6. 7. Cliquez sur Add More Metadata. Dans la liste Key, cliquez sur Cache-Control ou Expires, selon le cas. 8. Dans le champ Value, entrez la valeur applicable : • Pour un champ Cache-Control, entrez : max-age=number of seconds that you want objects to stay in a CloudFront edge cache • Pour un champ Expires, entrez une date et une heure au format HTML. 9. Cliquez sur Sauvegarder 10. Si vous voulez ajouter un champ d'en-tête à des objets supplémentaires, cliquez sur le nom de l'objet suivant, et répétez les étapes 5 à 9. Invalider des objets (distributions Web uniquement) Si vous devez supprimer un objet des caches périphériques de CloudFront avant son expiration, vous pouvez procéder de l'une des manières suivantes : • Invalidez l'objet des caches périphériques. La fois suivante qu'une visionneuse demande l'objet, CloudFront revient à l'origine pour extraire la dernière version de l'objet. • Utilisez la gestion des versions d'objets pour servir une version différente de l'objet dont le nom diffère. Pour plus d'informations, consultez Mettre à jour des objets existants à l'aide de noms d'objet versionnés (p. 118). API Version 2016-01-13 125 Amazon CloudFront Guide du développeur Invalider des objets (distributions Web uniquement) Important Vous pouvez invalider la plupart des types d'objets qui sont servis par une distribution Web, mais vous ne pouvez pas invalider des fichiers multimédias au format Microsoft Smooth Streaming lorsque vous avez activé Smooth Streaming pour le comportement de cache correspondant. De plus, vous ne pouvez pas invalider des objets qui sont servis par une distribution RTMP. Pour invalider des objets, vous pouvez indiquer le chemin pour des objets individuels ou un chemin qui se termine par le caractère générique * qui peut s'appliquer à un ou plusieurs objets, comme illustré dans les exemples suivants : • /images/image1.jpg • /images/image* • /images/* Vous pouvez soumettre gratuitement un nombre spécifié de chemins d'invalidation par mois. Si vous soumettez plus de chemins d'invalidation que le nombre alloué au cours d'un mois, vous paierez des frais pour chaque chemin d'invalidation soumis. Pour plus d'informations sur les frais d'invalidation, consultez Paiement pour une invalidation d'objet (p. 131). Rubriques • Choisir entre invalider des objets existants et utiliser des noms d'objet versionnés (p. 126) • Déterminer quels objets invalider (p. 127) • Spécifier les objets à invalider (p. 127) • Invalider des objets et afficher des informations sur les invalidations (p. 129) • Outils tiers pour l'invalidation d'objets (p. 131) • Limites relatives à l'invalidation (p. 131) • Paiement pour une invalidation d'objet (p. 131) Choisir entre invalider des objets existants et utiliser des noms d'objet versionnés Pour contrôler les versions d'objets qui sont servis à partir de votre distribution, vous pouvez invalider des objets ou leur attribuer des noms d'objet versionnés. Si vous souhaitez mettre souvent vos objets à jour, nous vous recommandons d'utiliser principalement la gestion des versions d'objets pour les raisons suivantes : • La gestion des versions vous permet de contrôler quel objet est renvoyé par une demande même lorsque l'utilisateur dispose d'une version en cache en local ou derrière un proxy de mise en cache d'entreprise. Si vous invalidez l'objet, l'utilisateur pourrait continuer de voir l'ancienne version tant qu'elle n'est pas arrivée à expiration dans ces caches. • Les journaux d'accès CloudFront incluent les noms de vos objets. La gestion des versions facilite donc l'analyse des résultats de changements d'objet. • La gestion des versions offre un moyen de servir des versions différentes d'objets à des utilisateurs différents. • La gestion des versions simplifie la restauration par progression et la restauration entre les révisions d'objet. • La gestion des versions est moins chère. Vous devrez encore payer pour que CloudFront transfère de nouvelles versions de vos objets à des emplacements périphériques, mais vous n'avez pas besoin de payer pour une invalidation d'objet. API Version 2016-01-13 126 Amazon CloudFront Guide du développeur Invalider des objets (distributions Web uniquement) Pour plus d'informations sur la gestion des versions d'objet, consultez Mettre à jour des objets existants à l'aide de noms d'objet versionnés (p. 118). Déterminer quels objets invalider Si vous souhaitez invalider plusieurs objets, par exemple tous les objets d'un répertoire ou tous les objets dont le nom commence par les mêmes caractères, vous pouvez inclure le caractère générique * à la fin du chemin d'invalidation. Pour plus d'informations sur l'utilisation du caractère générique *, consultez Invalidation paths. Si vous souhaitez invalider certains objets mais que vos utilisateurs n'ont pas forcément à accès à chaque objet sur votre origine, vous pouvez déterminer quels objets des visionneuses ont demandés à CloudFront et n'invalider que ces objets. Pour déterminer les objets demandés par les visionneuses, activez la journalisation des accès CloudFront. Pour plus d'informations sur les journaux d'accès, consultez Journaux d'accès (p. 267). Spécifier les objets à invalider Que vous invalidiez des objets à l'aide de la console CloudFront ou de l'API CloudFront, les exigences et limitations pour spécifier des objets sont les mêmes. Notez ce qui suit à propos de la spécification des objets que vous souhaitez invalider. Sensibilité à la casse Les chemins d'invalidation sont sensibles à la casse. /images/image.jpg et /images/ Image.jpg spécifient donc deux objets différents. Objet racine par défaut Pour invalider l'objet racine par défaut, spécifiez le chemin tout comme le chemin pour tout autre objet. Types de distribution Vous pouvez invalider uniquement des objets qui sont associés à une distribution Web. Transmettre des cookies Si vous avez configuré CloudFront pour transmettre des cookies à votre origine, CloudFront, les caches périphériques peuvent contenir plusieurs versions de l'objet. Lorsque vous invalidez un objet, CloudFront invalide chaque version mise en cache de l'objet quels que soient ses cookies associés. Vous ne pouvez pas invalider de façon sélective certaines versions et pas d'autres en fonction des cookies associés. Pour plus d'informations, consultez Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Transmettre des en-têtes Si vous avez configuré CloudFront pour transmettre une liste blanche d'en-têtes à l'origine et effectuer la mise en cache selon les valeurs des en-têtes, les caches périphériques CloudFront peuvent contenir plusieurs versions de l'objet. Lorsque vous invalidez un objet, CloudFront invalide chaque version mise en cache de l'objet quelles que soient les valeurs des en-têtes. Vous ne pouvez pas invalider de façon sélective certaines versions et pas d'autres en fonction de valeurs d'en-têtes. (Si vous configurez CloudFront pour transmettre tous les en-têtes à votre origine, CloudFront ne met jamais en cache vos objets.) Pour plus d'informations, consultez Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Transmission de chaînes de requête Si vous avez configuré CloudFront pour transmettre les chaînes de requête à votre origine, vous devez inclure les chaînes de requête lorsque vous invalidez des objets, comme illustré dans les exemples suivants : • images/image.jpg?parameter1=a • images/image.jpg?parameter1=b Si les demandes client incluent cinq chaînes de requête différentes pour le même objet, vous pouvez soit invalider l'objet cinq fois (une fois par chaîne de requête), soit utiliser le caractère générique * dans le chemin d'invalidation, comme illustré dans l'exemple suivant : API Version 2016-01-13 127 Amazon CloudFront Guide du développeur Invalider des objets (distributions Web uniquement) /images/image.jpg* Pour plus d'informations sur l'utilisation de caractères génériques dans le chemin d'invalidation, consultez Invalidation paths. Pour plus d'informations sur les chaînes de requête, consultez Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête (p. 106). Pour déterminer quelles chaînes de requête sont utilisées, vous pouvez activer la journalisation des accès CloudFront. Pour plus d'informations, consultez Journaux d'accès (p. 267). Restrictions Pour en savoir plus sur les limites appliquées aux invalidations, consultez Limites relatives à l'invalidation (p. 131). Fichiers Microsoft Smooth Streaming Vous ne pouvez pas invalider des fichiers multimédias au format Microsoft Smooth Streaming lorsque vous avez activé Smooth Streaming pour le comportement de cache correspondant. Caractères autres qu'ASCII ou non sûrs dans le chemin Si le chemin inclut des caractères autres qu'ASCII ou non sûrs, tels que définis dans RFC 1783 (http://www.ietf.org/rfc/rfc1738.txt), encodez ces caractères dans l'URL. N'encodez pas d'autres caractères dans le chemin, sinon CloudFront n'invalidera pas l'ancienne version de l'objet mis à jour. Chemins d'invalidation Le chemin est relatif par rapport à la distribution. Le caractère / de début est facultatif. Par exemple, pour invalider l'objet à l'adresse http://d111111abcdef8.cloudfront.net/ images/image2.jpg, vous devez spécifier ce qui suit : /images/image2.jpg ou images/image2.jpg Vous pouvez également invalider simultanément plusieurs objets à l'aide du caractère générique *. Le caractère générique *, qui remplace 0 caractère ou plus, doit être le dernier caractère dans le chemin d'invalidation. Exemples : • Pour invalider tous les objets dans un répertoire : /chemin_répertoire/* • Pour invalider un répertoire, tous ses sous-répertoires, et tous les objets de ce répertoire et ces sous-répertoires : /chemin_répertoire* • Pour invalider tous les fichiers qui ont le même nom mais des extensions de nom de fichier différentes, comme logo.jpg, logo.png et logo.gif : /chemin_répertoire/nom_fichier* • Pour invalider tous les fichiers d'un répertoire dont le nom de fichier commence par les mêmes caractères (par exemple, tous les fichiers pour une vidéo au format HLS), quelle que soit l'extension du nom de fichier : /chemin_répertoire/caractères_initiaux_dans_nom_fichier* • Si vous configurez CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête, et que vous souhaitez invalider chaque version d'un objet : /chemin_répertoire/nom_fichier.extension_nom_fichier* • Pour invalider tous les objets dans une distribution : /* API Version 2016-01-13 128 Amazon CloudFront Guide du développeur Invalider des objets (distributions Web uniquement) La longueur maximale d'un chemin est de 4 000 caractères. Les frais pour soumettre un chemin d'invalidation sont les mêmes quel que soit le nombre d'objets que vous invalidez : un seul objet (/images/logo.jpg) ou tous les objets associés à une distribution (/*). Pour en savoir plus, consultez la page Tarification Amazon CloudFront. Si le chemin d'invalidation est un répertoire et que vous n'avez pas adopté une méthode standardisée pour spécifier les répertoires, avec ou sans barre oblique de fin (/), nous vous recommandons d'invalider le répertoire avec et sans barre oblique de fin, par exemple, /images et /images/. Pour plus d'informations, consultez Impact des URL publiques sur l'invalidation de répertoires (p. 102). URL signées Si vous utilisez des URL signées, invalidez un objet en n'incluant que la portion de l'URL avant le point d'interrogation (?). Invalider des objets et afficher des informations sur les invalidations Vous pouvez utiliser des actions de console CloudFront ou d'API CloudFront pour créer et exécuter une invalidation, afficher la liste des invalidations que vous avez soumises précédemment et afficher des informations détaillées sur une invalidation individuelle. Vous pouvez également copier une invalidation existante, modifier la liste des chemins d'objet et exécuter l'invalidation modifiée. Consultez la rubrique applicable : • Invalider des objets à l'aide de la console CloudFront (p. 129) • Copier, modifier et réexécuter une invalidation existante à l'aide de la console CloudFront (p. 130) • Répertorier des invalidations à l'aide de la console CloudFront (p. 130) • Afficher des informations sur une invalidation à l'aide de la console CloudFront (p. 130) • Invalider des objets et afficher des informations sur les invalidations à l'aide de l'API CloudFront (p. 131) Invalider des objets à l'aide de la console CloudFront Pour Invalider des objets à l'aide de la console CloudFront, procédez comme suit. Pour invalider des objets à l'aide de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez la distribution pour laquelle vous voulez invalider des objets. 3. Choisissez Distribution Settings. 4. Choisissez l'onglet Invalidations. 5. Sélectionnez Create Invalidation. 6. Pour les objets que vous voulez invalider, entrez un chemin d'invalidation par ligne. Pour plus d'informations sur la spécification de chemins d'invalidation, consultez Spécifier les objets à invalider (p. 127). Important Indiquez les chemins d'objet avec soin. Vous ne pouvez pas annuler une demande d'invalidation après l'avoir commencée. 7. Sélectionnez Invalidate. API Version 2016-01-13 129 Amazon CloudFront Guide du développeur Invalider des objets (distributions Web uniquement) Copier, modifier et réexécuter une invalidation existante à l'aide de la console CloudFront Vous pouvez copier une invalidation que vous avez créée précédemment, mettre à jour la liste des chemins d'invalidation d'objet et exécuter l'invalidation mise à jour. Vous ne pouvez pas copier une invalidation existante, mettre à jour la liste des chemins d'invalidation et enregistrer l'invalidation mise à jour sans l'exécuter. Important Si vous copiez une invalidation encore en cours, mettez à jour la liste des chemins d'invalidation et exécutez l'invalidation mise à jour, CloudFront n'arrêtera pas ou ne supprimera pas l'invalidation que vous avez copiée. Si des chemins d'invalidation apparaissent dans l'original et la copie, CloudFront tentera d'invalider les objets deux fois, et les deux invalidations seront prises en compte dans votre nombre maximal d'invalidations gratuites pour le mois. Si vous avez déjà atteint le nombre maximal d'invalidations gratuites, les deux invalidations vous seront facturées pour chaque objet. Pour plus d'informations, consultez Limites relatives à l'invalidation (p. 131). Pour copier, modifier et réexécuter une invalidation existante à l'aide de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. 3. 4. Sélectionnez la distribution qui contient l'invalidation à copier. Choisissez Distribution Settings. Choisissez l'onglet Invalidations. 5. Sélectionnez l'invalidation que vous souhaitez copier. 6. 7. Si vous n'êtes pas sûr de l'invalidation à copier, vous pouvez choisir une invalidation et sélectionner Details pour afficher des informations détaillées sur cette invalidation. Choisissez Copy. Mettez à jour la liste des chemins d'invalidation la cas échéant. 8. Sélectionnez Invalidate. Répertorier des invalidations à l'aide de la console CloudFront À l'aide de la console, vous pouvez afficher la liste des 100 dernières invalidations que vous avez créées et exécutées pour une distribution. Si vous souhaitez obtenir une liste de plus de 100 invalidations, utilisez l'action d'API GET Invalidation List. Pour plus d'informations, consultez GET Invalidation List dans le manuel Amazon CloudFront API Reference. Pour répertorier des invalidations à l'aide de la console CloudFront 1. 2. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. Choisissez la distribution pour laquelle vous voulez afficher une liste d'invalidations. 3. 4. Choisissez Distribution Settings. Choisissez l'onglet Invalidations. Afficher des informations sur une invalidation à l'aide de la console CloudFront Vous pouvez afficher des informations détaillées sur une invalidation, notamment l'ID de distribution, l'ID d'invalidation, le statut de l'invalidation, la date et l'heure auxquelles l'invalidation a été créée, et une liste complète des chemins d'invalidation. API Version 2016-01-13 130 Amazon CloudFront Guide du développeur Invalider des objets (distributions Web uniquement) Pour afficher des informations sur une invalidation à l'aide de la console CloudFront 1. 2. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. Sélectionnez la distribution qui contient l'invalidation sur laquelle vous souhaitez afficher des informations détaillées. 3. 4. Choisissez Distribution Settings. Choisissez l'onglet Invalidations. 5. 6. Sélectionnez l'invalidation sur laquelle vous souhaitez afficher des informations détaillées. Sélectionnez Details. Invalider des objets et afficher des informations sur les invalidations à l'aide de l'API CloudFront Pour plus d'informations sur l'invalidation d'objets et l'affichage d'informations sur des invalidations à l'aide de l'API CloudFront, consultez la rubrique applicable dans le manuel Amazon CloudFront API Reference : • Invalider des objets : POST Invalidation • Obtenir la liste de vos invalidations : GET Invalidation List • Obtenir des informations sur une invalidation spécifique : GET Invalidation Outils tiers pour l'invalidation d'objets En plus des méthodes d'invalidation fournies par CloudFront, plusieurs outils tiers proposent des moyens d'invalider des objets. Pour une liste d'outils, consultez Invalidation d'objets (p. 367). Limites relatives à l'invalidation Si vous invalidez des objets individuellement, il est possible que des demandes d'invalidation concernant jusqu'à 3 000 objets par distribution soient en cours en même temps. Il peut s'agir d'une demande d'invalidation concernant jusqu'à 3 000 objets, de 3 000 demandes concernant chacune un objet, ou d'une autre combinaison ne dépassant pas 3 000 objets. Par exemple, vous pouvez soumettre 30 demandes d'invalidation invalidant 100 objets chacune. Tant que toutes les 30 demandes d'invalidation sont encore en cours, vous ne pouvez pas soumettre d'autres demandes d'invalidation. Si vous dépassez cette limite, CloudFront renvoie un message d'erreur. Si vous utilisez le caractère générique *, vous pouvez lancer en même temps des demandes concernant jusqu'à 15 chemins d'invalidation. Vous pouvez également lancer en même temps des demandes d'invalidation concernant jusqu'à 3 000 objets individuels par distribution, la limite concernant les demandes d'invalidation avec caractères génériques étant indépendante de la limite applicable à l'invalidation d'objets individuels. Note Cela prend généralement de 10 à 15 minutes pour que CloudFront exécute votre demande d'invalidation, en fonction du nombre de chemins d'invalidation que vous avez inclus dans la demande. Paiement pour une invalidation d'objet Les premiers 1 000 chemins d'invalidation que vous soumettez par mois sont gratuits ; vous paierez pour chaque chemin d'invalidation au-delà de 1 000 au cours d'un mois. Un chemin d'invalidation peut être un objet unique (comme /images/logo.jpg) ou plusieurs objets (comme /images/*). API Version 2016-01-13 131 Amazon CloudFront Guide du développeur Personnaliser des réponses d'erreur Un chemin qui inclut le caractère générique * compte comme un seul chemin même s'il entraîne l'invalidation de milliers d'objets par CloudFront. La limite de 1 000 chemins d'invalidation par mois s'applique au nombre total de chemins d'invalidation pour toutes les distributions que vous créez avec un compte AWS. Par exemple, si vous utilisez le compte AWS [email protected] pour créer trois distributions, et que vous soumettez 600 chemins d'invalidation pour chaque distribution un mois donné (pour un total de 1 800 chemins d'invalidation), AWS vous facturera 800 chemins d'invalidation au cours de ce mois. Pour obtenir des informations spécifiques sur les tarifs d'invalidation, accédez à la page Amazon CloudFront Pricing. Pour plus d'informations sur les chemins d'invalidation, consultez Invalidation paths. Personnaliser des réponses d'erreur Rubriques • Créer ou mettre à jour un comportement de cache pour des pages d'erreur personnalisées (p. 133) • Modifier des codes de réponse (p. 133) • Contrôler pendant combien de temps CloudFront garde les erreurs en cache (p. 134) • Réponse de CloudFront quand une page d'erreur personnalisée n'est pas disponible (p. 135) • Tarification pour les pages d'erreur personnalisées (p. 135) • Configurer le comportement des réponses d'erreur (p. 135) Si les objets que vous servez via CloudFront ne sont pas disponibles pour une raison quelconque, votre serveur web renvoie généralement un code de statut HTTP à CloudFront. Par exemple, si une visionneuse spécifie une URL non valide, votre serveur web renvoie un code de statut 404 à CloudFront, et CloudFront renvoie ce code de statut à la visionneuse. La visionneuse affiche un court message par défaut peu formaté similaire au message suivant : Not Found: The requested URL /myfilename.html was not found on this server. Si vous préférez afficher un message d'erreur personnalisé, éventuellement en utilisant le même format que le reste de votre site Web, vous pouvez faire en sorte que CloudFront renvoie un objet à la visionneuse (par exemple, un fichier HTML) contenant votre message d'erreur personnalisé. Vous pouvez spécifier un objet différent pour chaque code de statut HTTP pris en charge, ou utiliser le même objet pour tous les codes de statut pris en charge. Vous pouvez également choisir de spécifier des objets pour certains codes de statut et pas pour d'autres. Les objets que vous servez via CloudFront peuvent ne pas être disponibles pour différentes raisons. Ces raisons se divisent en deux grandes catégories : • Les erreurs de client indiquent un problème lié à la demande. Par exemple, un objet avec le nom spécifié n'est pas disponible, ou l'utilisateur ne dispose pas des autorisations requises pour extraire un objet dans votre compartiment Amazon S3. Lorsqu'une erreur client se produit, l'origine renvoie un code de statut HTTP de la plage 400 à CloudFront. • Les erreurs de serveur indiquent un problème lié au serveur d'origine. Par exemple, le serveur HTTP est occupé ou indisponible. Lorsqu'une erreur de serveur se produit, votre serveur d'origine renvoie un code de statut HTTP de la plage 500 à CloudFront, ou CloudFront n'obtient pas de réponse de votre serveur d'origine pendant un certain temps et considère qu'il s'agit d'un code de statut 504 (délai de passerelle expiré). Les codes de statut HTTP pour lesquels CloudFront peut renvoyer une page d'erreur personnalisée sont notamment les suivants : API Version 2016-01-13 132 Amazon CloudFront Guide du développeur Créer ou mettre à jour un comportement de cache pour des pages d'erreur personnalisées • 400, 403, 404, 405, 414, 416 • 500, 501, 502, 503, 504 Note Vous pouvez créer une page d'erreur personnalisée pour le code de statut HTTP 416 (Plage demandée impossible à respecter), et vous pouvez modifier le code de statut HTTP que CloudFront renvoie aux visionneuses quand votre origine retourne un code de statut 416 à CloudFront. (Pour plus d'informations, consultez Modifier des codes de réponse (p. 133).) Par contre, CloudFront ne met pas en cache le code de statut 416. Vous pouvez donc spécifier une valeur pour Error Caching Minimum TTL pour le code de statut 416, mais CloudFront ne l'utilise pas. Pour une explication détaillée sur la façon dont CloudFront traite les réponses d'erreur de votre origine, consultez Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront (p. 164). Créer ou mettre à jour un comportement de cache pour des pages d'erreur personnalisées Si vous souhaitez stocker vos objets et vos pages d'erreur personnalisées dans des emplacements différents, votre distribution doit inclure un comportement de cache pour lequel les conditions suivantes sont vraies : • La valeur de Path Pattern correspond au chemin d'accès de vos messages d'erreur personnalisés. Par exemple, supposons que vous avez enregistré des pages d'erreur personnalisées pour les erreurs 4xx dans un compartiment Amazon S3 d'un répertoire nommé /erreurs-4xx. Votre distribution doit inclure un comportement de cache pour lequel le modèle de chemin transmet les demandes de vos pages d'erreur personnalisées vers cet emplacement, par exemple, /erreurs-4xx/*. • La valeur d'Origin spécifie la valeur d'Origin ID pour l'origine qui contient vos pages d'erreur personnalisées. Pour plus d'informations, consultez Paramètres de comportement du cache (p. 66) dans la rubrique Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). Modifier des codes de réponse Vous pouvez choisir le code de statut HTTP que CloudFront renvoie avec une page d'erreur personnalisée pour un code de statut donné. Par exemple, si votre origine renvoie un code de statut 500 à CloudFront, vous pouvez souhaiter que CloudFront retourne une page d'erreur personnalisée et un code de statut 200 (OK) à la visionneuse. Il existe de nombreuses raisons pour lesquelles vous pouvez souhaiter que CloudFront renvoie à la visionneuse un code de statut différent de celui que votre origine a renvoyé à CloudFront : • Certains dispositifs Internet (certains pare-feu et proxys d'entreprise, par exemple) interceptent les codes HTTP 4xx et 5xx, et empêche le renvoi d'une réponse à la visionneuse. Si vous remplacez le code par 200, la réponse ne sera généralement pas interceptée. • Si vous n'avez pas besoin de faire la distinction entre les erreurs de client ou les erreurs de serveur, vous pouvez spécifier 400 ou 500 comme valeur renvoyée par CloudFront pour tous les codes de statut 4xx ou 5xx. • Vous pouvez souhaiter renvoyer un code de statut 200 (OK) et un site Web statique pour que vos clients ne sachent pas que votre site Web est en panne. API Version 2016-01-13 133 Amazon CloudFront Guide du développeur Contrôler pendant combien de temps CloudFront garde les erreurs en cache Si vous activez les journaux d'accès CloudFront et que vous configurez CloudFront pour modifier le code de statut HTTP dans la réponse, la valeur de la colonne sc-status dans les journaux d'accès contiendra le code de statut que vous spécifiez. Par contre, la valeur de la colonne x-edge-resulttype ne sera pas affectée ; elle contiendra toujours le type de résultat de la réponse de l'origine. Par exemple, supposons que vous configuriez CloudFront pour renvoyer un code de statut 200 à la visionneuse si l'origine renvoie 404 (Non trouvé) à CloudFront. Lorsque l'origine répond à une demande avec un code de statut 404, la valeur de la colonne sc-status dans le journal d'accès sera 200, mais la valeur de la colonne x-edge-result-type sera Error. Vous pouvez configurer CloudFront pour renvoyer l'un des codes de statut HTTP suivants avec une page d'erreur personnalisée : • 200 • 400, 403, 404, 405, 414, 416 • 500, 501, 502, 503, 504 Contrôler pendant combien de temps CloudFront garde les erreurs en cache Par défaut, lorsque votre origine renvoie un code de statut HTTP 4xx ou 5xx, CloudFront garde en cache ces réponses d'erreur pendant cinq minutes, puis soumet la demande suivante pour l'objet à votre origine pour voir si le problème qui a provoqué l'erreur est résolu et si l'objet demandé est maintenant disponible. Note Vous pouvez créer une page d'erreur personnalisée pour le code de statut HTTP 416 (Plage demandée impossible à respecter), et vous pouvez modifier le code de statut HTTP que CloudFront renvoie aux visionneuses quand votre origine retourne un code de statut 416 à CloudFront. (Pour plus d'informations, consultez Modifier des codes de réponse (p. 133).) Par contre, CloudFront ne met pas en cache le code de statut 416. Vous pouvez donc spécifier une valeur pour Error Caching Minimum TTL pour le code de statut 416, mais CloudFront ne l'utilise pas. Vous pouvez spécifier la durée de conservation des erreurs dans le cache (Error Caching Minimum TTL) pour chaque code de statut 4xx et 5xx mis en cache par CloudFront. Pour accéder à une procédure, consultez Configurer le comportement des réponses d'erreur (p. 135). Lorsque vous spécifiez une durée, veuillez noter les points suivants : • Si vous spécifiez une durée courte pour la conservation des erreurs dans le cache, CloudFront transmet plus de demandes à votre origine que si vous indiquez une durée plus longue. Pour les erreurs 5xx, cela peut aggraver le problème qui a initialement entraîné le renvoi d'une erreur par votre origine. • Lorsque votre origine renvoie une erreur pour un objet, CloudFront répond aux demandes pour l'objet avec la réponse d'erreur ou avec votre page d'erreur personnalisée jusqu'à ce que la durée de conservation des erreurs dans le cache soit écoulée. Si vous spécifiez une durée longue pour la conservation des erreurs dans le cache, CloudFront peut continuer à répondre aux demandes avec une réponse d'erreur ou une page d'erreur personnalisée pendant longtemps avant que l'objet redevienne disponible. Si vous souhaitez contrôler combien de temps CloudFront garde les erreurs en cache pour des objets individuels, vous pouvez configurer votre serveur d'origine de manière à ajouter l'en-tête applicable à la réponse d'erreur pour cet objet : API Version 2016-01-13 134 Amazon CloudFront Guide du développeur Réponse de CloudFront quand une page d'erreur personnalisée n'est pas disponible • Si l'origine ajoute une directive Cache-Control max-age ou Cache-Control s-maxage, ou un en-tête Expires : CloudFront garde en cache les réponses d'erreur en fonction de la valeur la plus élevée entre celle de l'en-tête et celle de Error Caching Minimum TTL. • Si l'origine ajoute d'autres directives Cache-Control ou n'ajoute aucun en-tête : CloudFront garde en cache les réponses d'erreur en fonction de la valeur de Error Caching Minimum TTL. Si le délai d'expiration pour un code de statut 4xx ou 5xx pour un objet est plus long que ce que vous souhaitez attendre, vous pouvez invalider le code de statut à l'aide de l'URL de l'objet demandé. Si votre origine renvoie une réponse d'erreur pour plusieurs objets, vous devez invalider chaque objet séparément. Pour en savoir plus sur l'invalidation d'objets, consultez Invalider des objets (distributions Web uniquement) (p. 125). Réponse de CloudFront quand une page d'erreur personnalisée n'est pas disponible Si vous configurez CloudFront pour renvoyer une page d'erreur personnalisée pour un code de statut, mais que la page d'erreur personnalisée n'est pas disponible, CloudFront renvoie à la visionneuse le code de statut que CloudFront a reçu de l'origine qui contient les pages d'erreur personnalisées. Par exemple, supposons que votre origine personnalisée renvoie un code de statut 500 et que vous avez configuré CloudFront pour extraire une page d'erreur personnalisée pour un code de statut 500 à partir d'un compartiment Amazon S3. Cependant, quelqu'un a supprimé par erreur la page d'erreur personnalisée de votre compartiment. CloudFront renverra un code de statut 404 (non trouvé) à la visionneuse qui a demandé l'objet. Tarification pour les pages d'erreur personnalisées Lorsque CloudFront renvoie une page d'erreur personnalisée à une visionneuse, vous payez les frais CloudFront standards pour la page d'erreur personnalisée, pas pour l'objet demandé. Pour plus d'informations sur les frais liés à CloudFront, consultez la section Tarification Amazon CloudFront. Configurer le comportement des réponses d'erreur Vous pouvez utiliser l'API ou la console CloudFront pour configurer les réponses d'erreur CloudFront. Pour des informations sur l'utilisation de l'API CloudFront pour configurer les réponses d'erreur, accédez à PUT Distribution Config dans le manuel Amazon CloudFront API Reference, et consultez l'élément CustomErrorResponses. Pour configurer les réponses d'erreur CloudFront à l'aide de la console 1. 2. Créez les pages d'erreur personnalisées que vous souhaitez que CloudFront renvoie à des visionneuses lorsque votre origine retourne des erreurs HTTP 4xx ou 5xx. Enregistrez les pages dans un emplacement qui soit accessible à CloudFront. Nous vous recommandons de stocker les pages d'erreur personnalisées dans un compartiment Amazon S3 même si vous utilisez une origine personnalisée. Si vous stockez les pages d'erreur personnalisées sur un serveur HTTP et que le serveur commence à renvoyer des erreurs 5xx, CloudFront ne peut pas extraire les fichiers que vous voulez retourner aux visionneuses, parce que le serveur d'origine n'est pas disponible. Vérifiez que vous avez accordé à CloudFront au moins une autorisation read sur vos objets de pages d'erreur personnalisées. Pour plus d'informations sur les autorisations Amazon S3, consultez Contrôle d'accès dans le manuel Amazon Simple Storage Service Manuel du développeur. Pour plus d'informations sur l'utilisation de la console Amazon S3 pour mettre à jour des autorisations, accédez au Guide de l'utilisateur de la console Amazon Simple Storage Service. API Version 2016-01-13 135 Amazon CloudFront Guide du développeur Traitement par CloudFront des demandes partielles pour un objet (Range GET) 3. 4. (Facultatif) Configurez votre serveur d'origine pour ajouter des directives Cache-Control ou un en-tête Expires avec la réponse d'erreur pour des objets spécifique, le cas échéant. Pour plus d'informations, consultez Contrôler pendant combien de temps CloudFront garde les erreurs en cache (p. 134). Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 5. Dans la liste de distributions, sélectionnez la distribution à mettre à jour, puis Distribution Settings. 6. Sélectionnez l'onglet Pages d'erreurs. Ensuite, choisissez Créer une réponse d'erreur personnalisée, ou sélectionnez un code d'erreur existant, puis Modifier. 7. Entrez les valeurs applicables. Pour plus d'informations, consultez Pages d'erreur personnalisées et mise en cache des erreurs (p. 77). 8. Si vous avez configuré CloudFront pour renvoyer des pages d'erreur personnalisées, ajoutez ou mettez à jour les comportements de cache applicables. Pour plus d'informations, consultez Créer ou mettre à jour un comportement de cache pour des pages d'erreur personnalisées (p. 133). Pour enregistrer les changements, sélectionnez Yes, Edit. 9. Traitement par CloudFront des demandes partielles pour un objet (Range GET) Pour un objet volumineux, le navigateur ou le client d'un utilisateur final peut effectuer plusieurs demandes GET et utiliser l'en-tête de demande Range pour télécharger l'objet en unités plus petites. Ces demandes de plages d'octets, parfois appelées demandes Range GET, améliore l'efficacité des téléchargements partiels et la récupération de transferts ayant partiellement échoué. Lorsque CloudFront reçoit une demande Range GET, il vérifie le cache dans l'emplacement périphérique qui a reçu la demande. Si le cache dans cet l'emplacement périphérique contient déjà l'objet entier ou la portion demandée de l'objet, CloudFront sert immédiatement la plage demandée à partir du cache. Si le cache ne contient pas la plage demandée, CloudFront transmet la demande à l'origine. (Pour optimiser les performances, CloudFront peut demander une plage plus grande que ce que le client a demandé dans Range GET.) Ce qui se produit dépend de si l'origine prend en charge les demandes Range GET : • Si l'origine prend en charge les demandes Range GET : Elle renvoie la plage demandée. CloudFront sert la plage demandée et la met également en cache pour les demandes futures. (Amazon S3 prend en charge les demandes Range GET, tout comme certains serveurs HTTP, par exemple, Apache et IIS. Pour plus d'informations sur le comportement de votre serveur HTTP, consultez la documentation de ce dernier.) • Si l'origine ne prend pas en charge les demandes Range GET : Elle renvoie l'objet entier. CloudFront sert l'objet entier et le met également en cache pour les demandes futures. Après que CloudFront a mis en cache l'objet entier dans le cache périphérique, il répond aux demandes Range GET en servant la plage demandée. Dans les deux cas, CloudFront commence à servir la plage demandée ou l'objet à l'utilisateur final dès l'arrivée du premier octet en provenance de l'origine. Note Si la visionneuse fait une demande Range GET et que l'origine renvoie TransferEncoding: chunked, CloudFront retourne l'objet entier à la visionneuse au lieu de la plage demandée. API Version 2016-01-13 136 Amazon CloudFront Guide du développeur Spécifier un objet racine par défaut (distributions Web uniquement) CloudFront respecte généralement la spécification RFC pour l'en-tête Range. Cependant si vos entêtes Range ne respectent pas les exigences suivantes, CloudFront renvoie un code de statut HTTP 200 avec l'objet entier au lieu du code de statut 206 avec les plages spécifiées : • Les plages doivent être répertoriées en ordre croissant. Par exemple, 100-200,300-400 est valide, mais pas 300-400,100-200. • Les plages ne doivent pas se chevaucher. Par exemple, 100-200,150-250 n'est pas valide. • Toutes les spécifications de plages doivent être valides. Par exemple, vous ne pouvez pas spécifier une valeur négative dans une plage. Pour plus d'informations sur l'en-tête de demande Range, consultez la « Section 14.35 Range » dans Hypertext Transfer Protocol -- HTTP/1.1 à l'adresse http://www.w3.org/Protocols/rfc2616/rfc2616sec14.html#sec14.35. Spécifier un objet racine par défaut (distributions Web uniquement) Vous pouvez configurer CloudFront pour renvoyer un objet spécifique (l'objet racine par défaut) lorsqu'un utilisateur final demande l'URL racine pour votre distribution plutôt qu'un objet de votre distribution. Spécifier un objet racine par défaut permet d'éviter d'exposer le contenu de votre distribution. Par exemple, la demande suivante pointe sur l'objet image.jpg : http://d111111abcdef8.cloudfront.net/image.jpg La demande suivante pointe sur l'URL racine de la même distribution plutôt que sur un objet particulier : http://d111111abcdef8.cloudfront.net/ Lorsque vous définissez un objet racine par défaut, une demande d'utilisateur final qui appelle la racine de votre distribution renvoie l'objet racine par défaut. Par exemple, si vous désignez le fichier index.html comme objet racine par défaut, une demande pour : http://d111111abcdef8.cloudfront.net/ renvoie : http://d111111abcdef8.cloudfront.net/index.html Cependant, si vous définissez un objet racine par défaut, une demande d'utilisateur final pour un sousrépertoire de votre distribution ne renvoie pas l'objet racine par défaut. Par exemple, supposons que index.html est votre objet racine par défaut et que CloudFront reçoit une demande d'utilisateur final pour un répertoire install sous votre distribution CloudFront : http://d111111abcdef8.cloudfront.net/install/ CloudFront ne renverra pas l'objet racine par défaut même si une copie de index.html apparaît dans le répertoire install. Si vous configurez votre distribution pour autoriser toutes les méthodes HTTP prises en charge par CloudFront, l'objet racine par défaut s'applique à toutes les méthodes. Par exemple, si votre l'objet racine par défaut est index.php et que vous écrivez votre application pour soumettre une demande POST à la racine de votre domaine (http://exemple.com), CloudFront enverra la demande à http:// exemple.com/index.php. API Version 2016-01-13 137 Amazon CloudFront Guide du développeur Spécifier un objet racine par défaut (distributions Web uniquement) Le comportement de l'objet racine par défaut CloudFront est différent de celui des documents d'index Amazon S3. Lorsque vous configurez un compartiment Amazon S3 comme site Web et que vous spécifiez le document d'index, Amazon S3 renvoie le document d'index même si un utilisateur demande un sous-répertoire du compartiment. (Une copie du document d'index doit apparaître dans chaque sous-répertoire.) Pour plus d'informations sur la configuration de compartiments Amazon S3 comme sites Web et sur les documents d'index, consultez le chapitre Hébergement de sites Web sur Amazon S3 dans le manuel Amazon Simple Storage Service Manuel du développeur. Important Souvenez-vous qu'un objet racine par défaut s'applique uniquement à votre distribution CloudFront. Vous devez quand-même gérer la sécurité pour votre origine. Par exemple, si vous utilisez une origine Amazon S3, vous devez quand-même définir vos ACL de compartiment Amazon S3 de façon appropriée pour assurer le niveau d'accès souhaité sur votre compartiment. Si vous ne définissez pas un objet racine par défaut, des demandes pour la racine de votre distribution sont transmises à votre serveur d'origine. Si vous utilisez une origine Amazon S3, l'un des éléments suivants peut être renvoyé : • Une liste des contenus de votre compartiment Amazon S3 : Sous l'une des conditions suivantes, les contenus de votre origine sont visibles pour quiconque utilise CloudFront pour accéder à votre distribution : • Votre compartiment n'est pas correctement configuré. • Les autorisations Amazon S3 sur le compartiment associé à votre distribution et sur les objets du compartiment accordent l'accès à quiconque. • Un utilisateur final accède à votre origine à l'aide de l'URL racine de votre origine. • Une liste des contenus privés de votre origine : Si vous configurez votre origine en tant que distribution privée (seuls CloudFront et vous-même y avez accès), les contenus du compartiment Amazon S3 associé à votre distribution sont visibles pour toute personne qui dispose des informations d'identification permettant d'accéder à votre distribution via CloudFront. Dans ce cas, les utilisateurs ne peuvent pas accéder à vos contenus via l'URL racine de votre origine. Pour plus d'informations sur la distribution de contenus privés, consultez Service d'un contenu privé via CloudFront (p. 168). • Erreur 403 – Interdit : CloudFront renvoie cette erreur si les autorisations sur le compartiment Amazon S3 associé à votre distribution ou les autorisations sur les objets de ce compartiment refusent à quiconque l'accès à CloudFront. Pour éviter d'exposer le contenu de votre distribution Web ou de renvoyer une erreur, exécutez la procédure suivante pour spécifier un objet racine par défaut. Pour spécifier un objet racine par défaut pour votre distribution 1. Chargez l'objet racine par défaut sur l'origine sur laquelle pointe votre distribution. Le fichier peut être de n'importe quel type pris en charge par CloudFront. Pour obtenir une liste de contraintes sur les noms de fichier, consultez la description de l'élément DefaultRootObject dans Type complexe DistributionConfig. Note Si le nom de fichier de l'objet racine par défaut est trop long ou contient un caractère non valide, CloudFront renvoie l'erreur HTTP 400 Bad Request InvalidDefaultRootObject. De plus, CloudFront garde le code en cache pendant cinq minutes et écrit les résultats dans les journaux d'accès. 2. Vérifiez que les autorisations sur l'objet accordent à CloudFront au moins l'accès read. API Version 2016-01-13 138 Amazon CloudFront Guide du développeur Service de fichiers compressés Pour plus d'informations sur les autorisations Amazon S3, consultez Contrôle d'accès dans le manuel Amazon Simple Storage Service Manuel du développeur. Pour plus d'informations sur l'utilisation de la console Amazon S3 pour mettre à jour des autorisations, accédez au Guide de l'utilisateur de la console Amazon Simple Storage Service. 3. Mettez à jour votre distribution pour faire référence à l'objet racine par défaut à l'aide de la console CloudFront ou de l'API CloudFront. Pour spécifier un objet racine par défaut à l'aide de la console CloudFront : a. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. b. Dans le volet supérieur de la liste de distributions, sélectionnez la distribution à mettre à jour. c. Dans le volet Distribution Details, sous l'onglet General, cliquez sur Edit. d. Dans la boîte de dialogue Edit Distribution, dans le champ Default Root Object, entrez le nom de fichier de l'objet racine par défaut. Entrez uniquement le nom de l'objet, par exemple, index.html. N'ajoutez pas / devant le nom de l'objet. e. Pour enregistrer les changements, cliquez sur Yes, Edit. Pour mettre à jour votre configuration à l'aide de l'API CloudFront, vous spécifiez une valeur pour l'élément DefaultRootObject de votre distribution. Pour plus d'informations sur l'utilisation de l'API CloudFront pour spécifier un objet racine par défaut, consultez PUT Distribution Config dans le manuel Amazon CloudFront API Reference. 4. Vérifiez que vous avez activé l'objet racine par défaut en demandant votre URL racine. Si votre navigateur n'affiche pas l'objet racine par défaut, effectuez les opérations suivantes : a. Vérifiez que votre distribution est entièrement déployée en affichant le statut de votre distribution sur la console CloudFront. b. Répétez les étapes 2 et 3 pour vérifier que vous avez accordé les autorisations correctes et que vous avez correctement mis à jour la configuration de votre distribution pour spécifier l'objet racine par défaut. Service de fichiers compressés Vous pouvez configurer CloudFront de façon à ce qu'il compresse automatiquement les fichiers de certains types et serve les fichiers compressés quand la demande inclut Accept-Encoding: gzip dans son en-tête. Lorsque le contenu est compressé, les téléchargements sont beaucoup plus rapides, parce que les fichiers sont plus petits (dans certains cas, inférieurs à un quart de la taille du fichier original). Notamment pour les fichiers JavaScript et CSS, un téléchargement plus rapide se traduit pour vos utilisateurs par un affichage plus rapide des pages web. De plus, comme le coût du transfert de données CloudFront repose sur la quantité totale de données servies, la remise de fichiers compressés est moins onéreuse que celle de fichiers non compressés. Important Une demande du navigateur doit inclure Accept-Encoding: gzip dans son en-tête, sans quoi CloudFront ne compresse pas le fichier demandé. Si vous utilisez une origine personnalisée, vous pouvez la configurer pour compresser les fichiers avec ou sans compression CloudFront. Votre origine peut compresser les types de fichier que CloudFront ne compresse pas. (Voir Types de fichier que CloudFront compresse (p. 142).) Si votre origine API Version 2016-01-13 139 Amazon CloudFront Guide du développeur Utilisation de CloudFront pour compresser votre contenu retourne un fichier compressé à CloudFront, CloudFront détecte que le fichier est compressé en fonction de la valeur de l'en-tête Content-Encoding et ne compresse pas à nouveau le fichier. Rubriques • Utilisation de CloudFront pour compresser votre contenu (p. 140) • Utilisation d'une origine personnalisée pour compresser le contenu (p. 143) Utilisation de CloudFront pour compresser votre contenu CloudFront peut compresser les fichiers pour les origines Amazon S3 et pour les origines personnalisées. Lorsque vous configurez CloudFront pour compresser votre contenu, vous spécifiez le paramètre dans vos comportements de cache. Lorsque vous configurez CloudFront pour compresser votre contenu, voici comment CloudFront sert votre contenu : 1. Vous créez ou mettez à jour une distribution CloudFront, et configurez CloudFront pour compresser le contenu. 2. Une visionneuse demande un fichier. Elle ajoute l'en-tête Accept-Encoding: gzip à la demande. Cela signifie qu'elle prend en charge le contenu compressé. 3. A l'emplacement périphérique, CloudFront contrôle le cache d'une version compressée du fichier référencé dans la demande. 4. Si le fichier compressé se trouve déjà dans le cache, CloudFront retourne le fichier à la visionneuse et ignore les étapes restantes. 5. Dans le cas contraire, CloudFront achemine la demande au serveur d'origine, qui peut être un compartiment Amazon S3 ou une origine personnalisée. Note Si CloudFront possède une version non compressée du fichier dans le cache, il transmet alors une demande à l'origine. 6. Le serveur d'origine retourne à CloudFront une version non compressée du fichier demandé. 7. CloudFront détermine si le fichier peut être compressé : • Le fichier doit être d'un type que CloudFront compresse. • La taille du fichier doit être comprise entre 1 000 et 10 000 000 octets. • La réponse doit inclure un en-tête Content-Length afin que CloudFront puisse déterminer si la taille du fichier se trouve dans la plage que CloudFront compresse. Si l'en-tête Content-Length est manquant, CloudFront ne compresse pas le fichier. • La réponse ne doit pas inclure d'en-tête Content-Encoding. 8. Si le fichier peut être compressé, CloudFront le compresse, retourne le fichier compressé à la visionneuse et l'ajoute au cache. 9. La visionneuse décompresse le fichier. Remarques : Types de fichier que CloudFront compresse CloudFront compresse les fichiers d'un grand nombre de types de fichier. Pour obtenir la liste complète, consultez Types de fichier que CloudFront compresse (p. 142). Tailles de fichier que CloudFront compresse CloudFront compresse les fichiers dont la taille est comprise entre 1 000 octets et 10 000 000 octets. API Version 2016-01-13 140 Amazon CloudFront Guide du développeur Utilisation de CloudFront pour compresser votre contenu En-tête Content-Length L'origine doit inclure un en-tête Content-Length dans la réponse afin que CloudFront puisse déterminer si la taille du fichier se trouve dans la plage que CloudFront compresse. Si l'en-tête Content-Length est manquant, CloudFront ne compresse pas le fichier. En-tête Etag Si vous configurez CloudFront de façon à compresser le contenu, CloudFront supprime l'en-tête de réponse ETag des fichiers qu'il compresse. Lorsque l'en-tête ETag est présent, CloudFront et votre origine peuvent l'utiliser pour déterminer si la version d'un fichier d'un cache périphérique CloudFront est identique à la version du serveur d'origine. Cependant, après la compression, les deux versions ne sont plus identiques. En conséquence, quand un fichier compressé expire et que CloudFront transmet une autre demande à votre origine, celle-ci retourne toujours le fichier à CloudFront au lieu d'un code d'état HTTP 304 (Non modifié). Contenu déjà présent dans les emplacements périphériques lorsque vous configurez CloudFront pour compresser les fichiers CloudFront compresse les fichiers dans chaque emplacement périphérique lorsqu'il obtient les fichiers depuis votre origine. Lorsque vous configurez CloudFront pour compresser le contenu, les fichiers qui se trouvent déjà dans les emplacements périphériques ne sont pas compressés. De plus, quand un fichier expire dans un emplacement périphérique et que CloudFront transmet une autre demande du fichier à votre origine, CloudFront ne compresse pas le fichier si votre origine retourne un code d'état HTTP 304, qui signifie que l'emplacement périphérique a déjà la dernière version du fichier. Si vous voulez que CloudFront compresse les fichiers qui se trouvent déjà dans les emplacements périphériques, vous devez invalider ces fichiers. Pour de plus amples informations, veuillez consulter Invalider des objets (distributions Web uniquement) (p. 125). L'origine personnalisée est déjà configurée pour compresser les fichiers Si vous configurez CloudFront pour compresser les fichiers et que CloudFront transmet les demandes à une origine personnalisée qui est également configurée pour compresser les fichiers, l'origine personnalisée inclut un en-tête Content-Encoding: gzip, qui indique que le fichier retourné par l'origine à CloudFront a déjà été compressé. CloudFront retourne le fichier mis en cache à la visionneuse et le met en cache dans l'emplacement périphérique. Note CloudFront ne compresse pas les fichiers si la réponse inclut un en-tête ContentEncoding, quelle qu'en soit la valeur. La demande n'inclut pas Accept-Encoding: gzip Si l'en-tête Accept-Encoding est absent de la demande, CloudFront remet un contenu non compressé. Si l'en-tête Accept-Encoding inclut des valeurs supplémentaires telles que deflate ou sdch, CloudFront les supprime avant de transmettre la demande au serveur d'origine. CloudFront est occupé Dans de rares cas, quand un emplacement périphérique CloudFront est inhabituellement occupé, certains fichiers peuvent ne pas être compressés. Configuration d'une distribution CloudFront pour compresser le contenu Pour configurer une distribution web afin de compresser le contenu, vous devez mettre à jour les comportements de cache applicables à l'aide de l'une des méthodes suivantes : • Console CloudFront : mettez à jour le paramètre Compress objects automatically. Pour de plus amples informations, veuillez consulter Création ou mise à jour d'une distribution web à l'aide de la console CloudFront (p. 56). API Version 2016-01-13 141 Amazon CloudFront Guide du développeur Utilisation de CloudFront pour compresser votre contenu • API CloudFront : modifiez la valeur de l'élément Compress en true. Pour plus de détails, consultez POST Distribution (pour créer une nouvelle distribution) ou PUT Distribution Config (pour mettre à jour une distribution existante). • L'un des SDK AWS : consultez la documentation du kit de développement logiciel (SDK) applicable sur la page Documentation AWS. • Interface de ligne de commande AWS : pour plus d'informations, consultez create-distribution ou update-distribution dans le manuel AWS Command Line Interface Reference. Types de fichier que CloudFront compresse Si vous configurez CloudFront de façon à compresser le contenu, CloudFront compresse les fichiers ayant les valeurs suivantes dans l'en-tête Content-Type : application/eot application/x-otf application/font application/x-perl application/font-sfnt application/x-ttf application/javascript font/eot application/json font/ttf application/opentype font/otf application/otf font/opentype application/pkcs7-mime image/svg+xml application/truetype text/css application/ttf text/csv application/vnd.ms-fontobject text/html application/xhtml+xml text/javascript application/xml text/js application/xml+rss text/plain application/x-font-opentype text/richtext application/x-font-truetype text/tab-separated-values application/x-font-ttf text/xml application/x-httpd-cgi text/x-script application/x-javascript text/x-component application/x-mpegurl text/x-java-source application/x-opentype API Version 2016-01-13 142 Amazon CloudFront Guide du développeur Utilisation d'une origine personnalisée pour compresser le contenu Utilisation d'une origine personnalisée pour compresser le contenu Si vous voulez compresser des types de fichier que CloudFront ne compresse pas, vous pouvez configurer votre origine personnalisée pour qu'elle compresse les fichiers de ces types à l'aide de gzip. CloudFront ne prend pas en charge d'autres algorithmes de compression. Quand votre origine retourne le fichier compressé à CloudFront, elle inclut un en-tête Content-Encoding: gzip, qui indique à CloudFront que le fichier est déjà compressé. Note CloudFront ne compresse pas les fichiers si la réponse inclut un en-tête Content-Encoding, quelle qu'en soit la valeur. Remise de fichiers compressés quand votre serveur d'origine exécute IIS Par défaut, IIS ne remet pas de contenu compressé aux demandes qui parviennent de serveurs proxy tels que CloudFront. Si vous utilisez IIS et si vous avez configuré IIS pour compresser le contenu en utilisant l'attribut httpCompressionelement, modifiez la valeur de l'attribut noCompressionForProxies en false de telle sorte qu'IIS retourne un contenu compressé à CloudFront. De plus, si vous avez des objets compressés qui sont demandés moins fréquemment qu'à quelques secondes d'intervalle, vous devrez peut-être modifier les valeurs de frequentHitThreshold et frequentHitTimePeriod. Pour plus d'informations, consultez la documentation IIS sur le site web Microsoft. Remise de fichiers compressés quand votre serveur d'origine exécute NGINX Quand CloudFront transmet une demande au serveur d'origine, il inclut un en-tête Via. Il s'ensuit que NGINX interprète la demande comme traitée par proxy et, par défaut, NGINX désactive la compression pour les demandes traitées par proxy. Si votre version de NGINX inclut le paramètre gzip_proxied, modifiez la valeur en any de telle sorte que NGINX retourne le contenu compressé à CloudFront. Pour plus d'informations, consultez la documentation NGINX relative au module ngx_http_gzip_module. API Version 2016-01-13 143 Amazon CloudFront Guide du développeur Comportement des demandes et des réponses pour les origines Amazon S3 Comportement des demandes et des réponses Les sections suivantes expliquent comment CloudFront traite les demandes de visionneuse et les transmet à votre origine Amazon S3 ou personnalisée, et comment CloudFront gère les réponses de votre origine, notamment comment CloudFront traite et met en cache les codes de statut HTTP 4xx et 5xx. Rubriques • Comportement des demandes et des réponses pour les origines Amazon S3 (p. 144) • Comportement des demandes et des réponses pour les origines personnalisées (p. 151) • Traitement des codes de statut HTTP 3xx provenant de votre origine par CloudFront (p. 164) • Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront (p. 164) Comportement des demandes et des réponses pour les origines Amazon S3 Rubriques • Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront (p. 144) • Traitement des réponses de votre serveur d'origine Amazon S3 par CloudFront (p. 149) Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront Pour plus d'informations sur la façon dont CloudFront traite les demandes de visionneuse et les transmet à votre origine Amazon S3, consultez la rubrique applicable : Rubriques • Durée de conservation dans le cache et durée de vie minimale (p. 145) API Version 2016-01-13 144 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront • Adresses IP client (p. 145) • • • • • Requêtes GET conditionnelles (p. 145) Cookies (p. 146) Partage des ressources cross-origine (CORS) (p. 146) Demandes GET qui incluent un corps de texte (p. 146) Méthodes HTTP (p. 146) • En-têtes de requête HTTP que CloudFront supprime ou met à jour (p. 147) • Longueur maximale d'une demande et longueur maximale d'une URL (p. 148) • OCSP Stapling (p. 148) • Protocoles (p. 148) • Chaînes de requête (p. 148) • Délai d'attente des demandes (p. 149) • Demandes simultanées pour le même objet (pics de trafic) (p. 149) Durée de conservation dans le cache et durée de vie minimale Pour les distributions Web, pour contrôler pendant combien de temps des objets restent dans le cache CloudFront avant que CloudFront ne transmette une autre demande à votre origine, vous pouvez : • Configurer votre origine pour ajouter un Cache-Control ou un champ d'en-tête Expires à chaque objet. • Spécifier une valeur de durée de vie minimale dans les comportements de cache CloudFront. • Utiliser la valeur par défaut de 24 heures. Pour de plus amples informations, veuillez consulter Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Adresses IP client Si une visionneuse envoie une demande à CloudFront et n'inclut pas un en-tête de demande XForwarded-For, CloudFront extrait l'adresse IP de la visionneuse de la connexion TCP, ajoute un en-tête X-Forwarded-For qui inclut l'adresse IP et transmet la demande à l'origine. Par exemple, si CloudFront extrait l'adresse IP 192.0.2.2 de la connexion TCP, il transmet l'en-tête suivant à l'origine : X-Forwarded-For: 192.0.2.2 Si une visionneuse envoie une demande à CloudFront et inclut un en-tête de demande XForwarded-For, CloudFront extrait l'adresse IP de la visionneuse de la connexion TCP, l'ajoute à la fin de l'en-tête X-Forwarded-For et transmet la demande à l'origine. Par exemple, si la demande de la visionneuse inclut X-Forwarded-For: 192.0.2.4,192.0.2.3 et que CloudFront extrait l'adresse IP 192.0.2.2 de la connexion TCP, il transmet l'en-tête suivant à l'origine : X-Forwarded-For: 192.0.2.4,192.0.2.3,192.0.2.2 Requêtes GET conditionnelles Lorsque CloudFront reçoit une demande pour un objet ayant expiré d'un cache périphérique, il transmet la demande à l'origine Amazon S3 pour obtenir la dernière version de l'objet ou avoir la confirmation de Amazon S3 que le cache périphérique CloudFront dispose déjà de la dernière version. Lorsque Amazon S3 a initialement envoyé l'objet à CloudFront, il a inclus une valeur ETag et une valeur LastModified dans la réponse. Dans la nouvelle demande que CloudFront transmet à Amazon S3, CloudFront ajoute les deux éléments suivants : API Version 2016-01-13 145 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront • Un en-tête If-Match ou If-None-Match qui contient la valeur ETag pour la version expirée de l'objet. • Un en-tête If-Modified-Since qui contient la valeur LastModified pour la version expirée de l'objet. Amazon S3 utilise ces informations pour déterminer si l'objet a été mis à jour, et donc, s'il doit renvoyer l'objet entier à CloudFront ou uniquement un code de statut HTTP 304 (non modifié). Cookies Amazon S3 ne traite pas les cookies. Si vous configurez un comportement pour transmettre des cookies à une origine Amazon S3, CloudFront transmet les cookies, mais Amazon S3 les ignore. Partage des ressources cross-origine (CORS) Si vous souhaitez que CloudFront respecte les paramètres de partage des ressources cross-origine d'Amazon S3, configurez CloudFront de manière à transmettre les en-têtes sélectionnés à Amazon S3. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Demandes GET qui incluent un corps de texte Si une demande GET de visionneuse inclut un corps de texte, CloudFront renvoie un code de statut HTTP 403 (Interdit) à la visionneuse. Méthodes HTTP Si vous configurez CloudFront pour traiter toutes les méthodes HTTP qu'il prend en charge, CloudFront accepte les demandes suivantes de visionneuses et les transmet à votre origine Amazon S3 : • DELETE • GET • HEAD • OPTIONS • PATCH • POST • PUT CloudFront met toujours en cache les réponses aux demandes GET et HEAD. Vous pouvez également configurer CloudFront pour mettre en cache les réponses aux demandes OPTIONS. CloudFront ne met pas en cache les réponses aux demandes qui utilisent d'autres méthodes. Si vous utilisez un compartiment Amazon S3 comme origine de votre distribution et que vous utilisez des identités d'accès à l'origine CloudFront, les demandes POST ne sont pas prises en charge dans certaines régions Amazon S3 et les demandes PUT de ces régions nécessitent un en-tête supplémentaire. Pour de plus amples informations, veuillez consulter Utilisation d'une identité d'accès à l'origine dans les régions Amazon S3 prenant uniquement en charge l'authentification Signature version 4 (p. 177). Si vous souhaitez utiliser des téléchargements en plusieurs composants pour ajouter des objets à un compartiment Amazon S3, vous devez ajouter une identité d'accès à l'origine CloudFront à votre distribution et attribuer les autorisations applicables à l'identité d'accès à l'origine. Pour de plus amples informations, veuillez consulter Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). API Version 2016-01-13 146 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront Caution Si vous configurez CloudFront pour accepter et transmettre à Amazon S3 l'ensemble des méthodes HTTP que CloudFront prend en charge, vous devez créer une identité d'accès à l'origine CloudFront pour limiter l'accès à votre contenu Amazon S3 et accorder les autorisations applicables à l'identité d'accès à l'origine. Par exemple, si vous configurez CloudFront pour accepter et transmettre ces méthodes parce que vous voulez utiliser PUT, vous devez configurer des stratégies de compartiment Amazon S3 ou des listes ACL de manière à gérer correctement les demandes DELETE, afin que les visionneuses ne puissent pas supprimer des ressources que vous ne les autorisez pas à supprimer. Pour de plus amples informations, veuillez consulter Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). Pour plus d'informations sur les opérations prises en charge par Amazon S3, consultez la documentation Amazon S3. En-têtes de requête HTTP que CloudFront supprime ou met à jour CloudFront supprime ou met à jour les champs d'en-tête suivants avant de transmettre des demandes à votre origine Amazon S3 : • Accept • Accept-Charset • Accept-Encoding – Si la valeur contient gzip, CloudFront transmet Accept-Encoding: gzip à votre origine Amazon S3. Si la valeur ne contient pas gzip, CloudFront supprime le champ d'en-tête Accept-Encoding avant de transmettre la demande à votre origine. • Accept-Language • Authorization : • Demandes GET et HEAD : CloudFront supprime le champ d'en-tête Authorization avant de transmettre la demande à votre origine. • Demandes OPTIONS : CloudFront supprime le champ d'en-tête Authorization avant de transmettre la demande à votre origine si vous configurez CloudFront pour mettre en cache les réponses aux demandes OPTIONS. CloudFront transmet le champ d'en-tête Authorization à votre origine si vous ne configurez pas CloudFront pour mettre en cache les réponses aux demandes OPTIONS. • Demandes DELETE, PATCH, POST et PUT : CloudFront ne supprime pas le champ d'en-tête avant de transmettre la demande à votre origine. • Connection – CloudFront remplace cet en-tête par Connection: Keep-Alive avant de transmettre la demande à votre origine Amazon S3. • Cookie – Si vous configurez CloudFront pour transmettre les cookies, celui-ci transmet le champ d'en-tête Cookie à votre origine Amazon S3. Sinon, CloudFront supprime le champ d'en-tête Cookie. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). • Expect • Host – CloudFront définit la valeur sur le nom du compartiment Amazon S3 qui est associé à l'objet demandé. • Proxy-Authorization • Referer • TE • Upgrade API Version 2016-01-13 147 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine Amazon S3 par CloudFront • User-Agent – CloudFront remplace la valeur du champ d'en-tête par Amazon CloudFront. Longueur maximale d'une demande et longueur maximale d'une URL La longueur maximale d'une demande, avec le chemin, la chaîne de requête (le cas échéant) et les entêtes inclus, est de 20480 octets. CloudFront crée une URL à partir de la demande. La longueur maximale de cette URL est de 8 192 caractères. Si une demande ou une URL dépasse ces limites, CloudFront renvoie le code de statut HTTP 413 (champs d'en-tête de demande trop grands) à la visionneuse, puis met fin à la connexion TCP avec la visionneuse. OCSP Stapling Lorsqu'une visionneuse soumet une requête HTTPS pour un objet, CloudFront ou la visionneuse doit vérifier auprès de l'autorité de certification (CA) que le certificat SSL pour le domaine n'a pas été révoqué. OCSP Stapling accélère la validation du certificat en permettant à CloudFront de valider le certificat et de mettre en cache la réponse de l'autorité de certification. Le client n'a donc pas besoin de valider le certificat directement auprès de l'autorité de certification. L'amélioration des performances d'OCSP Stapling est plus prononcée lorsque CloudFront reçoit de nombreuses requêtes HTTPS pour des objets dans le même domaine. Chaque serveur d'un emplacement périphérique CloudFront doit soumettre une demande de validation distincte. Lorsque CloudFront reçoit de nombreuses requêtes HTTPS pour le même domaine, chaque serveur dans l'emplacement périphérique reçoit rapidement une réponse de l'autorité de certification qu'il peut « agrafer » (staple) dans un paquet de l'établissement de la liaison SSL ; lorsque la visionneuse a vérifié que le certificat est valide, CloudFront peut servir l'objet demandé. Si votre distribution ne reçoit pas beaucoup de trafic dans un emplacement périphérique CloudFront, il est plus probable que les nouvelles demandes soient acheminées vers un serveur qui n'a pas encore validé le certificat auprès de l'autorité de certification. Dans ce cas, la visionneuse exécute séparément l'étape de validation et le serveur CloudFront sert l'objet. Ce serveur CloudFront soumet également une demande de validation à l'autorité de certification. De ce fait, la fois suivante qu'il reçoit une demande incluant le même nom de domaine, il dispose d'une réponse de validation de l'autorité de certification. Protocoles CloudFront transmet les requêtes HTTP ou HTTPS au serveur d'origine selon le protocole de la demande de la visionneuse (HTTP ou HTTPS). Important Si votre compartiment Amazon S3 est configuré comme point de terminaison de site Web, vous ne pouvez pas configurer CloudFront pour utiliser HTTPS afin de communiquer avec votre origine parce que Amazon S3 ne prend pas en charge les connexions HTTPS dans cette configuration. Chaînes de requête Pour les distributions Web, vous pouvez configurer CloudFront pour transmettre les paramètres de chaîne de requête à votre origine Amazon S3. Pour les distributions RTMP, CloudFront ne transmet pas les paramètres de chaîne de requête à votre origine. Pour de plus amples informations, veuillez API Version 2016-01-13 148 Amazon CloudFront Guide du développeur Traitement des réponses de votre serveur d'origine Amazon S3 par CloudFront consulter Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête (p. 106). Délai d'attente des demandes Le délai d'attente des demandes pour CloudFront dépend de la méthode HTTP : • Demandes GET et HEAD – Si Amazon S3 ne répond pas dans les 30 secondes ou s'arrête de répondre pendant 30 secondes, CloudFront annule la connexion et effectue deux tentatives supplémentaires pour contacter l'origine. Si l'origine ne répond pas lors de la troisième tentative, CloudFront réessaye jusqu'à ce qu'il reçoive une autre demande pour un contenu sur la même origine. • Demandes DELETE, OPTIONS, PATCH, POST et PUT – Si Amazon S3 ne répond pas dans les 30 secondes, CloudFront annule la connexion et ne réessaye pas de contacter l'origine. Le client peut soumettre à nouveau la demande si nécessaire. Le délai d'attente des demandes ne peut pas être modifié. Demandes simultanées pour le même objet (pics de trafic) Lorsqu'un emplacement périphérique CloudFront reçoit une demande pour un objet et que l'objet ne se trouve pas actuellement dans le cache ou que l'objet a expiré, CloudFront envoie immédiatement la demande à votre origine Amazon S3. En cas de pic de trafic (si des demandes supplémentaires pour le même objet arrivent sur l'emplacement périphérique avant que Amazon S3 réponde à la première demande), CloudFront s'interrompt brièvement avant de transmettre des demandes supplémentaires pour l'objet à votre origine. Généralement, la réponse à la première demande arrive sur l'emplacement périphérique CloudFront avant la réponse à des demandes ultérieures. Cette courte pause contribue à réduire toute charge inutile sur Amazon S3. Si les demandes supplémentaires ne sont pas identiques parce que, par exemple, vous avez configuré CloudFront pour effectuer la mise en cache en fonction d'en-têtes de demande ou de chaînes de requête, CloudFront transmet toutes les demandes uniques à votre origine. Lorsque la réponse de l'origine inclut un en-tête Cache-Control: no-cache, CloudFront transmet généralement la demande suivante pour le même objet à votre origine pour déterminer si l'objet a été mis à jour. Cependant, en cas de pic de trafic et lorsque CloudFront s'interrompt après avoir transmis la première demande à votre origine, plusieurs demandes de visionneuses peuvent arriver avant que CloudFront reçoive une réponse de l'origine. Lorsque CloudFront reçoit une réponse qui contient un en-tête Cache-Control: no-cache, il envoie l'objet dans la réponse à la visionneuse qui a effectué la demande d'origine et à toutes les visionneuses qui ont demandé l'objet au cours de la pause. Après l'arrivée de la réponse envoyée par l'origine, CloudFront transmet la demande de la visionneuse suivante pour le même objet à l'origine. Dans les journaux d'accès CloudFront, la première demande est identifiée comme Miss dans la colonne x-edge-result-type et toutes les demandes suivantes reçues par CloudFront lors de la pause sont identifiées comme Hit. Pour plus d'informations sur le format des fichiers de journaux d'accès, consultez Format de fichier journal de distribution web (p. 272). Traitement des réponses de votre serveur d'origine Amazon S3 par CloudFront Rubriques • Demandes annulées (p. 150) • En-têtes de réponse HTTP que CloudFront supprime ou met à jour (p. 150) • Taille maximale de fichier (p. 150) • Redirections (p. 150) API Version 2016-01-13 149 Amazon CloudFront Guide du développeur Traitement des réponses de votre serveur d'origine Amazon S3 par CloudFront Demandes annulées Si un objet n'est pas dans le cache périphérique et si une visionneuse met fin à une session (fermeture d'un navigateur par exemple) après que CloudFront a extrait l'objet de l'origine mais avant qu'il puisse fournir l'objet demandé, CloudFront ne met pas en cache l'objet dans l'emplacement périphérique. En-têtes de réponse HTTP que CloudFront supprime ou met à jour CloudFront supprime ou met à jour les champs d'en-tête suivants avant de transmettre la réponse de votre origine Amazon S3 à la visionneuse : • Set-Cookie – Si vous configurez CloudFront pour transmettre les cookies, celui-ci transmet le champ d'en-tête Set-Cookie aux clients. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). • Trailer • Transfer-Encoding – Si votre origine Amazon S3 renvoie ce champ d'en-tête, CloudFront définit la valeur sur chunked avant de renvoyer la réponse à la visionneuse. • Upgrade • Via – CloudFront définit la valeur sur : Via: 1.1 alphanumeric-string.cloudfront.net (CloudFront) avant de renvoyer la réponse à la visionneuse. Exemples : Via: 1.1 1026589cc7887e7a0dc7827b4example.cloudfront.net (CloudFront) Taille maximale de fichier La taille maximale d'un corps de réponse renvoyé par CloudFront à la visionneuse est de 20 Go. Cette taille inclut les réponses de transfert fragmentées qui ne spécifient pas la valeur d'en-tête ContentLength. Redirections Vous pouvez configurer un compartiment Amazon S3 pour rediriger toutes les demandes vers un autre nom d'hôte ; il peut s'agir d'un autre compartiment Amazon S3 ou d'un serveur HTTP. Si vous configurez un compartiment pour rediriger toutes les demandes et si le compartiment est l'origine pour une distribution CloudFront, nous vous recommandons de configurer le compartiment pour rediriger toutes les demandes à une distribution CloudFront à l'aide du nom de domaine pour la distribution (par exemple, d111111abcdef8.cloudfront.net) ou d'un autre nom de domaine (un CNAME) qui est associé à une distribution (par exemple, exemple.com). Sinon, les demandes de visionneuse contournent CloudFront et les objets sont servis directement à partir de la nouvelle origine. Note Si vous redirigez des demandes vers un nom de domaine alternatif, vous devez également mettre à jour le service DNS pour votre domaine en ajoutant un enregistrement CNAME. Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Voici ce qui se passe lorsque vous configurez un compartiment pour rediriger toutes les demandes : 1. Une visionneuse (par exemple, un navigateur) demande un objet de CloudFront. API Version 2016-01-13 150 Amazon CloudFront Guide du développeur Comportement des demandes et des réponses pour les origines personnalisées 2. CloudFront transmet la demande au compartiment Amazon S3 constituant l'origine pour votre distribution. 3. Amazon S3 renvoie un code de statut HTTP 301 (Déplacé de façon permanente), ainsi que le nouvel emplacement. 4. CloudFront met en cache le code de statut redirigé et le nouvel emplacement, et renvoie les valeurs à la visionneuse. CloudFront ne suit pas la redirection pour extraire l'objet du nouvel emplacement. 5. La visionneuse envoie une autre demande pour l'objet, mais cette fois, elle spécifie le nouvel emplacement obtenu de CloudFront : • Si le compartiment Amazon S3 redirige toutes les demandes à une distribution CloudFront, à l'aide du nom de domaine pour la distribution ou d'un nom de domaine alternatif, CloudFront demande l'objet au compartiment Amazon S3 ou au serveur HTTP dans le nouvel emplacement. Lorsque le nouvel emplacement renvoie l'objet, CloudFront le retourne à la visionneuse et le met en cache dans l'emplacement périphérique. • Si le compartiment Amazon S3 redirige des demandes vers un autre emplacement, la deuxième demande contourne CloudFront. Le compartiment Amazon S3 ou le serveur HTTP du nouvel emplacement renvoie l'objet directement à la visionneuse, si bien que l'objet n'est jamais mis en cache dans un cache périphérique CloudFront. Comportement des demandes et des réponses pour les origines personnalisées Rubriques • Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront (p. 151) • Traitement des réponses de votre serveur d'origine personnalisée par CloudFront (p. 161) Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront Pour plus d'informations sur la façon dont CloudFront traite les demandes de visionneuse et les transmet à votre origine personnalisée, consultez la rubrique applicable : Rubriques • Authentification (p. 152) • Durée de conservation dans le cache et durée de vie minimale (p. 152) • Adresses IP client (p. 152) • • • • Authentification SSL côté client (p. 153) Compression (p. 153) Demandes conditionnelles (p. 153) Cookies (p. 153) • • • • • Partage des ressources cross-origine (CORS) (p. 153) Chiffrement (p. 153) Demandes GET qui incluent un corps de texte (p. 154) Méthodes HTTP (p. 154) En-têtes de requête HTTP et comportement de CloudFront (p. 155) • Version de HTTP (p. 158) API Version 2016-01-13 151 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront • Longueur maximale d'une demande et longueur maximale d'une URL (p. 158) • OCSP Stapling (p. 159) • Connexions persistantes (p. 159) • Protocoles (p. 159) • Chaînes de requête (p. 160) • Délai d'attente des demandes (p. 160) • Demandes simultanées pour le même objet (pics de trafic) (p. 160) • En-tête d’agent utilisateur (p. 160) Authentification Pour les demandes DELETE, GET, HEAD, PATCH, POST et PUT, si vous configurez CloudFront pour transmettre l'en-tête Authorization à votre origine, vous pouvez configurer votre serveur d'origine pour demander une authentification du client. Pour les demandes OPTIONS, vous pouvez configurer votre serveur d'origine pour demander une authentification du client uniquement si vous utilisez les paramètres CloudFront suivants : • Configurer CloudFront de manière à transférer l'en-tête Authorization à votre origine • Configurer CloudFront de manière à ne pas mettre en cache les réponses aux demandes OPTIONS Vous pouvez configurer CloudFront afin de transmettre des demandes à votre origine à l'aide de HTTP ou HTTPS ; pour plus d'informations, consultez Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine (p. 239). Durée de conservation dans le cache et durée de vie minimale Pour les distributions Web, pour contrôler pendant combien de temps des objets restent dans le cache CloudFront avant que CloudFront ne transmette une autre demande à votre origine, vous pouvez : • Configurer votre origine pour ajouter un Cache-Control ou un champ d'en-tête Expires à chaque objet. • Spécifier une valeur de durée de vie minimale dans les comportements de cache CloudFront. • Utiliser la valeur par défaut de 24 heures. Pour de plus amples informations, veuillez consulter Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Adresses IP client Si une visionneuse envoie une demande à CloudFront et n'inclut pas un en-tête de demande XForwarded-For, CloudFront extrait l'adresse IP de la visionneuse de la connexion TCP, ajoute un en-tête X-Forwarded-For qui inclut l'adresse IP et transmet la demande à l'origine. Par exemple, si CloudFront extrait l'adresse IP 192.0.2.2 de la connexion TCP, il transmet l'en-tête suivant à l'origine : X-Forwarded-For: 192.0.2.2 Si une visionneuse envoie une demande à CloudFront et inclut un en-tête de demande XForwarded-For, CloudFront extrait l'adresse IP de la visionneuse de la connexion TCP, l'ajoute à la fin de l'en-tête X-Forwarded-For et transmet la demande à l'origine. Par exemple, si la demande de la visionneuse inclut X-Forwarded-For: 192.0.2.4,192.0.2.3 et que CloudFront extrait l'adresse IP 192.0.2.2 de la connexion TCP, il transmet l'en-tête suivant à l'origine : API Version 2016-01-13 152 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront X-Forwarded-For: 192.0.2.4,192.0.2.3,192.0.2.2 Certaines applications, comme des équilibreurs de charge (notamment Elastic Load Balancing), des pare-feu d'application Web, des proxys inverses, des systèmes de prévention d'intrusion et des passerelles API, ajoutent l'adresse IP au serveur périphérique CloudFront qui a transmis la demande à la fin de l'en-tête X-Forwarded-For. Par exemple, si CloudFront inclut X-Forwarded-For: 192.0.2.2 dans une demande qu'il transmet à ELB et que l'adresse IP du serveur périphérique CloudFront est 192.0.2.199, la demande reçue par votre instance EC2 contient l'en-tête suivant : X-Forwarded-For: 192.0.2.2,192.0.2.199 Authentification SSL côté client CloudFront ne prend pas en charge l'authentification avec des certificats SSL côté client. Si une origine demande un certificat côté client, CloudFront supprime la demande. Compression CloudFront transmet les demandes qui ont les valeurs de champ Accept-Encoding "identity" et "gzip". Pour de plus amples informations, veuillez consulter Service de fichiers compressés (p. 139). Demandes conditionnelles Lorsque CloudFront reçoit une demande pour un objet ayant expiré d'un cache périphérique, il transmet la demande à l'origine pour obtenir la dernière version de l'objet ou avoir la confirmation de l'origine que le cache périphérique CloudFront dispose déjà de la dernière version. Généralement, lorsque l'origine a envoyé l'objet à CloudFront la dernière fois, il a inclus une valeur ETag, une valeur LastModified, ou les deux valeurs, dans la réponse. Dans la nouvelle demande que CloudFront transmet à l'origine, CloudFront ajoute les deux éléments suivants : • Un en-tête If-Match ou If-None-Match qui contient la valeur ETag pour la version expirée de l'objet. • Un en-tête If-Modified-Since qui contient la valeur LastModified pour la version expirée de l'objet. L'origine utilise ces informations pour déterminer si l'objet a été mis à jour, et donc, s'il doit renvoyer l'objet entier à CloudFront ou uniquement un code de statut HTTP 304 (non modifié). Cookies Vous pouvez configurer CloudFront de manière à transmettre les cookies à votre origine. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Partage des ressources cross-origine (CORS) Si vous souhaitez que CloudFront respecte les paramètres de partage des ressources cross-origine, configurez CloudFront de manière à transmettre l'en-tête Origin votre origine. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Chiffrement Vous pouvez exiger que les visionneuses utilisent HTTPS pour envoyer les demandes à CloudFront et que CloudFront transmette les demandes à votre origine personnalisée à l'aide du protocole utilisé par la visionneuse. Pour plus d'informations, consultez les paramètres de distribution suivants : • Viewer Protocol Policy (p. 68) API Version 2016-01-13 153 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront • Stratégie de protocole de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 64) CloudFront transmet les requêtes HTTPS au serveur d'origine à l'aide des protocoles SSLv3, TLSv1.0, TLSv1.1 et TLSv1.2. Pour les origines personnalisées, vous pouvez choisir les protocoles SSL que CloudFront doit utiliser lors de la communication avec votre origine : • Si vous utilisez la console CloudFront, choisissez les protocoles à l'aide des cases à cocher Origin SSL Protocols. Pour de plus amples informations, veuillez consulter Création ou mise à jour d'une distribution web à l'aide de la console CloudFront (p. 56). • Si vous utilisez l'API CloudFront, spécifiez les protocoles à l'aide de l'élément OriginSslProtocols. Pour plus d'informations, consultez Type complexe DistributionConfig dans le manuel Amazon CloudFront API Reference. Si l'origine est un compartiment Amazon S3, CloudFront utilise toujours TLSv1.2. Important Les autres versions de SSL et TLS ne sont pas prises en charge. CloudFront transmet les requêtes HTTPS au serveur d'origine à l'aide des chiffrements suivants : • ECDHE-RSA-AES128-SHA • ECDHE-RSA-AES256-SHA • AES256-SHA • AES128-SHA • DES-CBC3-SHA • RC4-MD5 Votre serveur d'origine doit prendre en charge au moins l'un de ces chiffrements pour que CloudFront établisse une connexion SSL avec votre origine. Lors de l'établissement d'une connexion HTTPS avec l'origine, CloudFront ajoute une extension SNI (Server Name Indication) et inclut la valeur d'Origin Domain Name pour l'origine applicable dans votre distribution. Pour plus d'informations sur SNI, consultez la Section 3.1 de RFC 4366, Transport Layer Security (TLS) Extensions. Demandes GET qui incluent un corps de texte Si une demande GET de visionneuse inclut un corps de texte, CloudFront renvoie un code de statut HTTP 403 (Interdit) à la visionneuse. Méthodes HTTP Si vous configurez CloudFront pour traiter toutes les méthodes HTTP qu'il prend en charge, CloudFront accepte les demandes suivantes de visionneuses et les transmet à votre origine personnalisée : • • • • • DELETE GET HEAD OPTIONS PATCH • POST API Version 2016-01-13 154 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront • PUT CloudFront met toujours en cache les réponses aux demandes GET et HEAD. Vous pouvez également configurer CloudFront pour mettre en cache les réponses aux demandes OPTIONS. CloudFront ne met pas en cache les réponses aux demandes qui utilisent d'autres méthodes. Pour plus d'informations sur la façon de configurer si votre origine personnalisée traite ces méthodes, consultez la documentation de votre origine. Caution Si vous configurez CloudFront pour accepter et transmettre à votre origine toutes les méthodes HTTP prises en charge par CloudFront, configurez votre serveur d'origine pour traiter toutes les méthodes. Par exemple, si vous configurez CloudFront pour accepter et transmettre ces méthodes parce que vous voulez utiliser POST, vous devez configurer votre serveur d'origine de manière à gérer correctement les demandes DELETE, afin que les visionneuses ne puissent pas supprimer les ressources que vous ne les autorisez pas à supprimer. Pour plus d'informations, consultez la documentation de votre serveur HTTP. En-têtes de requête HTTP et comportement de CloudFront Le tableau suivant répertorie les en-têtes de requête HTTP et explique pour chacun des en-têtes les points suivants : • Le comportement de CloudFront si vous ne configurez pas CloudFront pour transmettre l'en-tête à votre origine, CloudFront ce qui entraîne la mise en cache par CloudFront de vos objets en fonction des valeurs d'en-tête. • Si vous pouvez configurer CloudFront pour mettre en cache des objets selon des valeurs d'en-tête pour cet en-tête. Vous pouvez configurer CloudFront pour mettre en cache des objets selon les valeurs des en-têtes Date et User-Agent, mais ceci n'est pas recommandé. Ces en-têtes possèdent de nombreuses valeurs possibles, et la mise en cache selon leurs valeurs entraînerait la transmission par CloudFront de beaucoup plus de demandes à votre origine. Pour plus d'informations sur la mise en cache selon des valeurs d'en-tête, consultez Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). En-tête Comportement si vous ne configurez pas CloudFront pour effectuer la mise en cache en fonction de valeurs d'en-tête. La mise en cache en fonction de valeurs d'entête est prise en charge En-têtes définis par le client CloudFront transmet les en-têtes à votre origine. Oui Accept CloudFront supprime l'en-tête. Oui Accept-Charset CloudFront supprime l'en-tête. Oui Accept-Encoding Si la valeur contient gzip, CloudFront transmet Accept-Encoding: gzip à votre origine. Non Si la valeur ne contient pas gzip, CloudFront supprime le champ d'en-tête Accept-Encoding avant de transmettre la demande à votre origine. API Version 2016-01-13 155 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront En-tête Comportement si vous ne configurez pas CloudFront pour effectuer la mise en cache en fonction de valeurs d'en-tête. La mise en cache en fonction de valeurs d'entête est prise en charge Accept-Language CloudFront supprime l'en-tête. Oui Authorization • Demandes GET et HEAD – CloudFront supprime le champ d'en-tête Authorization avant de transmettre la demande à votre origine. • Demandes OPTIONS – CloudFront supprime le champ d'en-tête Authorization avant de transmettre la demande à votre origine si vous configurez CloudFront pour mettre en cache les réponses aux demandes OPTIONS. Oui CloudFront transmet le champ d'en-tête Authorization à votre origine si vous ne configurez pas CloudFront pour mettre en cache les réponses aux demandes OPTIONS. • Demandes DELETE, PATCH, POST et PUT – CloudFront ne supprime pas le champ d'en-tête avant de transmettre la demande à votre origine. Cache-Control CloudFront transmet l'en-tête à votre origine. Non CloudFront-ForwardedProto CloudFront n'ajoute pas l'en-tête avant de transmettre la demande à votre origine. Oui Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction du protocole de la demande (p. 113). CloudFront-IsDesktop-Viewer CloudFront n'ajoute pas l'en-tête avant de transmettre la demande à votre origine. Oui Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction du type d'appareil (p. 113). CloudFront-Is-MobileViewer CloudFront n'ajoute pas l'en-tête avant de transmettre la demande à votre origine. Oui Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction du type d'appareil (p. 113). CloudFront-Is-TabletViewer CloudFront n'ajoute pas l'en-tête avant de transmettre la demande à votre origine. Oui Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction du type d'appareil (p. 113). CloudFront-ViewerCountry CloudFront n'ajoute pas l'en-tête avant de transmettre la demande à votre origine. API Version 2016-01-13 156 Oui Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront En-tête Comportement si vous ne configurez pas CloudFront pour effectuer la mise en cache en fonction de valeurs d'en-tête. La mise en cache en fonction de valeurs d'entête est prise en charge Connection CloudFront remplace cet en-tête par Connection: Keep-Alive avant de transmettre la demande à votre origine. Non Content-Length CloudFront transmet l'en-tête à votre origine. Non Content-MD5 CloudFront transmet l'en-tête à votre origine. Oui Content-Type CloudFront transmet l'en-tête à votre origine. Oui Cookie Si vous configurez CloudFront pour transmettre les cookies, il transmettra le champ d'en-tête Cookie à votre origine. Sinon, CloudFront supprime le champ d'en-tête Cookie. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Non Date CloudFront transmet l'en-tête à votre origine. Oui, mais non recommandé Expect CloudFront supprime l'en-tête. Oui From CloudFront transmet l'en-tête à votre origine. Oui Host CloudFront définit la valeur sur le nom de domaine de l'origine qui est associée à l'objet demandé. Oui If-Match CloudFront transmet l'en-tête à votre origine. Oui If-Modified-Since CloudFront transmet l'en-tête à votre origine. Oui If-None-Match CloudFront transmet l'en-tête à votre origine. Oui If-Range CloudFront transmet l'en-tête à votre origine. Oui If-Unmodified-Since CloudFront transmet l'en-tête à votre origine. Oui Max-Forwards CloudFront transmet l'en-tête à votre origine. Non Origin CloudFront transmet l'en-tête à votre origine. Oui Pragma CloudFront transmet l'en-tête à votre origine. Non Proxy-Authenticate CloudFront supprime l'en-tête. Non Proxy-Authorization CloudFront supprime l'en-tête. Non Proxy-Connection CloudFront supprime l'en-tête. Non Range CloudFront transmet l'en-tête à votre origine. Pour de plus amples informations, veuillez consulter Traitement par CloudFront des demandes partielles pour un objet (Range GET) (p. 136). Oui, par défaut Referer CloudFront supprime l'en-tête. Oui API Version 2016-01-13 157 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront En-tête Comportement si vous ne configurez pas CloudFront pour effectuer la mise en cache en fonction de valeurs d'en-tête. La mise en cache en fonction de valeurs d'entête est prise en charge Request-Range CloudFront transmet l'en-tête à votre origine. Non TE CloudFront supprime l'en-tête. Non Trailer CloudFront supprime l'en-tête. Non Transfer-Encoding CloudFront transmet l'en-tête à votre origine. Non Upgrade CloudFront supprime l'en-tête. Non User-Agent CloudFront remplace la valeur du champ d'en-tête par Amazon CloudFront. Si vous souhaitez que CloudFront mette en cache votre contenu selon l'appareil utilisé par l'utilisateur; consultez Configurer CloudFront pour mettre en cache des objets en fonction du type d'appareil (p. 113). Oui, mais non recommandé Via CloudFront transmet l'en-tête à votre origine. Oui Warning CloudFront transmet l'en-tête à votre origine. Oui X-Amz-Cf-Id CloudFront ajoute l'en-tête à la demande de la visionneuse avant de transmettre la demande à votre origine. La valeur d'en-tête contient une chaîne chiffrée qui identifie de façon unique la demande. Non X-Edge-* CloudFront supprime tous les en-têtes X-Edge-*. Non X-Forwarded-For CloudFront transmet l'en-tête à votre origine. Pour de Oui plus amples informations, veuillez consulter Adresses IP client (p. 152). X-Forwarded-Proto CloudFront supprime l'en-tête. Oui X-Real-IP CloudFront supprime l'en-tête. Non Version de HTTP CloudFront transmet les demandes à votre origine personnalisée à l'aide de HTTP/1.1. Longueur maximale d'une demande et longueur maximale d'une URL La longueur maximale d'une demande, avec le chemin, la chaîne de requête (le cas échéant) et les entêtes inclus, est de 20480 octets. CloudFront crée une URL à partir de la demande. La longueur maximale de cette URL est de 8 192 caractères. Si une demande ou une URL dépasse ces limites, CloudFront renvoie le code de statut HTTP 413 (champs d'en-tête de demande trop grands) à la visionneuse, puis met fin à la connexion TCP avec la visionneuse. API Version 2016-01-13 158 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront OCSP Stapling Lorsqu'une visionneuse soumet une requête HTTPS pour un objet, CloudFront ou la visionneuse doit vérifier auprès de l'autorité de certification (CA) que le certificat SSL pour le domaine n'a pas été révoqué. OCSP Stapling accélère la validation du certificat en permettant à CloudFront de valider le certificat et de mettre en cache la réponse de l'autorité de certification. Le client n'a donc pas besoin de valider le certificat directement auprès de l'autorité de certification. L'amélioration des performances d'OCSP Stapling est plus prononcée lorsque CloudFront reçoit de nombreuses requêtes HTTPS pour des objets dans le même domaine. Chaque serveur d'un emplacement périphérique CloudFront doit soumettre une demande de validation distincte. Lorsque CloudFront reçoit de nombreuses requêtes HTTPS pour le même domaine, chaque serveur dans l'emplacement périphérique reçoit rapidement une réponse de l'autorité de certification qu'il peut « agrafer » (staple) dans un paquet de l'établissement de la liaison SSL ; lorsque la visionneuse a vérifié que le certificat est valide, CloudFront peut servir l'objet demandé. Si votre distribution ne reçoit pas beaucoup de trafic dans un emplacement périphérique CloudFront, il est plus probable que les nouvelles demandes soient acheminées vers un serveur qui n'a pas encore validé le certificat auprès de l'autorité de certification. Dans ce cas, la visionneuse exécute séparément l'étape de validation et le serveur CloudFront sert l'objet. Ce serveur CloudFront soumet également une demande de validation à l'autorité de certification. De ce fait, la fois suivante qu'il reçoit une demande incluant le même nom de domaine, il dispose d'une réponse de validation de l'autorité de certification. Connexions persistantes Lorsque CloudFront obtient une réponse de votre origine, il essaye de maintenir la connexion pendant plusieurs secondes au cas où une autre demande arrive au cours de cette période. Maintenir une connexion persistante permet de gagner le temps requis pour ré-établir la connexion TCP et établir une autre liaison TLS pour les demandes ultérieures. Pour améliorer les performances, nous vous recommandons de configurer votre serveur d'origine afin d'autoriser les connexions persistantes. Protocoles CloudFront transmet les requêtes HTTP ou HTTPS au serveur d'origine selon les éléments suivants : • Le protocole de la demande que la visionneuse envoie à CloudFront, HTTP ou HTTPS. • La valeur du champ Origin Protocol Policy sur la console CloudFront ou, si vous utilisez l'API CloudFront, l'élément OriginProtocolPolicy du type complexe DistributionConfig. Dans la console CloudFront, les options sont HTTP Only, HTTPS Only et Match Viewer. Si vous spécifiez HTTP Only ou HTTPS Only, CloudFront transmet les demandes au serveur d'origine selon le protocole spécifié, quel que soit le protocole de la demande de la visionneuse. Si vous spécifiez Match Viewer, CloudFront transmet les demandes au serveur d'origine selon le protocole de la demande de la visionneuse. Notez que CloudFront ne met l'objet en cache qu'une seule fois, même si les visionneuses émettent des demandes à l'aide des protocoles HTTP et HTTPS. Caution Si CloudFront transmet une demande à l'origine via le protocole HTTPS et que le serveur d'origine renvoie un certificat non valide ou un certificat auto-signé, CloudFront annule la connexion TCP. Pour plus d'informations sur comment mettre à jour une distribution à l'aide de la console CloudFront, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). Pour plus d'informations sur comment mettre à jour une distribution à l'aide de l'API CloudFront, consultez PUT Distribution Config dans le manuel Amazon CloudFront API Reference. API Version 2016-01-13 159 Amazon CloudFront Guide du développeur Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront Chaînes de requête Vous pouvez configurer CloudFront pour transmettre les paramètres de chaîne de requête à votre origine. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête (p. 106). Délai d'attente des demandes Le délai d'attente des demandes pour CloudFront dépend de la méthode HTTP : • Demandes GET et HEAD – Si l'origine ne répond pas dans les 30 secondes ou s'arrête de répondre pendant 30 secondes, CloudFront annule la connexion et effectue deux tentatives supplémentaires pour contacter l'origine. Si l'origine ne répond pas lors de la troisième tentative, CloudFront réessaye jusqu'à ce qu'il reçoive une autre demande pour un contenu sur la même origine. • Demandes DELETE, OPTIONS, PATCH, POST et POST – Si l'origine ne répond pas dans les 30 secondes, CloudFront supprime la connexion et ne réessaye pas de contacter l'origine. Le client peut soumettre à nouveau la demande si nécessaire. Le délai d'attente des demandes ne peut pas être modifié. Demandes simultanées pour le même objet (pics de trafic) Lorsqu'un emplacement périphérique CloudFront reçoit une demande pour un objet et que l'objet ne se trouve pas actuellement dans le cache ou que l'objet a expiré, CloudFront envoie immédiatement la demande à votre origine. En cas de pic de trafic (si des demandes supplémentaires pour le même objet arrivent sur l'emplacement périphérique avant que votre origine réponde à la première demande), CloudFront s'interrompt brièvement avant de transmettre des demandes supplémentaires pour l'objet à votre origine. Généralement, la réponse à la première demande arrive sur l'emplacement périphérique CloudFront avant la réponse à des demandes ultérieures. Cette courte pause contribue à réduire toute charge inutile sur votre serveur d'origine. Si les demandes supplémentaires ne sont pas identiques parce que, par exemple, vous avez configuré CloudFront pour effectuer la mise en cache en fonction d'en-têtes de demande ou de cookies, CloudFront transmet toutes les demandes uniques à votre origine. En-tête d’agent utilisateur Si vous souhaitez que CloudFront mette en cache différentes versions de vos objets en fonction de l'appareil grâce auquel un utilisateur visualise votre contenu, nous vous recommandons de configurer CloudFront pour transmettre les en-têtes applicables à votre origine personnalisée : • CloudFront-Is-Desktop-Viewer • CloudFront-Is-Mobile-Viewer • CloudFront-Is-SmartTV-Viewer • CloudFront-Is-Tablet-Viewer 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 avant de transmettre la demande à votre origine. Si un appareil entre dans plusieurs catégories, plusieurs valeurs peuvent être true. Par exemple, pour certaines tablettes, CloudFront peut définir CloudFront-Is-Mobile-Viewer et CloudFront-Is-Tablet-Viewer sur true. Pour plus d'informations sur la configuration de CloudFront afin d'effectuer la mise en cache selon les entêtes de demande, consultez Configurer CloudFront pour mettre en cache des objets en fonction d'entêtes de demande (p. 110). Vous pouvez configurer CloudFront pour mettre en cache des objets selon les valeurs de l'en-tête User-Agent, mais ceci n'est pas recommandé. L'en-tête User-Agent possède de nombreuses API Version 2016-01-13 160 Amazon CloudFront Guide du développeur Traitement des réponses de votre serveur d'origine personnalisée par CloudFront valeurs possibles, et la mise en cache selon ces valeurs entraînerait la mise en cache par CloudFront de beaucoup plus de demandes à votre origine. Si vous ne configurez pas CloudFront pour mettre en cache les objets en fonction des valeurs de l'entête User-Agent, CloudFront CloudFront ajoute un en-tête User-Agent avec les valeurs suivantes avant de transmettre une demande à votre origine. User-Agent = Amazon CloudFront CloudFront ajoute cet en-tête que la demande de la visionneuse inclue un en-tête User-Agent ou non. Si la demande de la visionneuse inclut un en-tête User-Agent, CloudFront le supprime. Traitement des réponses de votre serveur d'origine personnalisée par CloudFront Pour plus d'informations sur la façon dont CloudFront traite les réponses de vos serveurs d'origine personnalisée, consultez la rubrique applicable : Rubriques • Mise en cache (p. 161) • Demandes annulées (p. 161) • Négociation de contenu (p. 161) • Cookies (p. 162) • Connexions TCP annulées (p. 162) • En-têtes de réponse HTTP que CloudFront supprime ou met à jour (p. 162) • Taille maximale de fichier (p. 163) • Origine non disponible (p. 163) • Redirections (p. 163) • Encodage de transfert (p. 164) Mise en cache • Assurez-vous que le serveur d'origine définit des valeurs valides et précises pour les champs d'entête Date et Last-Modified. • Si des demandes de visionneuses incluent les champs d'en-tête de demande If-Match ou IfNone-Match, définissez le champ d'en-tête de réponse ETag. Si vous ne spécifiez pas une valeur ETag, CloudFront ignore les en-têtes If-Match ou If-None-Match ultérieurs. • CloudFront respecte normalement un en-tête Cache-Control: no-cache dans la réponse d'une origine. Pour une exception, consultez Demandes simultanées pour le même objet (pics de trafic) (p. 160). Demandes annulées Si un objet n'est pas dans le cache périphérique et si une visionneuse met fin à une session (fermeture d'un navigateur par exemple) après que CloudFront a extrait l'objet de l'origine mais avant qu'il puisse fournir l'objet demandé, CloudFront ne met pas en cache l'objet dans l'emplacement périphérique. Négociation de contenu Si votre origine renvoie Vary:* dans la réponse et que la valeur de Minimum TTL pour le comportement de cache correspondant est 0, CloudFront met en cache l'objet mais transmet quandAPI Version 2016-01-13 161 Amazon CloudFront Guide du développeur Traitement des réponses de votre serveur d'origine personnalisée par CloudFront même chaque demande ultérieure pour l'objet à l'origine pour vérifier que le cache contient la dernière version de l'objet. Si votre origine renvoie Vary:* dans la réponse et que la valeur de Minimum TTL pour le comportement de cache correspondant est n'importe quelle autre valeur, CloudFront traite l'entête Vary comme décrit dans En-têtes de réponse HTTP que CloudFront supprime ou met à jour (p. 162). Cookies Si vous activez les cookies pour un comportement de cache et si l'origine renvoie des cookies avec un objet, CloudFront met en cache l'objet et les cookies. Notez que cela réduit la capacité de mise en cache pour un objet. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Connexions TCP annulées Si la connexion TCP entre CloudFront et votre origine est annulée pendant que votre origine renvoie un objet à CloudFront, le comportement de CloudFront dépend de si votre origine incluait un en-tête Content-Length dans la réponse : • En-tête Content-Length – CloudFront renvoie l'objet à la visionneuse lorsqu'il obtient l'objet de votre origine. Cependant, si la valeur de l'en-tête Content-Length ne correspond pas à la taille de l'objet, CloudFront ne met pas l'objet en cache. • Transfer-Encoding: Chunked – CloudFront renvoie l'objet à la visionneuse lorsqu'il obtient l'objet de votre origine. Cependant, si la réponse fragmentée n'est pas complète, CloudFront ne met pas l'objet en cache. • En-tête No Content-Length – CloudFront renvoie l'objet à la visionneuse et le met en cache, mais l'objet peut ne pas être complet. Sans en-tête Content-Length, CloudFront ne peut pas déterminer si la connexion TCP a été est annulée délibérément ou par erreur. Nous vous recommandons de configurer votre serveur HTTP pour ajouter un en-tête ContentLength afin d'empêcher CloudFront de mettre en cache des objets partiels. En-têtes de réponse HTTP que CloudFront supprime ou met à jour CloudFront supprime ou met à jour les champs d'en-tête suivants avant de transmettre la réponse de votre origine à la visionneuse : • Set-Cookie – Si vous configurez CloudFront pour transmettre les cookies, celui-ci transmet le champ d'en-tête Set-Cookie aux clients. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). • Trailer • Transfer-Encoding – Si votre origine renvoie ce champ d'en-tête, CloudFront définit la valeur sur chunked avant de renvoyer la réponse à la visionneuse. • Upgrade • Vary – Remarques : • Si vous configurez CloudFront pour transmettre des en-têtes spécifiques aux appareils à votre origine (CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer, CloudFrontIs-SmartTV-Viewer, CloudFront-Is-Tablet-Viewer) et que vous configurez votre origine pour renvoyer Vary:User-Agent à CloudFront, CloudFront renvoie Vary:User-Agent à la visionneuse. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction du type d'appareil (p. 113). API Version 2016-01-13 162 Amazon CloudFront Guide du développeur Traitement des réponses de votre serveur d'origine personnalisée par CloudFront • Si vous configurez votre origine pour inclure Accept-Encoding ou Cookie dans l'en-tête Vary, CloudFront inclut les valeurs dans la réponse à la visionneuse.. • Si vous configurez CloudFront pour transmettre une liste blanche d'en-têtes à votre origine et que vous configurez CloudFront pour renvoyer les noms d'en-tête à CloudFront dans l'en-tête Vary (par exemple, Vary:Accept-Charset,Accept-Language), CloudFront renvoie l'en-tête Vary avec ces valeurs à la visionneuse. • Pour plus d'informations sur la façon dont CloudFront traite une valeur * dans l'en-tête Vary, consultez Négociation de contenu (p. 161). • Si vous configurez votre origine pour inclure d'autres valeurs dans l'en-tête Vary, CloudFront supprime les valeurs avant de renvoyer la réponse à la visionneuse. • Via – Que votre origine renvoie ce champ d'en-tête à CloudFront ou non, CloudFront définit la valeur sur : Via: 1.1 alphanumeric-string.cloudfront.net (CloudFront) avant de renvoyer la réponse à la visionneuse. Exemples : Via: 1.1 1026589cc7887e7a0dc7827b4example.cloudfront.net (CloudFront) Taille maximale de fichier La taille maximale d'un corps de réponse renvoyé par CloudFront à la visionneuse est de 20 Go. Cette taille inclut les réponses de transfert fragmentées qui ne spécifient pas la valeur d'en-tête ContentLength. Origine non disponible Si votre serveur d'origine n'est pas disponible et que CloudFront obtient une demande pour un objet figurant dans le cache périphérique mais ayant expiré (par exemple, parce que la période spécifiée dans la directive Cache-Control max-age est écoulée), CloudFront sert la version expirée de l'objet ou sert une page d'erreur personnalisée. Pour de plus amples informations, veuillez consulter Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront (p. 164). Dans certains cas, un objet qui est rarement demandé est expulsé et n'est plus disponible dans le cache périphérique. CloudFront ne peut pas servir un objet qui a été expulsé. Redirections Si vous changez l'emplacement d'un objet sur le serveur d'origine, vous pouvez configurer votre serveur Web afin de rediriger les demandes vers le nouvel emplacement. Une fois que vous avez configuré la redirection, la première fois qu'une visionneuse soumet une demande pour un objet, CloudFront Front envoie la demande à l'origine et l'origine répond avec une redirection (par exemple, 302 Moved Temporarily). CloudFront met en cache la redirection et la renvoie à la visionneuse. CloudFront ne suit pas la redirection. Vous pouvez configurer votre serveur Web afin de rediriger les demandes vers l'un des emplacements suivants : • La nouvelle URL de l'objet sur le serveur d'origine. Lorsque la visionneuse suit la redirection vers la nouvelle URL, il contourne CloudFront et accède directement à l'origine. Par conséquent, nous vous recommandons de ne pas rediriger des demandes vers la nouvelle URL de l'objet sur l'origine. • La nouvelle URL CloudFront pour l'objet. Lorsque la visionneuse soumet la demande qui contient la nouvelle URL CloudFront, CloudFront extrait l'objet du nouvel emplacement sur votre origine, le met en cache sur l'emplacement périphérique et renvoie l'objet à la visionneuse. Les demandes API Version 2016-01-13 163 Amazon CloudFront Guide du développeur Traitement des codes de statut HTTP 3xx provenant de votre origine par CloudFront suivantes pour l'objet seront servies par l'emplacement périphérique. Ceci évite la latence et la charge associées aux visionneuses qui demandent l'objet à l'origine. Cependant, chaque nouvelle demande pour l'objet occasionne des frais pour deux demandes à CloudFront. Encodage de transfert CloudFront prend en charge uniquement la valeur chunked de l'en-tête Transfer-Encoding. Si votre origine retourne Transfer-Encoding: chunked, CloudFront renvoie l'objet au client lorsque l'objet est reçu sur l'emplacement périphérique et met l'objet en cache au format fragmenté pour les demandes suivantes. Si la visionneuse fait une demande Range GET et que l'origine renvoie Transfer-Encoding: chunked, CloudFront retourne l'objet entier à la visionneuse au lieu de la plage demandée. Nous vous recommandons d'utiliser un encodage fragmenté si la longueur du contenu de votre réponse ne peut pas être prédéterminé. Pour de plus amples informations, veuillez consulter Connexions TCP annulées (p. 162). Traitement des codes de statut HTTP 3xx provenant de votre origine par CloudFront Lorsque CloudFront demande un objet de votre compartiment Amazon S3 ou de votre serveur d'origine personnalisé, votre origine renvoie parfois un code de statut HTTP 3xx qui indique généralement que l'URL a changé (301, Déplacé de façon permanente, ou 307, Redirection temporaire) ou que l'objet n'a pas été modifié depuis la dernière fois que CloudFront l'a demandé (304, Non modifié). CloudFront met en cache les réponses 3xx pendant la durée spécifiée par les paramètres de votre distribution CloudFront et par les champs d'en-tête renvoyés par votre origine avec un objet. Pour de plus amples informations, veuillez consulter Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Si votre origine renvoie un code de statut 301 ou 307, CloudFront ne suit pas la redirection vers le nouvel emplacement. Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront Rubriques • Traitement des erreurs par CloudFront lorsque vous avez configuré des pages d'erreur personnalisées (p. 165) • Traitement des erreurs par CloudFront lorsque vous n'avez pas configuré des pages d'erreur personnalisées (p. 166) • Codes de statut HTTP 4xx et 5xx mis en cache par CloudFront (p. 167) Lorsque CloudFront demande un objet de votre compartiment Amazon S3 ou votre serveur d'origine personnalisée, votre origine renvoie parfois un code de statut HTTP 4xx ou 5xx qui indique qu'une erreur s'est produite. Le comportement de CloudFront dépend des points suivants : API Version 2016-01-13 164 Amazon CloudFront Guide du développeur Traitement des erreurs par CloudFront lorsque vous avez configuré des pages d'erreur personnalisées • Si vous avez configuré des pages d'erreur personnalisées. • Si vous avez configuré pendant combien de temps CloudFront doit mettre en cache les réponses d'erreur de votre origine (durée de conservation minimale des erreurs dans le cache). • Le code de statut. • Pour les codes de statut 5xx, si l'objet demandé figure actuellement dans le cache périphérique CloudFront. Pour plus d'informations sur les paramètres de pages d'erreur personnalisées sur la console CloudFront, consultez Pages d'erreur personnalisées et mise en cache des erreurs (p. 77). Pour plus d'informations sur la durée de conservation minimale des erreurs dans le cache sur la console CloudFront, consultez Durée de vie minimale (TTL) de la mise en cache des erreurs (p. 78). Pour une liste des codes de statut HTTP mis en cache par CloudFront, consultez Codes de statut HTTP 4xx et 5xx mis en cache par CloudFront (p. 167). Si vous avez activé la journalisation, CloudFront écrit les résultats dans les journaux quel que soit le code de statut HTTP. Traitement des erreurs par CloudFront lorsque vous avez configuré des pages d'erreur personnalisées Si vous avez configuré des pages d'erreur personnalisées;, le comportements de CloudFront dépend de si l'objet demandé est dans le cache périphérique. L'objet demandé n'est pas dans le cache périphérique CloudFront continue d'essayer d'extraire l'objet demandé de votre origine lorsque que toutes les conditions suivantes sont réunies : • Une visionneuse demande un objet • L'objet n'est pas dans le cache périphérique • Votre origine renvoie un code de statut HTTP 4xx ou 5xx au lieu d'un code de statut 304 (Non modifié) ou une version mise à jour de l'objet CloudFront exécute les opérations suivantes : 1. Dans le cache périphérique CloudFront qui a reçu la demande de la visionneuse, CloudFront vérifie la configuration de votre distribution et obtient le chemin de la page d'erreur personnalisée qui correspond au code de statut renvoyé par votre origine. 2. CloudFront recherche le premier comportement de cache de votre distribution dont un modèle de chemin correspond au chemin de la page d'erreur personnalisée. 3. L'emplacement périphérique CloudFront envoie une demande pour une page d'erreur personnalisée à l'origine qui est spécifiée dans le comportement de cache. 4. L'origine renvoie la page d'erreur personnalisée à l'emplacement périphérique. 5. CloudFront renvoie la page d'erreur personnalisée à la visionneuse qui a fait la demande et met également en cache les pages d'erreur personnalisées pendant la durée spécifiée par la durée de conservation minimale des erreurs dans le cache (cinq minutes par défaut). 6. Une fois la durée de conservation minimale des erreurs dans le cache écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. CloudFront continue de réessayer selon les intervalles spécifiés par la durée de conservation minimale des erreurs dans le cache. API Version 2016-01-13 165 Amazon CloudFront Guide du développeur Traitement des erreurs par CloudFront lorsque vous n'avez pas configuré des pages d'erreur personnalisées L'objet demandé est dans le cache périphérique CloudFront continue de servir l'objet figurant actuellement dans le cache périphérique lorsque que toutes les conditions suivantes sont réunies : • Une visionneuse demande un objet • L'objet est dans le cache périphérique mais il a expiré • Votre origine renvoie un code de statut HTTP 4xx ou 5xx au lieu d'un code de statut 304 (Non modifié) ou une version mise à jour de l'objet CloudFront exécute les opérations suivantes : 1. Si votre origine renvoie un code de statut 5xx, CloudFront sert l'objet même s'il a expiré. Pendant la période correspondant à la durée de conservation minimale des erreurs dans le cache, CloudFront continue de répondre aux demandes de visionneuse en servant l'objet à partir du cache périphérique. Si votre origine renvoie un code de statut 4xx, CloudFront retourne le code de statut, et non l'objet demandé, à la visionneuse. 2. Une fois la durée de conservation minimale des erreurs dans le cache écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. Notez que si l'objet n'est pas souvent demandé, CloudFront peut l'exclure du cache périphérique alors que votre serveur d'origine renvoie encore des réponses 5xx. Pour plus d'informations sur la durée pendant laquelle des objets restent dans les caches périphériques CloudFront, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Traitement des erreurs par CloudFront lorsque vous n'avez pas configuré des pages d'erreur personnalisées Si vous n'avez pas configuré des pages d'erreur personnalisées;, le comportements de CloudFront dépend de si l'objet demandé est dans le cache périphérique. L'objet demandé n'est pas dans le cache périphérique CloudFront continue d'essayer d'extraire l'objet demandé de votre origine lorsque que toutes les conditions suivantes sont réunies : • Une visionneuse demande un objet • L'objet n'est pas dans le cache périphérique • Votre origine renvoie un code de statut HTTP 4xx ou 5xx au lieu d'un code de statut 304 (Non modifié) ou une version mise à jour de l'objet CloudFront exécute les opérations suivantes : 1. CloudFront renvoie le code de statut 4xx ou 5xx à la visionneuse. 2. CloudFront met également en cache le code de statut du cache périphérique qui a reçu la demande. 3. Pendant la période correspondant à la durée de conservation minimale des erreurs dans le cache (cinq minutes par défaut), CloudFront répond aux demandes de visionneuse suivantes pour le même objet avec le code de statut 4xx ou 5xx mis en cache. 4. Une fois la durée de conservation minimale des erreurs dans le cache écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. API Version 2016-01-13 166 Amazon CloudFront Guide du développeur Codes de statut HTTP 4xx et 5xx mis en cache par CloudFront L'objet demandé est dans le cache périphérique CloudFront continue de servir l'objet figurant actuellement dans le cache périphérique lorsque que toutes les conditions suivantes sont réunies : • Une visionneuse demande un objet • L'objet est dans le cache périphérique mais il a expiré • Votre origine renvoie un code de statut HTTP 4xx ou 5xx au lieu d'un code de statut 304 (Non modifié) ou une version mise à jour de l'objet CloudFront exécute les opérations suivantes : 1. Si votre origine renvoie un code d'erreur 5xx, CloudFront sert l'objet même s'il a expiré. Pendant la période correspondant à la durée de conservation minimale des erreurs dans le cache (cinq minutes par défaut), CloudFront continue de répondre aux demandes de visionneuse en servant l'objet à partir du cache périphérique. Si votre origine renvoie un code de statut 4xx, CloudFront retourne le code de statut, et non l'objet demandé, à la visionneuse. 2. Une fois la durée de conservation minimale des erreurs dans le cache écoulée, CloudFront tente à nouveau d'obtenir l'objet demandé en transmettant une autre demande à votre origine. Notez que si l'objet n'est pas souvent demandé, CloudFront peut l'exclure du cache périphérique alors que votre serveur d'origine renvoie encore des réponses 5xx. Pour plus d'informations sur la durée pendant laquelle des objets restent dans les caches périphériques CloudFront, consultez Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Codes de statut HTTP 4xx et 5xx mis en cache par CloudFront CloudFront met en cache les codes de statut HTTP 4xx et 5xx suivants renvoyés par Amazon S3 ou votre serveur d'origine personnalisée. Si vous avez configuré une page d'erreur personnalisée pour un code de statut HTTP, CloudFront met celle-ci en cache. 400 Demande erronée 403 Accès interdit 404 Introuvable 405 Méthode non autorisée 414 URI de demande trop longue 500 Erreur interne du service 501 Non implémenté 502 Passerelle erronée 503 Service non disponible 504 Délai de passerelle expiré API Version 2016-01-13 167 Amazon CloudFront Guide du développeur Présentation du contenu privé Service d'un contenu privé via CloudFront De nombreuses entreprises qui diffusent un contenu via Internet veulent limiter l'accès aux documents, données professionnelles, flux multimédia ou contenus destinés à des utilisateurs sélectionnés, tels que ceux, par exemple, qui ont payé un droit. Pour offrir ce contenu privé en toute sécurité à l'aide de CloudFront, vous pouvez procéder comme suit : • Obliger les utilisateurs à accéder à votre contenu privé à l'aide d'URL signées ou de cookies signés CloudFront. • Obliger les utilisateurs à accéder à votre contenu privé Amazon S3 à l'aide d'URL CloudFront, et non d'URL Amazon S3. Exiger des URL CloudFront n'est pas obligatoire, mais nous le recommandons pour empêcher les utilisateurs d'ignorer les restrictions que vous spécifiez dans les URL signées ou les cookies signés. Rubriques • Présentation du contenu privé (p. 168) • Utilisation d'un serveur HTTP pour le contenu privé (p. 169) • Liste des tâches : offre d'un contenu privé (p. 171) • Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172) • Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178) • • • • Choix entre les URL signées et les cookies signés (p. 185) Utilisation des URL signées (p. 186) Utilisation de cookies signés (p. 207) Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 (p. 223) • Exemples de code pour la création de la signature d'une URL signée (p. 224) Présentation du contenu privé Vous pouvez contrôler l'accès des utilisateurs à votre contenu privé de deux façons, comme illustré ciaprès : API Version 2016-01-13 168 Amazon CloudFront Guide du développeur Restriction de l'accès aux objets des caches périphériques CloudFront 1. Restreindre l'accès aux objets des caches périphériques CloudFront. 2. Restreindre l'accès aux objets de votre compartiment Amazon S3. Restriction de l'accès aux objets des caches périphériques CloudFront Vous pouvez configurer CloudFront pour requérir que les utilisateurs accèdent à vos objets à l'aide d'URL signées ou de cookies signés. Vous pouvez alors développer votre application pour créer et distribuer des URL signées aux visionneuses authentifiées ou pour envoyer des en-têtes Set-Cookie qui définissent des cookies signés sur les visionneuses des utilisateurs authentifiés. (Pour fournir à quelques utilisateurs un accès à long terme à un nombre limité d'objets, vous pouvez aussi créer des URL signées manuellement.) Lorsque vous créez des URL signées ou des cookies signés pour contrôler l'accès à vos objets, vous pouvez spécifier les restrictions suivantes : • Une heure et une date de fin, au-delà desquelles l'URL n'est plus valide. • (Facultatif) L'heure et la date auxquelles l'URL devient valide. • (Facultatif) L'adresse IP ou la plage d'adresses IP des ordinateurs qui peuvent être utilisés pour accéder à votre contenu. Une partie d'une URL signée ou d'un cookie signé est hachée et signée à l'aide de la clé privée d'une paire de clés publique/privée. Lorsque quelqu'un utilise une URL signée ou un cookie signé pour accéder à un objet, CloudFront compare la partie signée et celle non signée de l'URL ou du cookie. Si elles ne correspondent pas, CloudFront ne remet pas l'objet. Restriction de l'accès aux objets des compartiments Amazon S3 Le cas échéant, vous pouvez sécuriser le contenu de votre compartiment Amazon S3, de telle sorte que les utilisateurs puissent y accéder via CloudFront, mais ne puissent pas y accéder directement à l'aide des URL Amazon S3. De cette façon, les utilisateurs ne peuvent pas outrepasser CloudFront et utiliser l'URL Amazon S3 pour obtenir le contenu auquel vous voulez limiter l'accès. Cette étape n'est pas obligatoire pour utiliser les URL signées, mais nous la recommandons. Pour exiger que les utilisateurs accèdent à votre contenu via les URL CloudFront, exécutez les tâches suivantes : • Créez un utilisateur CloudFront particulier appelé identité d'accès à l'origine. • Accordez à l'identité d'accès à l'origine l'autorisation de lire les objets de votre compartiment. • Supprimez l'autorisation pour toute autre personne d'utiliser les URL Amazon S3 pour lire les objets. Utilisation d'un serveur HTTP pour le contenu privé Vous pouvez utiliser des URL signées ou des cookies signés pour toute distribution CloudFront, que l'origine soit un compartiment Amazon S3 ou un serveur HTTP. Cependant, pour que CloudFront obtienne vos objets d'un serveur HTTP, les objets doivent demeurer publiquement accessibles. API Version 2016-01-13 169 Amazon CloudFront Guide du développeur Utilisation d'un serveur HTTP pour le contenu privé Lorsque les objets sont publiquement accessibles, toute personne qui possède l'URL d'un objet de votre serveur HTTP peut accéder à l'objet sans connexion ou paiement du contenu. Si vous utilisez les URL signées ou les cookies signés et que votre origine est un serveur HTTP, ne communiquez pas les URL des objets de votre serveur HTTP à vos clients ou à d'autres personnes extérieures à votre organisation. API Version 2016-01-13 170 Amazon CloudFront Guide du développeur Liste des tâches : offre d'un contenu privé Liste des tâches : offre d'un contenu privé Pour configurer CloudFront pour qu'il propose un contenu privé, exécutez les tâches suivantes : 1. (Facultatif, mais recommandé) Exigez de vos utilisateurs qu'ils n'accèdent à votre contenu que via CloudFront. La méthode que vos utilisez varie selon que vous recourez aux origines Amazon S3 ou aux origines personnalisées : • Amazon S3 : voir Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). • Origine personnalisée : voir Utilisation des en-têtes personnalisés pour limiter l'accès à votre contenu sur une origine personnalisée (p. 116). 2. Spécifiez les comptes AWS que vous voulez utiliser pour créer des URL signées ou des cookies signés. Pour de plus amples informations, veuillez consulter Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). 3. Ecrivez votre application pour répondre aux demandes des utilisateurs authentifiés avec des URL signées ou avec des en-têtes Set-Cookie définissant des cookies signés. Pour de plus amples informations, veuillez consulter Choix entre les URL signées et les cookies signés (p. 185). API Version 2016-01-13 171 Amazon CloudFront Guide du développeur Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 Rubriques • Création d'une identité d'accès à l'origine et ajout à votre distribution (p. 173) • Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 (p. 175) • Utilisation d'une identité d'accès à l'origine dans les régions Amazon S3 prenant uniquement en charge l'authentification Signature version 4 (p. 177) Généralement, si vous utilisez un compartiment Amazon S3 pour une distribution CloudFront vous accordez à tous l'autorisation de lire les objets de votre compartiment. Chacun peut ainsi accéder à vos objets à l'aide de CloudFront ou de l'URL Amazon S3. CloudFront n'expose pas les URL Amazon S3, mais vos utilisateurs peuvent les obtenir si votre application propose directement les objets depuis Amazon S3 ou si quelqu'un remet les liens directs aux objets spécifiques d'Amazon S3. Note Vous pouvez aussi limiter l'accès au contenu d'une origine personnalisée à l'aide des en-têtes personnalisés. Pour de plus amples informations, veuillez consulter Utilisation des en-têtes personnalisés pour limiter l'accès à votre contenu sur une origine personnalisée (p. 116). Si vous voulez utiliser les URL signées ou les cookies signés CloudFront pour fournir l'accès aux objets de votre compartiment Amazon S3, il est probable que vous souhaiterez aussi empêcher les utilisateurs d'accéder à vos objets Amazon S3 à l'aide des URL Amazon S3. Si les utilisateur accèdent directement à vos objets dans Amazon S3, ils ignorent les contrôles fournis par les cookies signés ou les URL signées CloudFront, comme, par exemple, le contrôle de la date et l'heure auxquelles un utilisateur ne peut plus accéder à votre contenu et le contrôle des adresses IP qui peuvent être utilisées pour accéder au contenu. De plus, si les utilisateurs accèdent aux objets via CloudFront et directement à l'aide des URL Amazon S3, les journaux des accès CloudFront sont moins utiles, car ils sont incomplets. Note Pour créer des identités d'accès à l'origine, vous devez utiliser la console CloudFront ou l'API CloudFront version 2009-09-09 ou ultérieure. Pour garantir que les utilisateurs accèdent à vos objets uniquement à l'aide des URL CloudFront, que celles-ci soient signées ou non, exécutez les tâches suivantes : 1. Créez une identité d'accès à l'origine, qui est un utilisateur CloudFront particulier, et associez l'identité d'accès à l'origine à votre distribution. (Pour les distributions web, vous associez l'identité d'accès à l'origine à vos origines, de telle sorte que vous puissiez sécuriser tout ou partie de votre contenu Amazon S3.) Vous pouvez également créer une identité d'accès à l'origine et l'ajoutez à votre distribution quand vous créez la distribution. Pour de plus amples informations, veuillez consulter Création d'une identité d'accès à l'origine et ajout à votre distribution (p. 173). 2. Modifiez les autorisations de votre compartiment Amazon S3 ou des objets de votre compartiment de telle sorte que seule l'identité d'accès à l'origine ait l'autorisation en lecture (ou en lecture et téléchargement). Lorsque vos utilisateurs accèdent à vos objets Amazon S3 via CloudFront, l'identité d'accès à l'origine CloudFront obtient les objets au nom de vos utilisateurs. Si vos utilisateurs demandent directement des objets à l'aide d'Amazon S3, l'accès leur est refusé. L'identité d'accès à l'origine a l'autorisation d'accéder aux objets de votre compartiment Amazon API Version 2016-01-13 172 Amazon CloudFront Guide du développeur Création d'une identité d'accès à l'origine et ajout à votre distribution S3, mais pas les utilisateurs. Pour plus d'informations, consultez Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 (p. 175). Création d'une identité d'accès à l'origine et ajout à votre distribution Un compte AWS peut avoir jusqu'à 100 identités d'accès à l'origine CloudFront. Cependant, comme vous pouvez ajouter une identité d'accès à l'origine à autant de distributions que vous le souhaitez, une seule identité d'accès à l'origine suffit généralement. Si vous n'avez pas créé d'identité d'accès à l'origine et ne l'avez pas ajoutée à votre distribution lors de la création de cette dernière, vous pouvez en créer et en ajouter une maintenant à l'aide de la console CloudFront ou de l'API CloudFront : • Si vous utilisez la console CloudFront : vous pouvez créer une identité d'accès à l'origine et l'ajouter à votre distribution dans le même temps. Pour de plus amples informations, veuillez consulter Création d'une identité d'accès à l'origine et ajout à votre distribution à l'aide de la console CloudFront (p. 173). • Si vous utilisez l'API CloudFront : vous pouvez créer une identité d'accès à l'origine, puis l'ajouter à votre distribution. Exécutez la procédure de chacune des rubriques suivantes : • Création d'une identité d'accès à l'origine à l'aide de l'API CloudFront (p. 174) • Ajout d'une identité d'accès à l'origine à votre distribution à l'aide de l'API CloudFront (p. 174) Création d'une identité d'accès à l'origine et ajout à votre distribution à l'aide de la console CloudFront Si vous n'avez pas créé une identité d'accès à l'origine lorsque vous avez créé votre distribution, exécutez la procédure suivante. Pour créer une identité d'accès à l'origine CloudFront à l'aide de la console CloudFront 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Cliquez sur l'ID de la distribution à laquelle vous voulez ajouter une identité d'accès à l'origine. 3. Passez en mode édition : • Distributions web : cliquez sur l'ongletOrigins, sélectionnez celle que vous voulez modifier et cliquez sur Edit. Vous ne pouvez créer une identité d'accès à l'origine que pour les origines dont Origin Type a la valeur S3 Origin. • Distributions RTMP : cliquez sur Edit. 4. Pour Restrict Bucket Access, cliquez sur Yes. 5. Si vous disposez déjà d'une identité d'accès à l'origine que vous voulez utiliser, cliquez sur Use an Existing Identity. Puis, sélectionnez l'identité dans la liste Your Identities. Note Si vous disposez déjà d'une identité d'accès à l'origine, nous vous recommandons de la réutiliser pour simplifier la maintenance. Si vous voulez créer une identité, cliquez sur Create a New Identity. Puis, entrez une description de l'identité dans le champ Comment. API Version 2016-01-13 173 Amazon CloudFront Guide du développeur Création d'une identité d'accès à l'origine et ajout à votre distribution 6. Si vous voulez que CloudFront accorde automatiquement à l'identité d'accès à l'origine l'autorisation de lire les objets du compartiment Amazon S3 spécifié dans Origin Domain Name, cliquez sur Yes, Update Bucket Policy. Important Si vous cliquez sur Yes, Update Bucket Policy, CloudFront met à jour les autorisations du compartiment pour attribuer à l'identité d'accès à l'origine spécifiée l'autorisation de lire les objets de votre compartiment. Cependant, CloudFront ne supprime pas les autorisations existantes. Si les utilisateurs disposent actuellement de l'autorisation d'accéder aux objets de votre compartiment à l'aide des URL Amazon S3, ils continueront à l'avoir après que CloudFront a mis à jour vos autorisations de compartiment. Pour afficher ou supprimer les autorisations de compartiment existantes, utilisez une méthode fournie par Amazon S3. Pour de plus amples informations, veuillez consulter Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 (p. 175). Pour mettre manuellement à jour les autorisations sur votre compartiment Amazon S3, cliquez sur No, I Will Update Permissions. 7. 8. Cliquez sur Yes, Edit. Si vous ajoutez une identité d'accès à l'origine à une distribution web et que vous avez plusieurs origines, répétez les étapes 3 à 7. Création d'une identité d'accès à l'origine à l'aide de l'API CloudFront Si vous disposez déjà d'une identité d'accès à l'origine et que vous voulez la réutiliser au lieu d'en créer une nouvelle, passez à Ajout d'une identité d'accès à l'origine à votre distribution à l'aide de l'API CloudFront (p. 174). Pour créer une identité d'accès à l'origine CloudFront à l'aide de l'API CloudFront, utilisez l'action d'API POST Origin Access Identity. La réponse inclut un Id et un S3CanonicalUserId pour la nouvelle identité d'accès à l'origine. Notez ces valeurs parce que vous les utiliserez ultérieurement dans le processus : • Elément ID : vous utilisez la valeur de l'élément Id pour associer un ID d'accès à l'origine à votre distribution. • Elément S3CanonicalUserId : vous utilisez la valeur de l'élément S3CanonicalUserId lorsque vous accordez à CloudFront l'accès à vos objets ou à votre compartiment Amazon S3. Pour plus d'informations sur l'action POST Origin Access Identity API, consultez POST Origin Access Identity dans le manuel Amazon CloudFront API Reference. Pour obtenir la liste des autres actions que vous pouvez exécuter sur les identités d'accès à l'origine, consultez Actions sur les identités d'accès à l'origine, également dans le manuel Amazon CloudFront API Reference. Ajout d'une identité d'accès à l'origine à votre distribution à l'aide de l'API CloudFront Vous pouvez utiliser l'API CloudFront pour ajouter une identité d'accès à l'origine CloudFront à une distribution existante ou pour créer une distribution incluant une identité d'accès à l'origine. Dans les deux cas, incluez un élément OriginAccessIdentity. Cet élément contient la valeur de l'élément Id que l'action d'API POST Origin Access Identity a retourné lorsque vous avez créé l'identité d'accès à l'origine. Pour les distributions web, ajoutez l'élément OriginAccessIdentity à une ou plusieurs origines. Pour les distributions RTMP, ajoutez l'élément OriginAccessIdentity à la distribution. API Version 2016-01-13 174 Amazon CloudFront Guide du développeur Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 Consultez la rubrique applicable dans le manuel Amazon CloudFront API Reference : • Créer une distribution web : POST Distribution • Mettre à jour une distribution web : PUT Distribution Config • Créer une distribution RTMP : POST Streaming Distribution • Mettre à jour une distribution RTMP : PUT Streaming Distribution Config Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 Lorsque vous créez ou mettez à jour une distribution, vous pouvez ajouter une identité d'accès à l'origine et automatiquement mettre à jour la stratégie de compartiment pour attribuer à l'identité d'accès à l'origine l'autorisation d'accéder à votre compartiment. Une autre solution consiste à choisir de modifier manuellement la stratégie de compartiment ou de modifier les ACL, qui contrôlent les autorisations sur les objets individuels de votre compartiment. Quelle que soit la méthode utilisée, vous devez toujours vérifier la stratégie de compartiment de votre compartiment et vérifier les autorisations sur vos objets pour garantir les points suivants : • CloudFront peut accéder aux objets du compartiment au nom des utilisateurs qui demandent vos objets via CloudFront. • Les utilisateurs ne peuvent pas utiliser les URL Amazon S3 pour accéder à vos objets. Caution Si vous configurez CloudFront pour accepter et acheminer à Amazon S3 l'ensemble des méthodes HTTP que CloudFront prend en charge, créez une identité d'accès à l'origine CloudFront pour limiter l'accès à votre contenu Amazon S3 et accordez à l'identité d'accès à l'origine les autorisations applicables. Par exemple, si vous configurez CloudFront pour accepter et acheminer ces méthodes parce que vous voulez utiliser la méthode PUT, vous devez configurer les stratégies de compartiment Amazon S3 ou les listes ACL de manière à gérer correctement les demandes DELETE, afin que les utilisateurs ne puissent pas supprimer les ressources que vous ne les autorisez pas à supprimer. Remarques : • Il se peut que vous trouviez plus facile de mettre à jour les stratégies de compartiment Amazon S3 que les listes ACL, parce que vous pouvez ajouter des objets au compartiment sans mettre à jour les autorisations. Cependant, les ACL vous offrent un contrôle plus détaillé, parce que vous attribuez les autorisations sur chaque objet. • Par défaut, votre compartiment Amazon S3 et tous les objets qu'il contient sont privés : seul le compte AWS ayant créé le compartiment a l'autorisation d'y lire ou d'y écrire des objets. • Si vous ajoutez une identité d'accès à l'origine à une distribution existante, modifiez la stratégie de compartiment ou les listes ACL des objets, selon les cas, pour garantir que les objets ne sont pas publiquement disponibles. • Accordez des autorisations supplémentaires à un ou plusieurs comptes d'administrateur sécurisés de telle sorte que vous puissiez continuer à mettre à jour les contenus du compartiment Amazon S3. API Version 2016-01-13 175 Amazon CloudFront Guide du développeur Attribution à l'identité d'accès à l'origine de l'autorisation de lire les objets de votre compartiment Amazon S3 Important Il se peut qu'un bref délai s'écoule entre le moment où vous sauvegardez les modifications que vous apportez aux autorisations Amazon S3 et le moment où elles deviennent effectives. Tant que les modifications ne sont pas effectives, vous pouvez obtenir des erreurs d'autorisation refusée lorsque vous essayez d'accéder aux objets de votre compartiment. Mise à jour des stratégies de compartiment Amazon S3 Vous pouvez mettre à jour la stratégie de compartiment Amazon S3 à l'aide d'AWS Management Console ou de l'API Amazon S3 : • Accordez à l'identité d'accès à l'origine CloudFront les autorisations applicables sur le compartiment. Pour spécifier une identité d'accès à l'origine, utilisez la valeur de Amazon S3 Canonical User ID sur la page Origin Access Identity de la console CloudFront. Si vous utilisez l'API CloudFront, utilisez la valeur de l'élément S3CanonicalUserId qui a été retournée lorsque vous avez créé l'identité d'accès à l'origine. • Refusez l'accès à toute personne à laquelle vous interdisez l'accès à l'aide des URL Amazon S3. Pour plus d'informations, consultez Utilisation des stratégies de compartiment et des stratégies utilisateur dans le manuel Amazon Simple Storage Service Manuel du développeur. Pour obtenir un exemple, consultez « Attribution d'une autorisation à une identité d'origine Amazon CloudFront » dans la rubrique Exemples de stratégie de compartiment, également dans le manuel Amazon Simple Storage Service Manuel du développeur. Mise à jour des ACL Amazon S3 A l'aide d'AWS Management Console ou de l'API Amazon S3, modifiez l'ACL Amazon S3 : • Accordez à l'identité d'accès à l'origine CloudFront les autorisations applicables sur chaque objet que la distribution CloudFront offre. Pour spécifier une identité d'accès à l'origine, utilisez la valeur de Amazon S3 Canonical User ID sur la page Origin Access Identity de la console CloudFront. Si vous utilisez l'API CloudFront, utilisez la valeur de l'élément S3CanonicalUserId qui a été retournée lorsque vous avez créé l'identité d'accès à l'origine. • Refusez l'accès à toute personne à laquelle vous interdisez l'accès à l'aide des URL Amazon S3. Si un autre compte AWS charge les objets sur votre compartiment, ce compte est le propriétaire des objets. Par défaut, le compte propriétaire des objets d'un compartiment est le seul compte qui puisse attribuer des autorisations à ces objets. Cependant, le compte AWS qui possède les objets peut aussi faire de vous un propriétaire, ce qui vous permet de modifier les autorisations sur les objets. Pour plus d'informations, consultez Gestion des accès avec les listes ACL dans le manuel Amazon Simple Storage Service Manuel du développeur. Vous pouvez aussi modifier les listes ACL à l'aide de code et de l'un des kits de développement logiciel (SDK) AWS. Pour obtenir un exemple, consultez l'exemple de code téléchargeable dans Créer une signature d'URL avec C# et le .NET framework (p. 228). API Version 2016-01-13 176 Amazon CloudFront Guide du développeur Utilisation d'une identité d'accès à l'origine dans les régions Amazon S3 prenant uniquement en charge l'authentification Signature version 4 Utilisation d'une identité d'accès à l'origine dans les régions Amazon S3 prenant uniquement en charge l'authentification Signature version 4 Les régions Amazon S3 les plus récentes requièrent que vous utilisiez Signature version 4 pour les demandes authentifiées. (Pour les versions d'AWS Signature prises en charge dans chaque région Amazon S3, consultez Amazon Simple Storage Service (S3) dans la rubrique Régions et points de terminaison du manuel Amazon Web Services General Reference.) Cependant, lorsque vous créez une identité d'accès à l'origine et l'ajoutez à une distribution CloudFront, CloudFront utilise généralement Signature version 2 pour l'authentification lors des demandes d'objet de votre compartiment Amazon S3. Si vous utilisez une identité d'accès à l'origine et que votre compartiment se trouve dans l'une des régions qui nécessitent Signature version 4 pour l'authentification, notez les points suivants : • Les demandes DELETE, GET, HEAD, OPTIONS etPATCH sont prises en charge sans qualifications. • Si vous voulez soumettre les demandes PUT à CloudFront pour charger les objets sur votre compartiment Amazon S3, vous devez ajouter un en-tête x-amz-content-sha256 à la demande et la valeur de l'en-tête doit contenir un hachage SHA256 du corps de la demande. Pour plus d'informations, consultez la documentation sur l'en-tête x-amz-content-sha256 de la page Entêtes de demande courants du manuel Amazon Simple Storage Service API Reference. • Les demandes POST ne sont pas prises en charge. API Version 2016-01-13 177 Amazon CloudFront Guide du développeur Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) Rubriques • Création de paires de clés CloudFront pour vos utilisateurs de confiance (p. 179) • Reformatage de la clé privée CloudFront (.NET et Java uniquement) (p. 181) • Ajout d'utilisateurs de confiance à votre distribution (p. 181) • Vérification que les utilisateurs de confiance sont actifs (facultatif) (p. 183) • Rotation de paires de clés CloudFront (p. 184) Pour créer des URL signées ou des cookies signés, vous avez besoin d'au moins un compte AWS ayant une paire de clés CloudFront active. Ce compte est connu comme utilisateur de confiance. L'utilisateur de confiance a deux objectifs : • Dès que vous ajoutez l'ID de compte AWS de votre utilisateur de confiance à votre distribution, CloudFront commence à exiger que les utilisateurs emploient des URL signées ou des cookies signés pour accéder à vos objets. • Lorsque vous créez des URL signées ou des cookies signés, vous utilisez la clé privée de la paire de clés de l'utilisateur de confiance pour signer une partie de l'URL ou du cookie. Lorsque quelqu'un demande un objet restreint, CloudFront compare la partie signée de l'URL ou du cookie à la partie non signée afin de vérifier que l'URL ou le cookie n'ont pas été falsifiés. CloudFront vérifie aussi que l'URL ou le cookie est valide, ce qui signifie, par exemple, que la date et l'heure d'expiration ne sont pas passées. Lorsque vous spécifiez des utilisateurs de confiance, vous pouvez aussi indirectement spécifier les objets qui requièrent des URL signées ou des cookies signés : • Distributions web : vous ajoutez les utilisateurs de confiance aux comportements du cache. Si votre distribution ne comporte qu'un seul comportement de cache, les utilisateurs doivent employer des URL signées ou des cookies signés pour accéder à un objet associé à la distribution. Si vous créez plusieurs comportements de cache et que vous ajoutez des utilisateurs de confiance à certains comportements de cache et pas à d'autres, vous pouvez exiger que les utilisateurs emploient des URL signées ou des cookies signés pour accéder à certains objets, et non à d'autres. • Distributions RTMP (URL signées uniquement) : vous ajoutez les utilisateurs de confiance à une distribution. Après que vous avez ajouté les utilisateurs de confiance à une distribution RTMP, les utilisateurs doivent employer les URL signées pour accéder à un objet associé à la distribution. Note Pour spécifier les utilisateurs de confiance d'une distribution, vous devez utiliser la console CloudFront ou l'API CloudFront version 2009-09-09 ou ultérieure. Pour spécifier les comptes autorisés à créer des URL signées ou des cookies signés et pour ajouter les comptes à votre distribution CloudFront, exécutez les tâches suivantes : 1. Déterminez les comptes AWS que vous voulez utiliser comme utilisateurs de confiance. La plupart des clients CloudFront emploient le compte qu'ils ont utilisé pour créer la distribution. API Version 2016-01-13 178 Amazon CloudFront Guide du développeur Création de paires de clés CloudFront pour vos utilisateurs de confiance 2. Pour chacun des comptes sélectionné à l'étape 1, créez une paire de clés CloudFront. Pour de plus amples informations, veuillez consulter Création de paires de clés CloudFront pour vos utilisateurs de confiance (p. 179). 3. Si vous utilisez .NET ou Java pour créer des URL signées ou des cookies signés, reformatez la clé privée CloudFront. Pour de plus amples informations, veuillez consulter Reformatage de la clé privée CloudFront (.NET et Java uniquement) (p. 181). 4. Dans la distribution pour laquelle vous créez les URL signées ou les cookies signés, spécifiez les ID des compte AWS de vos utilisateurs de confiance. Pour de plus amples informations, veuillez consulter Ajout d'utilisateurs de confiance à votre distribution (p. 181). 5. (Facultatif) Vérifiez que CloudFront reconnaît que vos utilisateurs de confiance ont des paires de clé CloudFront actives. Pour de plus amples informations, veuillez consulter Vérification que les utilisateurs de confiance sont actifs (facultatif) (p. 183). Création de paires de clés CloudFront pour vos utilisateurs de confiance Chacun des comptes AWS que vous utilisez pour créer des cookies signés ou des URL signées CloudFront (vos utilisateurs de confiance) doit avoir sa propre paire de clés CloudFront et la paire de clés doit être active. Notez que vous ne pouvez pas remplacer une paire de clés Amazon EC2 par une paire de clés CloudFront. Lorsque vous créez des cookies signés ou des URL signées CloudFront, vous incluez l'ID de la paire de clés de l'utilisateur de confiance dans l'URL. Amazon EC2 ne rend pas les ID de paire de clés disponibles. Pour aider à sécuriser vos applications, nous vous recommandons de changer de paires de clés CloudFront tous les 90 jours, voire plus souvent. Pour de plus amples informations, veuillez consulter Rotation de paires de clés CloudFront (p. 184). Vous pouvez créer une paire de clés de différentes manières : • Créez une paire de clés dans AWS Management Console et téléchargez la clé privée. Consultez la procédure Pour créer des paires de clés CloudFront dans AWS Management Console (p. 179). • Créez une paire de clés RSA à l'aide d'une application tel qu'OpenSSL et chargez la clé publique sur AWS Management Console. Consultez la procédure Pour créer une paire de clés dans RSA et charger la clé publique dans AWS Management Console (p. 180). Pour créer des paires de clés CloudFront dans AWS Management Console 1. Connectez-vous à AWS Management Console à l'aide des informations d'identification racine du compte AWS. Important Les utilisateurs IAM ne peuvent pas créer de paires de clés CloudFront. Vous devez vous connecter à l'aide d'informations d'identification racine pour créer des paires de clés. 2. Dans le menu account-name, cliquez sur Security Credentials. 3. Développez CloudFront Key Pairs. 4. Confirmez que vous n'avez pas plus d'une paire de clés active. Vous ne pouvez pas créer une paire de clés si vous en avez déjà deux actives. 5. Cliquez sur Create new Key Pair. 6. Dans la boîte de dialogue Create Key Pair, cliquez sur Download Private Key File. 7. Dans la boîte de dialogue Opening <nom_fichier>, acceptez la valeur par défaut de Save File, puis cliquez sur OK pour télécharger et enregistrer la clé privée de votre paire de clés CloudFront. API Version 2016-01-13 179 Amazon CloudFront Guide du développeur Création de paires de clés CloudFront pour vos utilisateurs de confiance Important Enregistrez la clé privée de votre paire de clés dans un emplacement sécurisé et définissez les autorisations sur le fichier de telle sorte que seuls les utilisateurs habilités par l'administrateur puissent la lire. Si quelqu'un obtient votre clé privée, il peut générer des cookies signés et des URL signées valides, et télécharger votre contenu. Vous ne pouvez pas obtenir à nouveau la clé privée, de telle sorte que si vous la perdez ou la supprimez, vous devez créer une nouvelle paire de clés CloudFront. 8. Enregistrez l'ID de paire de clés de votre paire de clés. (Dans AWS Management Console, cet ID est appelé ID de clé d'accès.) Vous l'utiliserez quand vous créerez des cookies signés ou des URL signées. Pour créer une paire de clés dans RSA et charger la clé publique dans AWS Management Console 1. Utilisez OpenSSL ou un autre outil pour créer une paire de clés. Par exemple, si vous utilisez OpenSSL, vous pouvez exécuter la commande suivante pour générer une paire de clés avec une longueur de 4 096 bits et l'enregistrer dans le fichier private_key.pem : $ openssl genrsa -out private_key.pem 4096 Le fichier obtenu contient à la fois la clé publique et la clé privée. Pour extraire la clé publique de ce fichier, exécutez la commande suivante : $ openssl rsa -pubout -in private_key.pem -out public_key.pem La clé publique est le fichier que vous chargerez plus tard dans la procédure Notez les exigences requises suivantes pour la clé : • La paire de clés doit être une paire de clés SSH-2 RSA. • La paire de clés doit être au format PEM encodé en base64. • Les longueurs de clé prises en charge sont 1024, 2048 et 4096 bits. 2. Connectez-vous à AWS Management Console à l'aide des informations d'identification racine du compte AWS. Important Les utilisateurs IAM ne peuvent pas créer de paires de clés CloudFront. Vous devez vous connecter à l'aide d'informations d'identification racine pour créer des paires de clés. 3. Dans le menu account-name, cliquez sur Security Credentials. 4. Développez CloudFront Key Pairs. 5. Confirmez que vous n'avez pas plus d'une paire de clés active. Vous ne pouvez pas charger votre propre paire de clés si vous en avez déjà deux actives. 6. Cliquez sur Upload Your Own Key Pair. 7. Dans la boîte de dialogue Upload Your Own Key Pair, cliquez sur Choose File et choisissez le fichier de clé publique que vous avez créé à l'étape 1. 8. Cliquez sur Upload. La boîte de dialogue Upload Key Pair s'efface et la nouvelle paire de clés apparaît en haut de la liste des paires de clés CloudFront. API Version 2016-01-13 180 Amazon CloudFront Guide du développeur Reformatage de la clé privée CloudFront (.NET et Java uniquement) 9. Enregistrez l'ID de paire de clés de votre paire de clés. (Dans AWS Management Console, cet ID est appelé ID de clé d'accès.) Vous l'utiliserez quand vous créerez des cookies signés ou des URL signées. Reformatage de la clé privée CloudFront (.NET et Java uniquement) Si vous utilisez .NET ou Java pour créer des URL signées ou des cookies signés, vous ne pouvez pas utiliser la clé privée de votre paire de clés au format par défaut .pem pour créer la signature : • .NET framework : convertit la clé privée au format XML que le .NET framework utilise. Plusieurs outils sont disponibles. • Java : convertit la clé privée au format DER. Pour ce faire, vous pouvez utiliser OpenSSL : $ openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der outform DER Pour garantir que l'encodeur fonctionne correctement, ajoutez le fichier jar des API de chiffrement Bouncy Castle Java à votre projet, puis ajoutez le fournisseur Bouncy Castle. Ajout d'utilisateurs de confiance à votre distribution Les utilisateurs de confiance sont des comptes AWS qui peuvent créer des URL signées et des cookies signés pour une distribution. Par défaut, aucun compte, pas même le compte ayant créé la distribution, n'est autorisé à créer des URL signées ou des cookies signés. Pour spécifier les comptes AWS que vous voulez utiliser comme utilisateurs de confiance, ajoutez les comptes à votre distribution : • Distributions web : les utilisateurs de confiance sont associés aux comportements du cache. Cela vous permet de requérir des URL signées ou des cookies signés pour certains objets et pas pour d'autres dans la même distribution. Les utilisateurs de confiance peuvent uniquement créer des URL signées ou des cookies signés pour les objets associés aux comportements de cache correspondants. Par exemple, si vous avez un utilisateur de confiance pour un comportement de cache et un autre utilisateur de confiance pour un autre comportement de cache, ni l'un ni l'autre ne peuvent créer des URL signées ou des cookies signés pour les objets associés à l'autre comportement de cache. • Distributions RTMP (URL signées uniquement) : les utilisateurs de confiance sont associés à la distribution. Après que vous avez ajouté les utilisateurs de confiance à une distribution RTMP, les utilisateurs doivent employer les URL signées ou les cookies signés pour accéder à l'un des objets associés à la distribution. Caution Définissez les modèles de chemin d'accès et leur séquence soigneusement de façon à ne pas donner aux utilisateurs un accès non prévu à votre contenu ou de les empêcher d'accéder à un contenu que vous voulez disponible pour tout le monde. Par exemple, imaginons qu'une demande corresponde au modèle de chemin de deux comportements de cache. Le premier comportement de cache n'exige pas d'URL signées ou de cookies signés, à l'inverse du second comportement de cache. Les utilisateurs pourront accéder aux objets sans utiliser les URL signées ou les cookies signés, parce que CloudFront traite le comportement de cache associé à la première correspondance. API Version 2016-01-13 181 Amazon CloudFront Guide du développeur Ajout d'utilisateurs de confiance à votre distribution Pour plus d'informations sur les modèles de chemin d'accès, consultez Modèle de chemin d'accès (p. 66). Caution Si vous chargez une distribution que vous utilisez déjà pour distribuer le contenu, n'ajoutez des utilisateurs de confiance que lorsque vous êtes prêt à démarrer la génération d'URL signées ou de cookies signés pour vos objets, ou CloudFront rejettera les demandes : • Distributions web : après que vous ajoutez les utilisateurs de confiance à un comportement de cache pour une distribution web, les utilisateurs doivent utiliser les URL signées ou les cookies signés pour accéder aux objets associés au comportement de cache. • Distributions RTMP (URL signées uniquement) : après que vous avez ajouté les utilisateurs de confiance à une distribution RTMP, les utilisateurs doivent employer les URL signées pour accéder à l'un des objets associés à la distribution. Le nombre maximal d'utilisateurs de confiance dépend du type de distribution : • Distributions web : cinq au plus pour chaque comportements de cache • Distributions RTMP : cinq au plus pour la distribution Vous pouvez ajouter des utilisateurs de confiance à votre distribution à l'aide de la console CloudFront ou de l'API CloudFront. Consultez la rubrique applicable : • Ajout d'utilisateurs de confiance à votre distribution à l'aide de la console CloudFront (p. 182) • Ajout d'utilisateurs de confiance à votre distribution à l'aide de l'API CloudFront (p. 183) Ajout d'utilisateurs de confiance à votre distribution à l'aide de la console CloudFront Pour ajouter des utilisateurs de confiance à votre distribution à l'aide de la console CloudFront 1. Si vous voulez utiliser uniquement le compte AWS qui a créé la distribution en tant qu'utilisateur de confiance, passez à l'étape 2. Pour utiliser d'autres comptes AWS, obtenez l'ID du compte AWS pour chaque compte : a. Connectez-vous à AWS Management Console à l'adresse https://console.aws.amazon.com/ console/home avec un compte que vous voulez utiliser comme utilisateur de confiance. b. Dans le coin supérieur droit de la console, cliquez sur le nom associé au compte, et cliquez sur My Account. c. Sous Account Settings, notez l'ID du compte. d. Déconnectez-vous d'AWS Management Console. e. Répétez les étapes a à d pour les autres comptes que vous voulez utiliser comme utilisateurs de confiance. 2. Ouvrez la console Amazon CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/, et connectez-vous à l'aide du compte que vous avez utilisé pour créer la distribution à laquelle vous voulez ajouter les utilisateurs de confiance. 3. Cliquez sur l'ID de distribution. 4. Passez en mode édition : • Distributions web : cliquez sur l'ongletBehaviors, cliquez sur le comportement que vous voulez modifier et cliquez sur Edit. API Version 2016-01-13 182 Amazon CloudFront Guide du développeur Vérification que les utilisateurs de confiance sont actifs (facultatif) • Distributions RTMP : cliquez sur Edit. 5. Pour Restrict Viewer Access (Use Signed URLs or Signed Cookies), cliquez sur Yes. 6. Pour Trusted Signers, cochez les cases applicables : • Self : cochez cette case si vous voulez utiliser le compte actuel (celui que vous avez utilisé pour créer la distribution). • Specify Accounts : cochez cette case si vous voulez utiliser d'autres comptes AWS. 7. Si vous avez coché la case Specify Accounts, entrez les ID des comptes AWS dans le champ AWS Account Number. Il s'agit des ID de compte que vous avez obtenus à la première étape de la procédure. Entrez un ID de compte par ligne. 8. Cliquez sur Yes, Edit. 9. Si vous ajoutez des utilisateurs de confiance à une distribution web et que vous avez plusieurs comportements de cache, répétez les étapes 4 à 8 selon les besoins. Ajout d'utilisateurs de confiance à votre distribution à l'aide de l'API CloudFront Vous pouvez utiliser l'API CloudFront pour ajouter les ID de compte AWS des utilisateurs de confiance à une distribution existante ou pour créer une distribution qui inclut les utilisateurs de confiance. Dans les deux cas, spécifiez les valeurs applicables dans l'élément TrustedSigners. Pour les distributions web, ajoutez l'élément TrustedSigners à un ou plusieurs comportements de cache. Pour les distributions RTMP, ajoutez l'élément TrustedSigners à la distribution. Consultez la rubrique applicable dans le manuel Amazon CloudFront API Reference : • Créer une distribution web : POST Distribution • Mettre à jour une distribution web : PUT Distribution Config • Créer une distribution RTMP : POST Streaming Distribution • Mettre à jour une distribution RTMP : PUT Streaming Distribution Config Vérification que les utilisateurs de confiance sont actifs (facultatif) Après que vous avez ajouté des utilisateurs de confiance à votre distribution, il se peut que vous vouliez vérifier que les utilisateurs sont actifs. Pour qu'un utilisateur de confiance soit actif, ce qui suit doit être vrai : • Le compte AWS doit avoir au moins une paire de clés active. Si vous soumettez les paires de clés à une rotation, le compte aura temporairement deux paires de clés actives, l'ancienne et la nouvelle. • CloudFront doit être informé de la paire de clés active. Après que vous avez créé une paire de clés, il peut exister une brève période avant que CloudFront ne soit conscient de l'existence de la paire de clés. Note Pour afficher la liste des utilisateurs de confiance actifs d'une distribution, vous devez utiliser actuellement l'API CloudFront. La liste des utilisateurs de confiance actifs n'est pas disponible dans la console CloudFront. API Version 2016-01-13 183 Amazon CloudFront Guide du développeur Rotation de paires de clés CloudFront Vérification que les utilisateurs de confiance sont actifs à l'aide de l'API CloudFront Pour déterminer les utilisateurs de confiance qui ont des paires de clés actives (quels utilisateurs de confiance sont actifs), vous obtenez la distribution et vérifiez les valeurs de l'élément ActiveTrustedSigners. Cet élément affiche l'ID de compte AWS de chaque compte que la distribution identifie comme utilisateur de confiance. Si l'utilisateur de confiance possède plusieurs paires de clés actives CloudFront, l'élément ActiveTrustedSigners affiche aussi les ID de paires de clés. Pour plus d'informations, consultez la rubrique applicable dans le manuel Amazon CloudFront API Reference : • Distributions web : GET Distribution • Distributions RTMP : GET Streaming Distribution Rotation de paires de clés CloudFront AWS vous recommande de soumettre à une rotation (changer) vos paires de clé actives CloudFront tous les 90 jours. Pour soumettre à une rotation les paires de clés que vous utilisez pour créer des URL signées ou des cookies signés sans invalider les URL ou cookies qui n'ont pas encore expiré, exécutez les tâches suivantes : 1. Créez une paire de clés pour chaque compte que vous utilisez pour créer des URL signées. Pour de plus amples informations, veuillez consulter Création de paires de clés CloudFront pour vos utilisateurs de confiance (p. 179). 2. Vérifiez que CloudFront connaît les nouvelles paires de clés. Pour de plus amples informations, veuillez consulter Vérification que les utilisateurs de confiance sont actifs (facultatif) (p. 183). Mettez à jour votre application pour créer des signatures à l'aide des clés privées à partir des nouvelles paires de clés. Confirmez que les URL ou cookies que vous signez à l'aide des nouvelles clés privées fonctionnent. Attendez jusqu'à ce que la date d'expiration soit passée dans les URL ou cookies signés à l'aide des anciennes paires de clés CloudFront. Modifiez les anciennes paires de clés CloudFront en Inactive : 3. 4. 5. 6. a. Connectez-vous à AWS Management Console à l'aide des informations d'identification racine du compte AWS pour lequel vous voulez rendre les paires de clés inactives. b. c. Dans le menu account-name, cliquez sur Security Credentials. Développez CloudFront Key Pairs. d. e. 7. Pour les paires de clés applicables, cliquez sur Make Inactive. Répétez les étapes a à d pour chacun des comptes AWS pour lesquels vous voulez rendre les paires de clés inactives. Reconfirmez que les URL ou cookies que vous signez à l'aide des nouvelles clés privées fonctionnent. 8. Supprimez les anciennes paires de clés CloudFront : 9. a. Accédez à la page Your Security Credentials. b. Développez CloudFront Key Pairs. c. Pour les paires de clés applicables, cliquez sur Delete. Supprimez les anciennes clés privées de l'emplacement où vous les avez stockées. API Version 2016-01-13 184 Amazon CloudFront Guide du développeur Choix entre les URL signées et les cookies signés Choix entre les URL signées et les cookies signés Les cookies signés et les URL signées CloudFront fournissent les mêmes fonctionnalités de base : elles vous permettent de contrôler qui peut accéder à votre contenu. Si vous voulez proposer un contenu privé via CloudFront et que vous essayez de choisir entre URL signées et cookies signés, prenez en compte ce qui suit. Utilisez les URL signées dans les cas suivants : • Vous voulez utiliser une distribution RTMP. Les cookies signés ne sont pas pris en charge pour les distributions RTMP. • Vous voulez restreindre l'accès aux fichiers individuels : par exemple, un téléchargement d'installation de votre application. • Vos utilisateurs utilisent un client (par exemple, un client HTTP personnalisé) qui ne prend pas en charge les cookies. Utilisez les cookies signés dans les cas suivants : • Vous voulez fournir l'accès à plusieurs fichiers restreints : par exemple, tous les fichiers d'une vidéo au format HLS ou tous les fichiers de la section des abonnés d'un site web. • Vous ne voulez pas modifier vos URL actuelles. Si vous n'utilisez pas actuellement d'URL signées et si vos URL contiennent l'un des paramètres de chaîne de requête suivants, vous ne pouvez pas utiliser des URL signées ou des cookies signés : • Expires • Policy • Signature • Key-Pair-Id CloudFront présume que les URL qui peuvent contenir l'un de ces paramètres de chaîne de requête sont des URL signées et, par conséquent, ne regardent pas les cookies signés. Utilisation des URL signées et des cookies signés Si vous utilisez à la fois les URL signées et les cookies signés pour contrôler l'accès aux mêmes objets et qu'une visionneuse utilise une URL signée pour demander un objet, CloudFront détermine si l'objet doit être retourné à la visionneuse en fonction de la seule URL signée. API Version 2016-01-13 185 Amazon CloudFront Guide du développeur Utilisation des URL signées Utilisation des URL signées Rubriques • Choix entre les stratégies prédéfinies et les stratégies personnalisées pour les URL signées (p. 186) • Fonctionnement des URL signées (p. 187) • Choix de la durée de validité des URL signées (p. 188) • Quand CloudFront vérifie-t-il la date et l'heure d'expiration dans une URL signée ? (p. 188) • Exemple de code et outils tiers (p. 188) • Création d'une URL signée à l'aide d'une stratégie prédéfinie (p. 190) • Création d'une URL signée utilisant une stratégie personnalisée (p. 197) Une URL signée inclut des informations supplémentaires, par exemple une heure et date d'expiration, qui vous donnent un meilleur contrôle de l'accès à votre contenu. Ces informations supplémentaires apparaissent dans une déclaration de stratégie, basée sur une stratégie prédéfinie ou une stratégie personnalisée. Les différences entre les stratégies prédéfinies et les stratégies personnalisées sont expliquées dans les deux prochaines sections. Note Vous pouvez créer certaines URL signées à l'aide de stratégies prédéfinies et d'autres à l'aide de stratégies personnalisées pour la même distribution. Choix entre les stratégies prédéfinies et les stratégies personnalisées pour les URL signées Lorsque vous créez une URL signée, vous écrivez une instruction de stratégie au format JSON qui spécifie les restrictions sur l'URL signée : par exemple, la durée de validité de l'URL. Vous pouvez utiliser une stratégie prédéfinie ou une stratégie personnalisée. Comparaison des stratégies prédéfinies et des stratégies personnalisées : Description Stratégie prédéfinie Stratégie personnalisée Vous pouvez réutiliser la déclaration de stratégie pour plusieurs objets. Pour ce faire, vous devez utiliser les caractères génériques de l'objet Resource. Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez dans la déclaration de stratégie d'une URL signée utilisant une stratégie personnalisée (p. 201).) Non Oui Vous pouvez indiquer la date et l'heure auxquelles les utilisateurs peuvent commencer à accéder à votre contenu. Non Oui (facultatif) Vous pouvez indiquer la date et l'heure auxquelles les utilisateurs ne peuvent plus accéder à votre contenu. Oui Oui Vous pouvez spécifier l'adresse IP ou la plage d'adresses IP des utilisateurs qui peuvent accéder à votre contenu. Non Oui (facultatif) API Version 2016-01-13 186 Amazon CloudFront Guide du développeur Fonctionnement des URL signées Description Stratégie prédéfinie Stratégie personnalisée L'URL signée inclut une version encodée base 64 de la stratégie, ce qui se traduit par une URL plus longue. Non Oui Pour plus d'informations sur la création d'URL signées à l'aide d'une stratégie prédéfinie, consultez Création d'une URL signée à l'aide d'une stratégie prédéfinie (p. 190). Pour plus d'informations sur la création d'URL signées à l'aide d'une stratégie personnalisée, consultez Création d'une URL signée utilisant une stratégie personnalisée (p. 197). Fonctionnement des URL signées Voici une présentation de la façon dont vous configurez CloudFront et Amazon S3 pour les URL signées et de la façon dont CloudFront répond quand un utilisateur emploie une URL signée pour demander un objet. 1. Dans votre distribution CloudFront, spécifiez un ou plusieurs utilisateurs de confiance, qui sont les comptes AWS dont vous voulez qu'ils aient l'autorisation de créer des URL signées. Pour de plus amples informations, veuillez consulter Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). 2. Vous développez votre application pour déterminer si un utilisateur doit avoir accès à votre contenu et pour créer des URL signées pour les objets ou parties de votre application auxquels vous voulez limiter l'accès. Pour de plus amples informations, veuillez consulter la rubrique applicable : • Création d'une URL signée à l'aide d'une stratégie prédéfinie (p. 190) • Création d'une URL signée utilisant une stratégie personnalisée (p. 197) 3. Un utilisateur demande un objet pour lequel vous voulez requérir des URL signées. 4. Votre application vérifie que l'utilisateur est autorisé à accéder à l'objet : il est abonné, il a payé pour accéder au contenu ou il a satisfait à quelque autre condition pour accéder. 5. Votre application crée et retourne une URL signée à l'utilisateur. 6. L'URL signée autorise l'utilisateur à télécharger ou diffuser le contenu. Cette étape est automatique ; l'utilisateur n'a généralement rien à faire de plus pour accéder au contenu. Pa exemple, si un utilisateur accède à votre contenu dans un navigateur web, votre application retourne l'URL signée au navigateur. Celui-ci utilise immédiatement l'URL signée pour accéder à l'objet dans le cache périphérique CloudFront sans aucune intervention de l'utilisateur. 7. CloudFront utilise la clé publique pour valider la signature et confirmer que l'URL n'a pas été falsifiée. Si la signature n'est pas valide, la demande est rejetée. Si la signature est valide, CloudFront regarde la déclaration de stratégie dans l'URL (ou en construit une si vous utilisez une stratégie prédéfinie) pour confirmer que la demande continue à être valide. Par exemple, si vous avez spécifié une date et une heure de début et de fin pour l'URL, CloudFront confirme que l'utilisateur essaie d'accéder à votre contenu durant la période pendant laquelle vous autorisez l'accès. Si la demande satisfait aux conditions de la déclaration de stratégie, CloudFront exécute les opérations standard : détermine si l'objet est déjà défini dans le cache périphérique, transmet la demande à l'origine si nécessaire et retourne l'objet à l'utilisateur. API Version 2016-01-13 187 Amazon CloudFront Guide du développeur Choix de la durée de validité des URL signées Choix de la durée de validité des URL signées Vous pouvez distribuer le contenu privé à l'aide d'une URL signée qui est valide pendant une brève durée, de quelques minutes au plus. Les URL signées qui sont valides pour une brève durée conviennent pour la distribution de contenu à la volée à un utilisateur à des fins limitées, telles que la distribution de locations de vidéos ou de téléchargements de musique aux clients à la demande. Si vos URL signées sont valides pour une brève période, vous voudrez probablement les générer automatiquement à l'aide d'une application que vous développez. Lorsque l'utilisateur commence à télécharger un objet ou démarre la lecture d'un fichier multimédia, CloudFront compare la date d'expiration dans l'URL avec la date du jour pour déterminer si l'URL est toujours valide. Vous pouvez aussi distribuer le contenu privé à l'aide d'une URL signée qui est valide pour une durée plus longue, quelques années peut-être. Les URL signées qui sont valides pendant une période plus longue sont utiles pour distribuer un contenu privé aux utilisateurs connus, comme la distribution d'un business plan aux investisseurs ou de documents de formation aux employés. Vous pouvez développer une application pour générer automatiquement ces URL signées de plus longue durée ou vous pouvez utiliser l'un des outils tiers d'interface utilisateur graphique répertoriés dans Outils et exemples de codes pour la configuration de contenu privé (p. 367). Quand CloudFront vérifie-t-il la date et l'heure d'expiration dans une URL signée ? Le moment où CloudFront contrôle la date et l'heure d'expiration d'une URL signée pour déterminer si l'URL continue d'être valide varie selon que l'URL concerne une distribution web ou une distribution RTMP : • Distributions web : CloudFront contrôle la date et l'heure d'expiration d'une URL signée au moment de la requête HTTP. Si un client commence à télécharger un objet volumineux immédiatement avant la date d'expiration, le téléchargement se termine même si la date d'expiration intervient pendant le téléchargement. Si la connexion TCP cesse et que le client essaie de redémarrer le téléchargement une fois la date d'expiration passée, le téléchargement échoue. Si un client utilise Range GET pour obtenir un objet en parties plus petites, toute demande GET qui intervient après la date d'expiration échoue. Pour plus d'informations sur Range GET, consultez Traitement par CloudFront des demandes partielles pour un objet (Range GET) (p. 136). • Distributions RTMP : CloudFront contrôle la date d'expiration d'une URL signée au départ d'un événement de lecture. Si un client commence à lire un fichier multimédia avant la date d'expiration, CloudFront autorise la lecture de la totalité du fichier multimédia. Cependant, selon le lecteur multimédia, l'interruption et le redémarrage peuvent déclencher un autre événement de lecture. Le passage à une autre position dans le fichier multimédia déclenche un autre événement de lecture. Si l'événement de lecture suivant se produit après la date d'expiration, CloudFront ne sert pas le fichier multimédia. Exemple de code et outils tiers Pour obtenir un exemple de code qui crée la partie hachée et signée des URL signées, consultez les rubriques suivantes : • Créer une signature d'URL avec Perl (p. 224) • Créer une signature d'URL avec PHP (p. 226) • Créer une signature d'URL avec C# et le .NET framework (p. 228) • Créer une signature d'URL avec Java (p. 234) API Version 2016-01-13 188 Amazon CloudFront Guide du développeur Exemple de code et outils tiers Un exemple de code supplémentaire de création d'URL signées est disponible sur la page Bibliothèques et exemples de code Amazon CloudFront. Pour plus d'informations sur les outils tiers qui prennent en charge le contenu privé, y compris la création d'URL signées, consultez Outils et exemples de codes pour la configuration de contenu privé (p. 367). API Version 2016-01-13 189 Amazon CloudFront Guide du développeur Création d'une URL signée à l'aide d'une stratégie prédéfinie Création d'une URL signée à l'aide d'une stratégie prédéfinie Pour créer une URL signée à l'aide d'une stratégie prédéfinie, exécutez la procédure suivante. Pour créer une URL signée à l'aide d'une stratégie prédéfinie 1. Si vous utilisez .NET ou Java pour créer des URL signées et si vous n'avez pas reformaté la clé privée de votre paire de clés du format par défaut .pem en un format compatible avec .NET ou Java, procédez comme suit : Pour de plus amples informations, veuillez consulter Reformatage de la clé privée CloudFront (.NET et Java uniquement) (p. 181). 2. Concaténez les valeurs suivantes dans l'ordre spécifié et supprimez les espaces (tabulations et caractères de saut de ligne inclus) entre les parties. Il se peut que vous ayez à inclure des caractères d'échappement dans la chaîne du code applicatif. Toutes les valeurs ont le type String. Chaque partie est identifiée par un numéro ( ) pour les deux exemples qui suivent. URL de base de l'objet L'URL de base est l'URL CloudFront URL que vous utiliseriez pour accéder à l'objet si vous n'utilisiez pas des URL signées, y compris vos propres paramètres de chaîne de requête, le cas échéant. Pour plus d'informations sur le format des URL pour les distributions web, consultez Format des URL pour les objets CloudFront (p. 100). Les exemples suivants affichent les valeurs que vous spécifiez pour les distributions web. • L'URL CloudFront suivant concerne un objet d'une distribution web (à l'aide du nom de domaine CloudFront). Notez que image.jpg se trouve dans un répertoire images. Le chemin d'accès à l'objet de l'URL doit correspondre à celui de l'objet de votre serveur HTTP ou de votre compartiment Amazon S3. http://d111111abcdef8.cloudfront.net/images/image.jpg • L'URL CloudFront suivante inclut une chaîne de requête : http://d111111abcdef8.cloudfront.net/images/image.jpg?size=large • Les URL CloudFront suivantes concernent les objets d'une distribution web. Les deux utilisent un nom de domaine alternatif ; le second inclut une chaîne de requête : http://www.example.com/images/image.jpg http://www.example.com/images/image.jpg?color=red • L'URL CloudFront suivante concerne un objet d'une distribution web qui utilise un autre nom de domaine et le protocole HTTPS : https://www.example.com/images/image.jpg Pour les distributions RTMP, les exemples suivants concernent les objets dans deux formats vidéo différents, MP4 et FLV : • MP4 : mp4:sydney-vacation.mp4 • FLV : sydney-vacation • FLV : sydney-vacation.flv Note Pour les fichiers .flv, l'inclusion de l'extension de nom de fichier .flv dépend de votre lecteur. Pour proposer les fichiers audio MP3 ou les fichiers vidéo H.264/ MPEG-4, il se peut que vous ayez besoin de préfixer le nom de fichier avec mp3: ou mp4:. Certains lecteurs multimédias peuvent être configurés pour ajouter le préfixe API Version 2016-01-13 190 Amazon CloudFront Guide du développeur Création d'une URL signée à l'aide d'une stratégie prédéfinie automatiquement. Le lecteur multimédia peut aussi requérir que vous spécifiiez le nom de fichier sans l'extension de fichier (par exemple, sydney-vacation au lieu de sydney-vacation.mp4). ? Le ? indique que les paramètres de chaîne de requête suivent l'URL de base. Incluez le ? même si vous n'avez aucun de vos paramètres de chaîne de requête. Vos paramètres de chaîne de requête, le cas échéant& Ce champ est facultatif. Si vous voulez ajouter vos propres paramètres de chaîne de requête, par exemple : color=red&size=medium puis ajoutez les paramètres après le ? (voir ) et avant le paramètre Expires. Dans certaines circonstances exceptionnelles, il se peut que vous ayez besoin de placer vos paramètres de chaîne de requête après Key-Pair-Id. Important Vos paramètres ne peuvent pas se nommer Expires, Signature ou Key-PairId. Si vous ajoutez vos propres paramètres, ajoutez un & après chacun d'eux, y compris le dernier. Expires=date et heure au format horaire Unix (en secondes) et en heure UTC (Coordinated Universal Time) Spécifie la date et l'heure d'expiration au format horaire Unix et en heure UTC. Par exemple, la date 1er janvier 2013 10 h 00 UTC est convertie en 1357034400 au format horaire Unix. Pour plus d'informations sur UTC, consultez RFC 3339, Date and Time on the Internet: Timestamps, http://tools.ietf.org/html/rfc3339. Spécifiez la date et l'heure, au format horaire Unix (en secondes) et en heure UTC, auxquelles vous voulez que l'URL arrête l'autorisation d'accéder à l'objet. Par exemple, la date 1er janvier 2013 10 h 00 UTC est convertie en 1357034400 au format horaire Unix. &Signature=version hachée et signée de la déclaration de stratégie Version hachée, signée et encodée en base 64 de la déclaration de stratégie JSON. Pour de plus amples informations, veuillez consulter Création d'une signature pour une URL signée qui utilise une stratégie prédéfinie (p. 192). &Key-Pair-Id=ID de la paire de clés CloudFront active que vous utilisez pour générer la signature ID d'une paire de clés CloudFront active : par exemple, APKA9ONS7QCOWEXAMPLE. L'ID de paire de clés CloudFront indique à CloudFront la clé publique à utiliser pour valider l'URL signée. CloudFront compare les informations de la signature avec celles de la déclaration de stratégie pour vérifier que l'URL n'a pas été falsifiée. L'ID de paire de clés que vous incluez dans les URL signées CloudFront doit être celui de la paire de clés active de l'un de vos utilisateurs de confiance : • Distributions web : la paire de clés doit être associée à un compte AWS qui soit celui de l'un des utilisateurs de confiance du comportement de cache applicable. • Distributions RTMP : la paire de clés doit être associée à un compte AWS qui soit celui de l'un des utilisateurs de confiance de la distribution. API Version 2016-01-13 191 Amazon CloudFront Guide du développeur Création d'une URL signée à l'aide d'une stratégie prédéfinie Pour de plus amples informations, veuillez consulter Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). Si vous rendez une paire de clés inactive lors de la rotation des paires de clés CloudFront, et que vous générez des URL par programmation, vous devez mettre à jour votre application pour utiliser une nouvelle paire de clés active pour l'un de vos utilisateurs de confiance. Si vous générez les URL signées manuellement, vous devez créer de nouvelles URL signées. Pour plus d'informations sur la rotation des paires de clés, consultez Rotation de paires de clés CloudFront (p. 184). Exemple d'une URL signée pour une distribution web : http://d111111abcdef8.cloudfront.net/image.jpg ? color=red&size=medium& Expires=1357034400 &Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQAj19DzZr vDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6 Id=APKA9ONS7QCOWEXAMPLE &Key-Pair- Exemple d'une URL signée pour une distribution RTMP : videos/mediafile.flv ? color=red&size=medium& Expires=1357034400 &Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZr vDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6 Id=APKA9ONS7QCOWEXAMPLE &Key-Pair- Création d'une signature pour une URL signée qui utilise une stratégie prédéfinie Pour créer la signature d'une URL signée qui utilise une stratégie prédéfinie, exécutez les procédures suivantes : 1. Créer une déclaration de stratégie. Voir Création d'une déclaration de stratégie pour une URL signée qui utilise une stratégie prédéfinie (p. 192). 2. Signer la déclaration de stratégie pour créer une signature. Voir Création d'une signature pour une URL signée qui utilise une stratégie prédéfinie (p. 194). Création d'une déclaration de stratégie pour une URL signée qui utilise une stratégie prédéfinie Lorsque vous créez une URL signée avec une stratégie prédéfinie, le paramètre Signature est une version hachée et signée d'une déclaration de stratégie. Pour les URL signées qui utilisent une stratégie prédéfinie, vous n'incluez pas la déclaration de stratégie dans l'URL, comme vous le faites pour les URL signées qui utilisent une stratégie personnalisée. Pour créer la déclaration de stratégie, utilisez la procédure suivante. Pour créer la déclaration de stratégie d'une URL signée qui utilise une stratégie prédéfinie 1. Construisez la déclaration de stratégie à l'aide du format JSON suivant et de l'encodage de caractères UTF-8. Incluez la ponctuation et les autres valeurs littérales exactement comme spécifié. Pour plus d'informations sur les paramètres Resource et DateLessThan, consultez Valeurs que vous spécifiez dans la déclaration de stratégie d'une URL signée utilisant une stratégie prédéfinie (p. 193). API Version 2016-01-13 192 Amazon CloudFront Guide du développeur Création d'une URL signée à l'aide d'une stratégie prédéfinie { "Statement":[ { "Resource":"base URL or stream name", "Condition":{ "DateLessThan":{ "AWS:EpochTime":ending date and time in Unix time format and UTC } } } ] } 2. Supprimez tous les espaces (tabulations et sauts de ligne inclus) de la déclaration de stratégie. Il se peut que vous ayez à inclure des caractères d'échappement dans la chaîne du code applicatif. Valeurs que vous spécifiez dans la déclaration de stratégie d'une URL signée utilisant une stratégie prédéfinie Lorsque vous créez une déclaration de stratégie pour une stratégie prédéfinie, vous spécifiez les valeurs suivantes. Ressource La valeur que vous spécifiez varie selon que vous créez l'URL signée pour une distribution Web ou une distribution RTMP. Note Vous ne pouvez spécifier qu'une seule valeur pour Resource. Distributions web URL de base incluant vos chaînes de requête, le cas échéant, mais excluant les paramètres CloudFront Expires, Signature et Key-Pair-Id, par exemple : http://d111111abcdef8.cloudfront.net/images/horizon.jpg? size=large&license=yes Remarques : • Protocole : la valeur doit commencer par http://, https:// ou http*://. • Paramètres de chaîne de requête : si vous n'avez aucun paramètre de chaîne de requête, omettez le point d'interrogation. • Noms de domaine alternatifs : si vous spécifiez un nom de domaine alternatif (CNAME) dans l'URL, vous devez le spécifier lorsque vous référencez l'objet dans votre page ou application web. Ne spécifiez pas l'URL Amazon S3 pour l'objet. Distributions RTMP Incluez uniquement le nom du flux. Par exemple, si l'URL complète concernant une vidéo en streaming est : rtmp://s5c39gqb8ow64r.cloudfront.net/videos/cfx/st/mp3_name.mp3 utilisez la valeur suivante pour Resource : videos/mp3_name API Version 2016-01-13 193 Amazon CloudFront Guide du développeur Création d'une URL signée à l'aide d'une stratégie prédéfinie N'incluez pas un préfixe tel que mp3: ou mp4:. De même, selon le lecteur que vous utilisez, il se peut que vous ayez à omettre l'extension de fichier de la valeur de Resource. Par exemple, il se peut que vous ayez besoin d'utiliser sydney-vacation au lieu de sydneyvacation.flv. DateLessThan Date et heure d'expiration de l'URL au format horaire Unix (en secondes) et en heure UTC. Par exemple, la date 1er janvier 2013 10 h 00 UTC est convertie en 1357034400 au format horaire Unix. Cette valeur doit correspondre à la valeur du paramètre de la chaîne de requête Expires de l'URL signée. N'entourez pas la valeur de points d'interrogation. Pour de plus amples informations, veuillez consulter Quand CloudFront vérifie-t-il la date et l'heure d'expiration dans une URL signée ? (p. 188). Exemple d'une déclaration de stratégie pour une URL signée qui utilise une stratégie prédéfinie Lorsque vous utilisez l'exemple de déclaration de stratégie suivant dans une URL signée, un utilisateur peut accéder à l'objet http://d111111abcdef8.cloudfront.net/horizon.jpg jusqu'au 1er janvier 2013 10 h 00 UTC : { "Statement":[ { "Resource":"http://d111111abcdef8.cloudfront.net/horizon.jpg? size=large&license=yes", "Condition":{ "DateLessThan":{ "AWS:EpochTime":1357034400 } } } ] } Création d'une signature pour une URL signée qui utilise une stratégie prédéfinie Pour créer la valeur du paramètre Signature d'une URL signée, vous hachez et signez la déclaration de stratégie que vous avez créée dans Création d'une déclaration de stratégie pour une URL signée qui utilise une stratégie prédéfinie (p. 192). Il existe deux versions de la procédure. Exécutez la procédure applicable : • Option 1 : créer une signature pour une distribution web ou une distribution RTMP (sans Adobe Flash Player) à l'aide d'une stratégie prédéfinie (p. 195) • Option 2 : créer une signature pour une distribution RTMP à l'aide d'une stratégie prédéfinie (Adobe Flash Player) (p. 195) Pour plus d'informations et d'exemples sur la façon de hacher, signer et encoder la déclaration de stratégie, consultez : • Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 (p. 223) • Exemples de code pour la création de la signature d'une URL signée (p. 224) API Version 2016-01-13 194 Amazon CloudFront Guide du développeur Création d'une URL signée à l'aide d'une stratégie prédéfinie • Outils et exemples de codes pour la configuration de contenu privé (p. 367) Option 1 : créer une signature pour une distribution web ou une distribution RTMP (sans Adobe Flash Player) à l'aide d'une stratégie prédéfinie 1. Utilisez la fonction de hachage SHA-1 et RSA pour hacher et signer la déclaration de stratégie que vous avez créée dans la procédure Pour créer la déclaration de stratégie d'une URL signée qui utilise une stratégie prédéfinie (p. 192). Utilisez la version de la déclaration de stratégie qui n'inclut plus d'espaces. Pour la clé privée requise par la fonction de hachage, utilisez la clé privée associée à l'utilisateur de confiance actif applicable. Note La méthode que vous utilisez pour hacher et signer la déclaration de stratégie dépend du langage de programmation et de la plateforme. Pour un exemple de code, consultez Exemples de code pour la création de la signature d'une URL signée (p. 224). 2. Supprimez les espaces (tabulations et sauts de ligne inclus) de la chaîne hachée et signée. 3. Encodez en base64 la chaîne à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. 4. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. 5. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) = _ (soulignement) / ~ (tilde) Ajoutez la valeur obtenue à votre URL signée après &Signature=, et retournez àPour créer une URL signée à l'aide d'une stratégie prédéfinie (p. 190) pour terminer la concaténation des parties de votre URL signée. Option 2 : créer une signature pour une distribution RTMP à l'aide d'une stratégie prédéfinie (Adobe Flash Player) 1. Utilisez la fonction de hachage SHA-1 et RSA pour hacher et signer la déclaration de stratégie que vous avez créée dans la procédure Pour créer la déclaration de stratégie d'une URL signée qui utilise une stratégie prédéfinie (p. 192). Utilisez la version de la déclaration de stratégie qui n'inclut plus d'espaces. Pour la clé privée requise par la fonction de hachage, utilisez la clé privée associée à l'utilisateur de confiance actif applicable. Note La méthode que vous utilisez pour hacher et signer la déclaration de stratégie dépend du langage de programmation et de la plateforme. Pour un exemple de code, consultez Exemples de code pour la création de la signature d'une URL signée (p. 224). 2. Supprimez les espaces (tabulations et sauts de ligne inclus) de la chaîne hachée et signée. Poursuivez à l'étape 3 si vous utilisez Adobe Flash Player et que le nom du flux est transmis depuis une page web. API Version 2016-01-13 195 Amazon CloudFront Guide du développeur Création d'une URL signée à l'aide d'une stratégie prédéfinie 3. 4. 5. Si vous utilisez Adobe Flash Player et que le nom du flux n'est pas transmis depuis une page web, ignorez le reste de la procédure. Par exemple, si vous écrivez votre propre lecteur qui extrait les noms de flux depuis le fichier Adobe Flash .swf, ignorez le reste de la procédure. Encodez en base64 la chaîne à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) = _ (soulignement) / ~ (tilde) Certaines versions d'Adobe Flash Player requièrent les caractères d'encodage par URL ?, =et &. Pour savoir si votre version d'Adobe Flash Player nécessite cette substitution de caractère, reportez-vous au site web Adobe. Si votre version Flash ne nécessite pas ces caractères, passez à l'étape 6. Si votre version Flash requiert ces caractères, remplacez-les comme indiqué dans le tableau suivant. (Vous avez déjà remplacé = dans l'étape précédente.) 6. Remplacer ces caractères non valides Par cet encodage par URL ? %3F & %26 Ajoutez la valeur obtenue à votre URL signée après &Signature=, et retournez àPour créer une URL signée à l'aide d'une stratégie prédéfinie (p. 190) pour terminer la concaténation des parties de votre URL signée. API Version 2016-01-13 196 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée Création d'une URL signée utilisant une stratégie personnalisée Rubriques • Création d'une déclaration de stratégie pour une URL signée qui utilise une stratégie personnalisée (p. 199) • Exemple d'une déclaration de stratégie pour une URL signée qui utilise une stratégie personnalisée (p. 202) • Création d'une signature pour une URL signée qui utilise une stratégie personnalisée (p. 204) Pour créer une URL signée utilisant une stratégie personnalisée, exécutez la procédure suivante. Pour créer une URL signée utilisant une stratégie personnalisée 1. Si vous utilisez .NET ou Java pour créer des URL signées et si vous n'avez pas reformaté la clé privée de votre paire de clés du format par défaut .pem en un format compatible avec .NET ou Java, procédez comme suit : Pour de plus amples informations, veuillez consulter Reformatage de la clé privée CloudFront (.NET et Java uniquement) (p. 181). 2. Concaténez les valeurs suivantes dans l'ordre spécifié et supprimez les espaces (tabulations et caractères de saut de ligne inclus) entre les parties. Il se peut que vous ayez à inclure des caractères d'échappement dans la chaîne du code applicatif. Toutes les valeurs ont le type String. Chaque partie est identifiée par un numéro ( ) pour les deux exemples qui suivent. URL de base de l'objet L'URL de base est l'URL CloudFront URL que vous utiliseriez pour accéder à l'objet si vous n'utilisiez pas des URL signées, y compris vos propres paramètres de chaîne de requête, le cas échéant. Pour plus d'informations sur le format des URL pour les distributions web, consultez Format des URL pour les objets CloudFront (p. 100). Les exemples suivants affichent les valeurs que vous spécifiez pour les distributions web. • L'URL CloudFront suivant concerne un objet d'une distribution web (à l'aide du nom de domaine CloudFront). Notez que image.jpg se trouve dans un répertoire images. Le chemin d'accès à l'objet de l'URL doit correspondre à celui de l'objet de votre serveur HTTP ou de votre compartiment Amazon S3. http://d111111abcdef8.cloudfront.net/images/image.jpg • L'URL CloudFront suivante inclut une chaîne de requête : http://d111111abcdef8.cloudfront.net/images/image.jpg?size=large • Les URL CloudFront suivantes concernent les objets d'une distribution web. Les deux utilisent un nom de domaine alternatif ; le second inclut une chaîne de requête : http://www.example.com/images/image.jpg http://www.example.com/images/image.jpg?color=red • L'URL CloudFront suivante concerne un objet d'une distribution web qui utilise un autre nom de domaine et le protocole HTTPS : https://www.example.com/images/image.jpg Pour les distributions RTMP, les exemples suivants concernent les objets dans deux formats vidéo différents, MP4 et FLV : • MP4 : mp4:sydney-vacation.mp4 API Version 2016-01-13 197 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée • FLV : sydney-vacation • FLV : sydney-vacation.flv Note Pour les fichiers .flv, l'inclusion de l'extension de nom de fichier .flv dépend de votre lecteur. Pour proposer les fichiers audio MP3 ou les fichiers vidéo H.264/ MPEG-4, il se peut que vous ayez besoin de préfixer le nom de fichier avec mp3: ou mp4:. Certains lecteurs multimédias peuvent être configurés pour ajouter le préfixe automatiquement. Le lecteur multimédia peut aussi requérir que vous spécifiiez le nom de fichier sans l'extension de fichier (par exemple, sydney-vacation au lieu de sydney-vacation.mp4). ? Le ? indique que les paramètres de chaîne de requête suivent l'URL de base. Incluez le ? même si vous n'avez aucun de vos paramètres de chaîne de requête. Vos paramètres de chaîne de requête, le cas échéant& Ce champ est facultatif. Si vous voulez ajouter vos propres paramètres de chaîne de requête, par exemple : color=red&size=medium puis ajoutez-les après le ? (voir ) et avant le paramètre Policy. Dans certaines circonstances exceptionnelles, il se peut que vous ayez besoin de placer vos paramètres de chaîne de requête après Key-Pair-Id. Important Vos paramètres ne peuvent pas se nommer Policy, Signature ou Key-Pair-Id. Si vous ajoutez vos propres paramètres, ajoutez un & après chacun d'eux, y compris le dernier. Policy=version encodée en base64 de la déclaration de stratégie Votre déclaration de stratégie au format JSON, avec suppression des espaces, puis encodage en base64. Pour de plus amples informations, veuillez consulter Création d'une déclaration de stratégie pour une URL signée qui utilise une stratégie personnalisée (p. 199). La déclaration de stratégie contrôle l'accès qu'une URL signée accorde à un utilisateur : l'URL de l'objet (pour les distributions web) ou le nom de flux (pour les distributions RTMP), une date et heure d'expiration, une heure et une date (facultatif) auxquelles l'URL devient valide, et une adresse IP ou une plage d'adresses IP (facultatif) autorisées à accéder à l'objet. &Signature=version hachée et signée de la déclaration de stratégie Version hachée, signée et encodée en base 64 de la déclaration de stratégie JSON. Pour de plus amples informations, veuillez consulter Création d'une signature pour une URL signée qui utilise une stratégie personnalisée (p. 204). &Key-Pair-Id=ID de la paire de clés CloudFront active que vous utilisez pour signer la déclaration de stratégie ID d'une paire de clés CloudFront active : par exemple, APKA9ONS7QCOWEXAMPLE. L'ID de paire de clés CloudFront indique à CloudFront la clé publique à utiliser pour valider l'URL signée. CloudFront compare les informations de la signature avec celles de la déclaration de stratégie pour vérifier que l'URL n'a pas été falsifiée. API Version 2016-01-13 198 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée L'ID de paire de clés que vous incluez dans les URL signées CloudFront doit être celui de la paire de clés active de l'un de vos utilisateurs de confiance : • Distributions web : la paire de clés doit être associée à un compte AWS qui soit celui de l'un des utilisateurs de confiance du comportement de cache applicable. • Distributions RTMP : la paire de clés doit être associée à un compte AWS qui soit celui de l'un des utilisateurs de confiance de la distribution. Pour de plus amples informations, veuillez consulter Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). Si vous rendez une paire de clés inactive lors de la rotation des paires de clés CloudFront, et que vous générez des URL par programmation, vous devez mettre à jour votre application pour utiliser une nouvelle paire de clés active pour l'un de vos utilisateurs de confiance. Si vous générez les URL signées manuellement, vous devez créer de nouvelles URL signées. Pour plus d'informations sur la rotation des paires de clés, consultez Rotation de paires de clés CloudFront (p. 184). Exemple d'une URL signée pour une distribution web : http://d111111abcdef8.cloudfront.net/image.jpg ? color=red&size=medium& Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA 6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ 29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiI yMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQ VdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp 7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo &Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~ ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmat EXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6 Id=APKA9ONS7QCOWEXAMPLE &Key-Pair- Exemple d'une URL signée pour une distribution RTMP : videos/mediafile.flv ? color=red&size=medium& Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA 6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ 29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiI yMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQ VdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp 7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo &Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~ ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmat EXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6 Id=APKA9ONS7QCOWEXAMPLE &Key-Pair- Création d'une déclaration de stratégie pour une URL signée qui utilise une stratégie personnalisée Pour créer une déclaration de stratégie pour une stratégie personnalisée, exécutez la procédure suivante. Pour obtenir des exemples de déclaration de stratégie qui contrôlent l'accès aux objets de différentes façons, consultez Exemple d'une déclaration de stratégie pour une URL signée qui utilise une stratégie personnalisée (p. 202). API Version 2016-01-13 199 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée Pour créer la déclaration de stratégie d'une URL signée qui utilise une stratégie personnalisée 1. Construisez la déclaration de stratégie à l'aide du format JSON suivant. Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez dans la déclaration de stratégie d'une URL signée utilisant une stratégie personnalisée (p. 201). { "Statement": [ { "Resource":"URL or stream name of the object", "Condition":{ "DateLessThan":{"AWS:EpochTime":required ending date and time in Unix time format and UTC}, "DateGreaterThan":{"AWS:EpochTime":optional beginning date and time in Unix time format and UTC}, "IpAddress":{"AWS:SourceIp":"optional IP address"} } } ] } Remarques : • Utilisez l'encodage de caractères UTF-8. • Incluez la ponctuation et les noms de paramètre exactement comme spécifié. Les abréviations ne sont pas acceptées pour les noms de paramètre. • L'ordre des paramètres de la section Condition n'importe pas. • Pour plus d'informations sur les valeurs de Resource, DateLessThan, DateGreaterThan et IpAddress, consultez Valeurs que vous spécifiez dans la déclaration de stratégie d'une URL signée utilisant une stratégie personnalisée (p. 201). 2. Supprimez tous les espaces (tabulations et sauts de ligne inclus) de la déclaration de stratégie. Il se peut que vous ayez à inclure des caractères d'échappement dans la chaîne du code applicatif. 3. Encodez en base64 la déclaration de stratégie à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. 4. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) = _ (soulignement) / ~ (tilde) 5. Ajoutez la valeur obtenue à votre URL signée après Policy=. 6. Créez une signature pour l'URL signée en hachant, signant et encodant en base64 la déclaration de stratégie. Pour de plus amples informations, veuillez consulter Création d'une signature pour une URL signée qui utilise une stratégie personnalisée (p. 204). API Version 2016-01-13 200 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée Valeurs que vous spécifiez dans la déclaration de stratégie d'une URL signée utilisant une stratégie personnalisée Lorsque vous créez une déclaration de stratégie pour une stratégie personnalisée, vous spécifiez les valeurs suivantes. Ressource La valeur que vous spécifiez varie selon que vous créez l'URL signée pour une distribution Web ou une distribution RTMP. Note Vous ne pouvez spécifier qu'une seule valeur pour Resource. Distributions web (facultatif, mais recommandé) URL de base incluant vos chaînes de requête, le cas échéant, mais excluant les paramètres CloudFront Policy, Signature et Key-Pair-Id, par exemple : http://d111111abcdef8.cloudfront.net/images/horizon.jpg? size=large&license=yes Caution Si vous omettez le paramètre Resource pour une distribution web, les utilisateurs peuvent accéder à tous les objets associés à une distribution elle-même associée à la paire de clés que vous utilisez pour créer l'URL signée. Remarques : • Protocole : la valeur doit commencer par http://, https:// ou *. • Paramètres de chaîne de requête : si vous n'avez aucun paramètre de chaîne de requête, omettez le point d'interrogation. • Caractères génériques : vous pouvez utiliser le caractère générique qui correspond à zéro caractère ou plus (*) ou celui qui correspond exactement à un seul caractère (?) à n'importe quel emplacement de la chaîne. Par exemple, la valeur : http*://d111111abcdef8.cloudfront.net/*game_download.zip* inclut (par exemple) la totalité des objets suivants : • http://d111111abcdef8.cloudfront.net/example_game_download.zip? license=yes • https://d111111abcdef8.cloudfront.net/example_game_download.zip? license=yes • http://d111111abcdef8.cloudfront.net/test_game_download.zip? license=temp • https://d111111abcdef8.cloudfront.net/test_game_download.zip? license=temp • Noms de domaine alternatifs : si vous spécifiez un nom de domaine alternatif (CNAME) dans l'URL, vous devez le spécifier lorsque vous référencez l'objet dans votre page ou application web. Ne spécifiez pas l'URL Amazon S3 pour l'objet. Distributions RTMP Incluez uniquement le nom du flux. Par exemple, si l'URL complète concernant une vidéo en streaming est : rtmp://s5c39gqb8ow64r.cloudfront.net/videos/cfx/st/mp3_name.mp3 utilisez la valeur suivante pour Resource : API Version 2016-01-13 201 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée videos/mp3_name N'incluez pas un préfixe tel que mp3: ou mp4:. De même, selon le lecteur que vous utilisez, il se peut que vous ayez à omettre l'extension de fichier de la valeur de Resource. Par exemple, il se peut que vous ayez besoin d'utiliser sydney-vacation au lieu de sydneyvacation.flv. DateLessThan Date et heure d'expiration de l'URL au format horaire Unix (en secondes) et en heure UTC. N'entourez pas la valeur de points d'interrogation. Pour plus d'informations sur UTC, consultez RFC 3339, Date and Time on the Internet: Timestamps, http://tools.ietf.org/html/rfc3339. Par exemple, la date 1er janvier 2013 10 h 00 UTC est convertie en 1357034400 au format horaire Unix. Il s'agit du seul paramètre obligatoire de la section Condition. CloudFront requiert cette valeur pour empêcher les utilisateurs d'avoir un accès permanent à votre contenu privé. Pour de plus amples informations, veuillez consulter Quand CloudFront vérifie-t-il la date et l'heure d'expiration dans une URL signée ? (p. 188) DateGreaterThan (facultatif) (Facultatif) Date et heure de début de l'URL au format horaire Unix (en secondes) et en heure UTC. Les utilisateurs ne sont pas autorisés à accéder à l'objet avant la date et l'heure spécifiées. N'entourez pas la valeur de points d'interrogation. IpAddress (facultatif) Adresse IP du client formulant la demande GET. Remarques : • Pour autoriser une adresse IP à accéder à l'objet, omettez le paramètre IpAddress. • Vous pouvez spécifier une adresse IP ou une plage d'adresses IP. Par exemple, vous pouvez définir la stratégie pour autoriser l'accès si l'adresse IP du client figure dans l'une des deux plages distinctes. • Pour autoriser l'accès depuis une seule adresse IP, vous spécifiez : "Adresse IP IPv4/32" • Vous devez spécifier les plages d'adresses IP selon le format IPv4 CIDR standard (par exemple, 10.52.176.0/24). Pour plus d'informations, consultez RFC 4632, Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan, http://tools.ietf.org/ html/rfc4632. Exemple d'une déclaration de stratégie pour une URL signée qui utilise une stratégie personnalisée Les exemples suivants de déclaration de stratégie montrent comment accéder à un objet spécifique, à tous les objets d'un répertoire ou à tous les objets associés à un ID de paire de clés. Les exemples montrent aussi comment contrôler l'accès depuis une adresse IP individuelle ou une plage d'adresses IP, et comment empêcher les utilisateurs d'employer l'URL signée au-delà d'une date et heure spécifiées. Si vous copiez et collez l'un de ces exemples, supprimez les espaces (y compris les tabulations et les sauts de ligne), remplacez les valeurs applicables par vos propres valeurs et incluez un nouveau caractère de saut de ligne après l'accolade fermante ( } ). Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez dans la déclaration de stratégie d'une URL signée utilisant une stratégie personnalisée (p. 201). Rubriques • Exemple de déclaration de stratégie : accès à un objet à partir d'une plage d'adresses IP (p. 203) API Version 2016-01-13 202 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée • Exemple de déclaration de stratégie : accès à tous les objets d'un répertoire à partir d'une plage d'adresses IP (p. 203) • Exemple de déclaration de stratégie : accès à tous les objets associés à un ID de paire de clés à partir d'une adresse IP (p. 203) Exemple de déclaration de stratégie : accès à un objet à partir d'une plage d'adresses IP L'exemple suivant de stratégie personnalisée dans une URL signée spécifie qu'un utilisateur peut accéder à l'objet http://d111111abcdef8.cloudfront.net/game_download.zip à partir des adresses IP de la plage 192.0.2.0/24 jusqu'au 1er janvier 2013 10 h 00 UTC : { "Statement": [ { "Resource":"http://d111111abcdef8.cloudfront.net/game_download.zip", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"}, "DateLessThan":{"AWS:EpochTime":1357034400} } } ] } Exemple de déclaration de stratégie : accès à tous les objets d'un répertoire à partir d'une plage d'adresses IP L'exemple suivant de stratégie personnalisée vous permet de créer des URL signées pour n'importe quel objet du répertoire training, comme indiqué par le caractère générique * du paramètre Resource. Les utilisateurs peuvent accéder à l'objet depuis une adresse IP de la plage 192.0.2.0/24 jusqu'au 1er janvier 2013 10 h 00 UTC : { "Statement": [ { "Resource":"http://d111111abcdef8.cloudfront.net/training/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"}, "DateLessThan":{"AWS:EpochTime":1357034400} } } ] } Chaque URL signée dans laquelle vous utilisez cette stratégie inclut une URL de base qui identifie un objet spécifique ; par exemple : http://d111111abcdef8.cloudfront.net/training/orientation.pdf Exemple de déclaration de stratégie : accès à tous les objets associés à un ID de paire de clés à partir d'une adresse IP L'exemple suivant de stratégie personnalisée vous permet de créer des URL signées pour tout objet associé à une distribution, comme indiqué par le caractère générique * du paramètre Resource. L'utilisateur doit employer l'adresse IP 192.0.2.10/32. (La valeur 192.0.2.10/32 en notation CIDR API Version 2016-01-13 203 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée fait référence à une seule adresse IP, 192.0.2.10.) Les objets ne sont disponibles qu'entre le 1er janvier 2013 10 h 00 UTC et le 2 janvier 2013 10 h 00 UTC : { "Statement": [ { "Resource":"http://*", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.10/32"}, "DateGreaterThan":{"AWS:EpochTime":1357034400}, "DateLessThan":{"AWS:EpochTime":1357120800} } } ] } Chaque URL signée dans laquelle vous utilisez cette stratégie inclut une URL de base qui identifie un objet spécifique d'une distribution CloudFront donnée ; par exemple : http://d111111abcdef8.cloudfront.net/training/orientation.pdf L'URL signée inclut aussi un ID de paire de clés, qui doit être associé à un utilisateur de confiance de la distribution (d111111abcdef8.cloudfront.net) que vous spécifiez dans l'URL de base. Création d'une signature pour une URL signée qui utilise une stratégie personnalisée La signature d'une URL signée utilisant une stratégie personnalisée est une version hachée, signée et encodée en base64 de la déclaration de stratégie. Pour créer une signature pour une stratégie personnalisée, exécutez la procédure applicable. La version que vous choisissez dépend de votre type de distribution (web ou RTMP) et, pour les distributions RTMP, le lecteur multimédia que vous utilisez (Adobe Flash Player ou autre lecteur) : • Option 1 : créer une signature pour une distribution web ou une distribution RTMP (sans Adobe Flash Player) à l'aide d'une stratégie personnalisée (p. 204) • Option 2 : créer une signature pour une distribution RTMP à l'aide d'une stratégie personnalisée (Adobe Flash Player) (p. 205) Pour plus d'informations et d'exemples sur la façon de hacher, signer et encoder la déclaration de stratégie, consultez : • Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 (p. 223) • Exemples de code pour la création de la signature d'une URL signée (p. 224) • Outils et exemples de codes pour la configuration de contenu privé (p. 367) Option 1 : créer une signature pour une distribution web ou une distribution RTMP (sans Adobe Flash Player) à l'aide d'une stratégie personnalisée 1. Utilisez la fonction de hachage SHA-1 et RSA pour hacher et signer la déclaration de stratégie JSON que vous avez créée dans la procédure Pour créer la déclaration de stratégie d'une URL signée qui utilise une stratégie personnalisée (p. 200). Utilisez la version de la déclaration de stratégie qui n'inclut plus d'espaces, mais qui n'a pas encore été encodée en base64. Pour la clé privée requise par la fonction de hachage, utilisez la clé privée associée à l'utilisateur de confiance actif applicable. API Version 2016-01-13 204 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée Note La méthode que vous utilisez pour hacher et signer la déclaration de stratégie dépend du langage de programmation et de la plateforme. Pour un exemple de code, consultez Exemples de code pour la création de la signature d'une URL signée (p. 224). 2. Supprimez les espaces (tabulations et sauts de ligne inclus) de la chaîne hachée et signée. 3. Encodez en base64 la chaîne à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. 4. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. 5. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) = _ (soulignement) / ~ (tilde) Ajoutez la valeur obtenue à votre URL signée après &Signature=, et retournez àPour créer une URL signée utilisant une stratégie personnalisée (p. 197) pour terminer la concaténation des parties de votre URL signée. Option 2 : créer une signature pour une distribution RTMP à l'aide d'une stratégie personnalisée (Adobe Flash Player) 1. Utilisez la fonction de hachage SHA-1 et RSA pour hacher et signer la déclaration de stratégie JSON que vous avez créée dans la procédure Pour créer la déclaration de stratégie d'une URL signée qui utilise une stratégie personnalisée (p. 200). Utilisez la version de la déclaration de stratégie qui n'inclut plus d'espaces, mais qui n'a pas encore été encodée en base64. Pour la clé privée requise par la fonction de hachage, utilisez la clé privée associée à l'utilisateur de confiance actif applicable. Note La méthode que vous utilisez pour hacher et signer la déclaration de stratégie dépend du langage de programmation et de la plateforme. Pour un exemple de code, consultez Exemples de code pour la création de la signature d'une URL signée (p. 224). 2. Supprimez les espaces (tabulations et sauts de ligne inclus) de la chaîne hachée et signée. Poursuivez à l'étape 3 si le nom du flux est transmis depuis une page web. Si le nom du flux n'est pas transmis depuis une page web, ignorez le reste de la procédure. Par exemple, si vous écrivez votre propre lecteur qui extrait les noms de flux depuis le fichier Adobe Flash .swf, ignorez le reste de la procédure. 3. Encodez en base64 la chaîne à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. 4. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) API Version 2016-01-13 205 Amazon CloudFront Guide du développeur Création d'une URL signée utilisant une stratégie personnalisée 5. Remplacer ces caractères non valides Par ces caractères valides = _ (soulignement) / ~ (tilde) Certaines versions d'Adobe Flash Player requièrent les caractères d'encodage par URL ?, =et &. Pour savoir si votre version d'Adobe Flash Player nécessite cette substitution de caractère, reportez-vous au site web Adobe. Si votre version Adobe Flash Player ne nécessite pas les caractères d'encodage par URL ?, = et &, passez à l'étape 6. Si votre version Adobe Flash Player requiert ces caractères, remplacez-les comme indiqué dans le tableau suivant. (Vous avez déjà remplacé = dans l'étape précédente.) 6. Remplacer ces caractères non valides Par cet encodage par URL ? %3F & %26 Ajoutez la valeur obtenue à votre URL signée après &Signature=, et retournez àPour créer une URL signée utilisant une stratégie personnalisée (p. 197) pour terminer la concaténation des parties de votre URL signée. API Version 2016-01-13 206 Amazon CloudFront Guide du développeur Utilisation de cookies signés Utilisation de cookies signés Les cookies signés CloudFront vous permettent de contrôler les personnes autorisées à accéder à votre contenu quand vous ne voulez pas modifier vos URL actives ou que vous ne voulez pas fournir l'accès à plusieurs fichiers restreints (par exemple, tous les fichiers de la section des abonnés d'un site web). Cette rubrique explique l'utilisation des cookies signés et décrit comment les définir à l'aide de stratégies prédéfinies et personnalisées. Rubriques • Choix entre les stratégies prédéfinies et les stratégies personnalisées pour les cookies signés (p. 207) • Fonctionnement des cookies signés (p. 208) • Prévention du mauvais usage des cookies signés (p. 208) • Quand CloudFront vérifie-t-il la date et l'heure d'expiration d'un cookie signé ? (p. 209) • Exemple de code et outils tiers (p. 209) • Définition de cookies signés à l'aide d'une stratégie prédéfinie (p. 209) • Définition de cookies signés utilisant une stratégie personnalisée (p. 215) Choix entre les stratégies prédéfinies et les stratégies personnalisées pour les cookies signés Lorsque vous créez un cookie signé, vous écrivez une instruction de stratégie au format JSON qui spécifie les restrictions sur le cookie signé : par exemple, la durée de validité du cookie. Vous pouvez utiliser une stratégie prédéfinie ou une stratégie personnalisée. Le tableau suivant compare les stratégies prédéfinies et les stratégies personnalisées : Description Stratégie prédéfinie Stratégie personnalisée Vous pouvez réutiliser la déclaration de stratégie pour plusieurs objets. Pour ce faire, vous devez utiliser les caractères génériques de l'objet Resource. Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez dans la déclaration de stratégie d'une stratégie personnalisée pour les cookies signés (p. 218).) Non Oui Vous pouvez indiquer la date et l'heure auxquelles les utilisateurs peuvent commencer à accéder à votre contenu Non Oui (facultatif) Vous pouvez indiquer la date et l'heure auxquelles les utilisateurs ne peuvent plus accéder à votre contenu Oui Oui Vous pouvez spécifier l'adresse IP ou la plage d'adresses IP des utilisateurs qui peuvent accéder à votre contenu Non Oui (facultatif) Pour plus d'informations sur la création de cookies signés à l'aide d'une stratégie prédéfinie, consultez Définition de cookies signés à l'aide d'une stratégie prédéfinie (p. 209). Pour plus d'informations sur la création de cookies signés à l'aide d'une stratégie personnalisée, consultez Définition de cookies signés utilisant une stratégie personnalisée (p. 215). API Version 2016-01-13 207 Amazon CloudFront Guide du développeur Fonctionnement des cookies signés Fonctionnement des cookies signés Voici une présentation de la façon dont vous configurez CloudFront pour les cookies signés et de la façon dont CloudFront répond quand un utilisateur adresse une demande qui contient un cookie signé. 1. 2. Dans votre distribution CloudFront, vous spécifiez un ou plusieurs utilisateurs de confiance, qui sont les comptes AWS dont vous voulez qu'ils aient l'autorisation de créer des URL signées et des cookies signés. Pour de plus amples informations, veuillez consulter Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). Vous développez votre application pour déterminer si un utilisateur doit avoir accès à votre contenu et, si tel est le cas, pour envoyer trois en-têtes Set-Cookie à la visionneuse. (Chaque en-tête Set-Cookie peut ne contenir qu'une seule paire nom-valeur, et un cookie signé CloudFront requiert trois paires nom-valeur.) Vous devez envoyer les en-têtes Set-Cookie à la visionneuse avant qu'il ne demande votre contenu privé. Si vous définissez une durée d'expiration brève sur le cookie, il se peut aussi que vous vouliez envoyer trois en-têtes SetCookie supplémentaires en réponse aux demandes suivantes, de telle sorte que l'utilisateur puisse continuer à y accéder. Généralement, votre distribution CloudFront possède au moins deux comportements de cache, l'un qui ne nécessite pas d'authentification et l'autre qui en nécessite une. La page d'erreur de la partie sécurisé du site inclut une redirection ou un lien vers une page de connexion. 3. Si vous configurez votre distribution pour mettre en cache les objets basés sur des cookies, CloudFront ne met pas en cache les objets distincts basés sur les attributs des cookies signés. Un utilisateur se connecte à votre site web et paie le contenu ou satisfait à quelques autres exigences pour l'accès. 4. Votre application retourne les en-têtes Set-Cookie dans la réponse, et la visionneuse stocke les paires nom-valeur. 5. L'utilisateur demande un objet. 6. Le navigateur de la visionneuse ou une autre visionneuse obtient les paires nom-valeur de l'étape 4 et les ajoute à la demande dans un en-tête Cookie. Il s'agit du cookie signé. CloudFront utilise la clé publique pour valider la signature du cookie signé et confirmer que le cookie n'a pas été falsifié. Si la signature n'est pas valide, la demande est rejetée. Si la signature du cookie est valide, CloudFront regarde la déclaration de stratégie du cookie (ou en construit une si vous utilisez une stratégie prédéfinie) pour confirmer que la demande continue à être valide. Par exemple, si vous avez spécifié une date et une heure de début et de fin pour le cookie, CloudFront confirme que l'utilisateur essaie d'accéder à votre contenu durant la période pendant laquelle vous autorisez l'accès. Si la demande satisfait aux conditions de la déclaration de stratégie, CloudFront propose votre contenu comme il le fait pour un contenu qui n'est pas limité : il détermine si l'objet est déjà dans le cache périphérique, transmet la demande à l'origine si nécessaire et retourne l'objet à l'utilisateur. Prévention du mauvais usage des cookies signés Si vous spécifiez le paramètre Domain dans un en-tête Set-Cookie, spécifiez la valeur la plus précise possible pour limiter l'accès potentiel par une personne ayant le même nom de domaine racine. Par exemple, apex.example.com est préférable à example.com, particulièrement quand vous ne contrôlez pas example.com. Vous empêchez ainsi qu'une personne accède à votre contenu depuis nadir.example.com. Pour empêcher ce type d'attaque, procédez comme suit : API Version 2016-01-13 208 Amazon CloudFront Guide du développeur Quand CloudFront vérifie-t-il la date et l'heure d'expiration d'un cookie signé ? • Excluez les attributs de cookie Expires et Max-Age, de telle sorte que l'en-tête Set-Cookie crée un cookie de session. Les cookies de session sont automatiquement supprimés quand l'utilisateur clôt le navigateur, ce qui réduit la possibilité que quelqu'un n'obtienne un accès non autorisé à votre contenu. • Incluez l'attribut Secure, de telle sorte que le cookie soit chiffré quand une visionneuse l'inclut dans une demande. • Chaque fois que possible, utilisez une stratégie personnalisée et incluez l'adresse IP de la visionneuse. • Dans l'attribut CloudFront-Expires, spécifiez la durée d'expiration raisonnable la plus courte selon la période pendant laquelle vous autorisez les utilisateurs à accéder à votre contenu. Quand CloudFront vérifie-t-il la date et l'heure d'expiration d'un cookie signé ? Pour déterminer si un cookie signé est toujours valide, CloudFront contrôle la date et l'heure d'expiration du cookie au moment de la requête HTTP. Si un client commence à télécharger un objet volumineux immédiatement avant la date d'expiration, le téléchargement se termine même si la date d'expiration intervient pendant le téléchargement. Si la connexion TCP cesse et que le client essaie de redémarrer le téléchargement une fois la date d'expiration passée, le téléchargement échoue. Si un client utilise Range GET pour obtenir un objet en parties plus petites, toute demande GET qui intervient après la date d'expiration échoue. Pour plus d'informations sur Range GET, consultez Traitement par CloudFront des demandes partielles pour un objet (Range GET) (p. 136). Exemple de code et outils tiers L'exemple de code de contenu privé montre uniquement comment créer la signature pour les URL signées. Cependant, le processus de création d'une signature d'un cookie signé étant très similaire, une grande partie de l'exemple de code continue à être pertinente. Pour plus d'informations, consultez les rubriques suivantes : • Créer une signature d'URL avec Perl (p. 224) • Créer une signature d'URL avec PHP (p. 226) • Créer une signature d'URL avec C# et le .NET framework (p. 228) • Créer une signature d'URL avec Java (p. 234) Un exemple de code supplémentaire de création d'URL signées est disponible sur la page Bibliothèques et exemples de code Amazon CloudFront. Pour plus d'informations sur les outils tiers qui prennent en charge le contenu privé, y compris la création d'URL signées, consultez Outils et exemples de codes pour la configuration de contenu privé (p. 367). Définition de cookies signés à l'aide d'une stratégie prédéfinie Rubriques • Création d'une signature pour un cookie signé qui utilise une stratégie prédéfinie (p. 212) Pour définir un cookie signé à l'aide d'une stratégie prédéfinie, exécutez la procédure suivante. API Version 2016-01-13 209 Amazon CloudFront Guide du développeur Définition de cookies signés à l'aide d'une stratégie prédéfinie Pour définir un cookie signé à l'aide d'une stratégie prédéfinie 1. Si vous utilisez .NET ou Java pour créer des URL signées et si vous n'avez pas reformaté la clé privée de votre paire de clés du format par défaut .pem en un format compatible avec .NET ou Java, procédez comme suit : Pour de plus amples informations, veuillez consulter Reformatage de la clé privée CloudFront (.NET et Java uniquement) (p. 181). 2. Programmez votre application pour qu'elle envoie trois en-têtes Set-Cookie aux visionneuses approuvées. Vous avez besoin de trois en-têtes Set-Cookie parce que chaque en-tête SetCookie ne peut contenir qu'une seule paire nom-valeur, et qu'un cookie signé CloudFront nécessite trois paires nom-valeur. Les paires nom-valeur sont : CloudFront-Expires, CloudFront-Signature et CloudFront-Key-Pair-Id. Les valeurs doivent être présentes sur la visionneuse avant qu'un utilisateur ne puisse faire la demande d'un objet dont vous voulez contrôler l'accès. Note En règle générale, nous recommandons d'exclure les attributs Expires et Max-Age. L'exclusion des attributs conduit le navigateur à supprimer le cookie quand l'utilisateur ferme le navigateur, ce qui réduit la possibilité qu'une personne obtienne un accès non autorisé à votre contenu. Pour de plus amples informations, veuillez consulter Prévention du mauvais usage des cookies signés (p. 208). Les noms des attributs de cookie sont sensibles à la casse. Les sauts de ligne ne sont inclus que pour rendre les attributs plus lisibles. Set-Cookie: Domain=optional domain name; Path=/optional directory path; Secure; HttpOnly; CloudFront-Expires=date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC) Set-Cookie: Domain=optional domain name; Path=/optional directory path; Secure; HttpOnly; CloudFront-Signature=hashed and signed version of the policy statement Set-Cookie: Domain=optional domain name; Path=/optional directory path; Secure; HttpOnly; CloudFront-Key-Pair-Id=active CloudFront key pair Id for the key pair that you are using to generate the signature (Facultatif) Domain Nom de domaine de l'objet demandé. Si vous ne spécifiez pas un attribut Domain, la valeur par défaut est le nom de domaine de l'URL et ne s'applique qu'au nom de domaine spécifié, non aux sous-domaines. Si vous spécifiez un attribut Domain, il s'applique aussi aux sousdomaines. Un point devant le nom de domaine (par exemple, Domain=.example.com) est facultatif. De plus, si vous spécifiez un attribut Domain, le nom de domaine de l'URL et la valeur de l'attribut Domain doivent correspondre. API Version 2016-01-13 210 Amazon CloudFront Guide du développeur Définition de cookies signés à l'aide d'une stratégie prédéfinie Vous pouvez spécifier le nom de domaine que CloudFront a affecté à votre distribution (par exemple, d111111abcdef8.cloudfront.net), mais vous ne pouvez pas spécifier *.cloudfront.net pour le nom de domaine. Si vous souhaitez utiliser un nom de domaine alternatif tel qu'example.com dans les URL, vous devez ajouter le nom de domaine alternatif à votre distribution, que vous spécifiiez l'attribut Domain ou non. Pour plus d'informations, consultez Noms de domaine alternatifs (CNAME) (p. 74) dans la rubrique Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). (Facultatif) Path Chemin d'accès de l'objet demandé. Si vous ne spécifiez pas d'attribut Path, la valeur par défaut est le chemin d'accès de l'URL. Sécurité Nécessite que la visionneuse chiffre les cookies avant d'envoyer une demande. Il est recommandé d'envoyer l'en-tête Set-Cookie sur une connexion HTTPS pour garantir que les attributs du cookie sont protégés contre les attaques MITM. HttpOnly Requiert que la visionneuse n'envoie le cookie que dans les requêtes HTTP ou HTTPS. CloudFront-Expires Spécifie la date et l'heure d'expiration au format horaire Unix et en heure UTC. Par exemple, la date 16 mars 2015 10 h 00 UTC est convertie en 1426500000 au format horaire Unix. Pour plus d'informations sur UTC, consultez RFC 3339, Date and Time on the Internet: Timestamps, http://tools.ietf.org/html/rfc3339. CloudFront-Signature Version hachée, signée et encodée en base 64 d'une déclaration de stratégie JSON. Pour de plus amples informations, veuillez consulter Création d'une signature pour un cookie signé qui utilise une stratégie prédéfinie (p. 212). CloudFront-Key-Pair-Id ID d'une paire de clés CloudFront active : par exemple, APKA9ONS7QCOWEXAMPLE. L'ID de paire de clés CloudFront indique à CloudFront la clé publique à utiliser pour valider le cookie signé. CloudFront compare les informations de la signature avec celles de la déclaration de stratégie pour vérifier que l'URL n'a pas été falsifiée. L'ID de paire de clés que vous incluez dans les cookies signés CloudFront doit être associé à un compte AWS qui soit celui de l'un des utilisateurs de confiance du comportement de cache applicable. Pour de plus amples informations, veuillez consulter Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). Si vous rendez une paire de clés inactive lors de la rotation des paires de clés CloudFront, vous devez mettre à jour votre application pour utiliser une nouvelle paire de clés active pour l'un de vos utilisateurs de confiance. Pour plus d'informations sur la rotation des paires de clés, consultez Rotation de paires de clés CloudFront (p. 184). Exemples d'en-tête Set-Cookie d'un cookie signé quand vous utilisez le nom de domaine associé à votre distribution dans les URL de vos objets : Set-Cookie: Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly; CloudFront-Expires=1426500000 Set-Cookie: Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly; CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_ Set-Cookie: Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly; CloudFront-Key-Pair-Id=APKA9ONS7QCOWEXAMPLE API Version 2016-01-13 211 Amazon CloudFront Guide du développeur Définition de cookies signés à l'aide d'une stratégie prédéfinie Exemples d'en-tête Set-Cookie d'un cookie signé quand vous utilisez le nom de domaine alternatif example.org dans les URL de vos objets : Set-Cookie: Domain=example.org; Path=/images/*; Secure; HttpOnly; CloudFrontExpires=1426500000 Set-Cookie: Domain=example.org; Path=/images/*; Secure; HttpOnly; CloudFrontSignature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_ Set-Cookie: Domain=example.org; Path=/images/*; Secure; HttpOnly; CloudFrontKey-Pair-Id=APKA9ONS7QCOWEXAMPLE Si vous souhaitez utiliser un nom de domaine alternatif tel qu'example.com dans les URL, vous devez ajouter le nom de domaine alternatif à votre distribution, que vous spécifiiez l'attribut Domain ou non. Pour plus d'informations, consultez Noms de domaine alternatifs (CNAME) (p. 74) dans la rubrique Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). Création d'une signature pour un cookie signé qui utilise une stratégie prédéfinie Pour créer la signature d'un cookie signée qui utilise une stratégie prédéfinie, exécutez les tâches suivantes : 1. Créer une déclaration de stratégie. Voir Création d'une déclaration de stratégie pour un cookie signé qui utilise une stratégie prédéfinie (p. 212). 2. Signer la déclaration de stratégie pour créer une signature. Voir Signature d'une déclaration de stratégie pour créer une signature pour un cookie signé qui utilise une stratégie prédéfinie (p. 214). Création d'une déclaration de stratégie pour un cookie signé qui utilise une stratégie prédéfinie Lorsque vous définissez un cookie signé qui utilise une stratégie prédéfinie, l'attribut CloudFrontSignature est une version hachée et signée d'une déclaration de stratégie. Pour les cookies signés qui utilisent une stratégie prédéfinie, vous n'incluez pas la déclaration de stratégie dans l'en-tête SetCookie, comme vous le faites pour les cookies signés qui utilisent une stratégie personnalisée. Pour créer la déclaration de stratégie, utilisez la procédure suivante. Pour créer une déclaration de stratégie pour un cookie signé qui utilise une stratégie prédéfinie 1. Construisez la déclaration de stratégie à l'aide du format JSON suivant et de l'encodage de caractères UTF-8. Incluez la ponctuation et les autres valeurs littérales exactement comme spécifié. Pour plus d'informations sur les paramètres Resource et DateLessThan, consultez Valeurs que vous spécifiez dans la déclaration de stratégie d'une stratégie prédéfinie pour les cookies signés (p. 213). { "Statement":[ { "Resource":"base URL or stream name", "Condition":{ "DateLessThan":{ "AWS:EpochTime":ending date and time in Unix time format and UTC } } } API Version 2016-01-13 212 Amazon CloudFront Guide du développeur Définition de cookies signés à l'aide d'une stratégie prédéfinie ] } 2. Supprimez tous les espaces (tabulations et sauts de ligne inclus) de la déclaration de stratégie. Il se peut que vous ayez à inclure des caractères d'échappement dans la chaîne du code applicatif. Valeurs que vous spécifiez dans la déclaration de stratégie d'une stratégie prédéfinie pour les cookies signés Lorsque vous créez une déclaration de stratégie pour une stratégie prédéfinie, vous spécifiez les valeurs suivantes : Ressource L'URL de base incluant vos chaînes de requête, le cas échéant ; par exemple : http://d111111abcdef8.cloudfront.net/images/horizon.jpg? size=large&license=yes Vous ne pouvez spécifier qu'une seule valeur pour Resource. Remarques : • Protocole : la valeur doit commencer par http://, https:// ou http*://. • Paramètres de chaîne de requête : si vous n'avez aucun paramètre de chaîne de requête, omettez le point d'interrogation. • Noms de domaine alternatifs : si vous spécifiez un nom de domaine alternatif (CNAME) dans l'URL, vous devez le spécifier lorsque vous référencez l'objet dans votre page ou application web. Ne spécifiez pas l'URL Amazon S3 pour l'objet. DateLessThan Date et heure d'expiration de l'URL au format horaire Unix (en secondes) et en heure UTC. N'entourez pas la valeur de points d'interrogation. Par exemple, la date 16 mars 2015 10 h 00 UTC est convertie en 1426500000 au format horaire Unix. Cette valeur doit correspondre à la valeur de l'attribut CloudFront-Expires de l'en-tête SetCookie. N'entourez pas la valeur de points d'interrogation. Pour de plus amples informations, veuillez consulter Quand CloudFront vérifie-t-il la date et l'heure d'expiration d'un cookie signé ? (p. 209). Exemple de déclaration de stratégie pour une stratégie prédéfinie Lorsque vous utilisez l'exemple de déclaration de stratégie suivant dans un cookie signé, un utilisateur peut accéder à l'objet http://d111111abcdef8.cloudfront.net/horizon.jpg jusqu'au 16 mars 2015 10 h 00 UTC : { "Statement":[ { "Resource":"http://d111111abcdef8.cloudfront.net/horizon.jpg? size=large&license=yes", "Condition":{ "DateLessThan":{ "AWS:EpochTime":1426500000 } API Version 2016-01-13 213 Amazon CloudFront Guide du développeur Définition de cookies signés à l'aide d'une stratégie prédéfinie } } ] } Signature d'une déclaration de stratégie pour créer une signature pour un cookie signé qui utilise une stratégie prédéfinie Pour créer la valeur de l'attribut CloudFront-Signature d'un en-tête Set-Cookie, vous hachez et signez la déclaration de stratégie que vous avez créée dans Pour créer une déclaration de stratégie pour un cookie signé qui utilise une stratégie prédéfinie (p. 212). Pour plus d'informations et d'exemples sur la façon de hacher, signer et encoder la déclaration de stratégie, consultez les rubriques suivantes : • Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 (p. 223) • Exemples de code pour la création de la signature d'une URL signée (p. 224) • Outils et exemples de codes pour la configuration de contenu privé (p. 367) Pour créer une signature pour un cookie signé qui utilise une stratégie prédéfinie 1. Utilisez la fonction de hachage SHA-1 et RSA pour hacher et signer la déclaration de stratégie que vous avez créée dans la procédure Pour créer une déclaration de stratégie pour un cookie signé qui utilise une stratégie prédéfinie (p. 212). Utilisez la version de la déclaration de stratégie qui n'inclut plus d'espaces. Pour la clé privée requise par la fonction de hachage, utilisez la clé privée associée à l'utilisateur de confiance actif applicable. Note La méthode que vous utilisez pour hacher et signer la déclaration de stratégie dépend du langage de programmation et de la plateforme. Pour un exemple de code, consultez Exemples de code pour la création de la signature d'une URL signée (p. 224). 2. Supprimez les espaces (tabulations et sauts de ligne inclus) de la chaîne hachée et signée. 3. Encodez en base64 la chaîne à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. 4. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. 5. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) = _ (soulignement) / ~ (tilde) Incluez la valeur obtenue dans l'en-tête Set-Cookie de la paire nom-valeur CloudFrontSignature. Puis, revenez pour Pour définir un cookie signé à l'aide d'une stratégie prédéfinie (p. 210) ajouter l'en-tête Set-Cookie pour CloudFront-Key-Pair-Id. API Version 2016-01-13 214 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée Définition de cookies signés utilisant une stratégie personnalisée Rubriques • Création d'une déclaration de stratégie pour un cookie signé qui utilise une stratégie personnalisée (p. 217) • Exemple d'une déclaration de stratégie pour un cookie signé qui utilise une stratégie personnalisée (p. 219) • Création d'une signature pour un cookie signé qui utilise une stratégie personnalisée (p. 221) Pour définir un cookie signé utilisant une stratégie personnalisée, exécutez la procédure suivante. Pour définir un cookie signé utilisant une stratégie personnalisée 1. Si vous utilisez .NET ou Java pour créer des URL signées et si vous n'avez pas reformaté la clé privée de votre paire de clés du format par défaut .pem en un format compatible avec .NET ou Java, procédez comme suit : Pour de plus amples informations, veuillez consulter Reformatage de la clé privée CloudFront (.NET et Java uniquement) (p. 181). 2. Programmez votre application pour qu'elle envoie trois en-têtes Set-Cookie aux visionneuses approuvées. Vous avez besoin de trois en-têtes Set-Cookie parce que chaque en-tête SetCookie ne peut contenir qu'une seule paire nom-valeur, et qu'un cookie signé CloudFront nécessite trois paires nom-valeur. Les paires nom-valeur sont : CloudFront-Policy, CloudFront-Signature et CloudFront-Key-Pair-Id. Les valeurs doivent être présentes sur la visionneuse avant qu'un utilisateur ne puisse faire la demande d'un objet dont vous voulez contrôler l'accès. Note En règle générale, nous recommandons d'exclure les attributs Expires et Max-Age. Cette exclusion conduit le navigateur à supprimer le cookie quand l'utilisateur ferme le navigateur, ce qui réduit la possibilité qu'une personne obtienne un accès non autorisé à votre contenu. Pour de plus amples informations, veuillez consulter Prévention du mauvais usage des cookies signés (p. 208). Les noms des attributs de cookie sont sensibles à la casse. Les sauts de ligne ne sont inclus que pour rendre les attributs plus lisibles. Set-Cookie: Domain=optional domain name; Path=/optional directory path; Secure; HttpOnly; CloudFront-Policy=base64 encoded version of the policy statement Set-Cookie: Domain=optional domain name; Path=/optional directory path; Secure; HttpOnly; CloudFront-Signature=hashed and signed version of the policy statement Set-Cookie: Domain=optional domain name; API Version 2016-01-13 215 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée Path=/optional directory path; Secure; HttpOnly; CloudFront-Key-Pair-Id=active CloudFront key pair Id for the key pair that you are using to generate the signature (Facultatif) Domain Nom de domaine de l'objet demandé. Si vous ne spécifiez pas un attribut Domain, la valeur par défaut est le nom de domaine de l'URL et ne s'applique qu'au nom de domaine spécifié, non aux sous-domaines. Si vous spécifiez un attribut Domain, il s'applique aussi aux sousdomaines. Un point devant le nom de domaine (par exemple, Domain=.example.com) est facultatif. De plus, si vous spécifiez un attribut Domain, le nom de domaine de l'URL et la valeur de l'attribut Domain doivent correspondre. Vous pouvez spécifier le nom de domaine que CloudFront a affecté à votre distribution (par exemple, d111111abcdef8.cloudfront.net), mais vous ne pouvez pas spécifier *.cloudfront.net pour le nom de domaine. Si vous souhaitez utiliser un nom de domaine alternatif tel qu'example.com dans les URL, vous devez ajouter le nom de domaine alternatif à votre distribution, que vous spécifiiez l'attribut Domain ou non. Pour plus d'informations, consultez Noms de domaine alternatifs (CNAME) (p. 74) dans la rubrique Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). (Facultatif) Path Chemin d'accès de l'objet demandé. Si vous ne spécifiez pas d'attribut Path, la valeur par défaut est le chemin d'accès de l'URL. Sécurité Nécessite que la visionneuse chiffre les cookies avant d'envoyer une demande. Il est recommandé d'envoyer l'en-tête Set-Cookie sur une connexion HTTPS pour garantir que les attributs du cookie sont protégés contre les attaques MITM. HttpOnly Requiert que la visionneuse n'envoie le cookie que dans les requêtes HTTP ou HTTPS. CloudFront-Policy Votre déclaration de stratégie au format JSON, avec suppression des espaces, puis encodage en base64. Pour plus d'informations, consultez Création d'une déclaration de stratégie pour une stratégie personnalisée. La déclaration de stratégie contrôle l'accès qu'un cookie signé accorde à un utilisateur : les objets auxquels l'utilisateur peut accéder, une date et une heure d'expiration, une heure et une date (facultatif) auxquelles l'URL devient valide, et (facultatif) une adresse IP ou une plage d'adresses IP autorisée à accéder à l'objet. CloudFront-Signature Version hachée, signée et encodée en base 64 de la déclaration de stratégie JSON. Pour de plus amples informations, veuillez consulter Création d'une signature pour un cookie signé qui utilise une stratégie personnalisée (p. 221). CloudFront-Key-Pair-Id ID d'une paire de clés CloudFront active : par exemple, APKA9ONS7QCOWEXAMPLE. L'ID de paire de clés CloudFront indique à CloudFront la clé publique à utiliser pour valider le cookie signé. CloudFront compare les informations de la signature avec celles de la déclaration de stratégie pour vérifier que l'URL n'a pas été falsifiée. L'ID de paire de clés que vous incluez dans les cookies signés CloudFront doit être associé à un compte AWS qui soit celui de l'un des utilisateurs de confiance du comportement de cache applicable. Pour de plus amples informations, veuillez consulter Spécification des comptes AWS qui peuvent créer des URL signées et des cookies signés (utilisateurs de confiance) (p. 178). API Version 2016-01-13 216 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée Si vous rendez une paire de clés inactive lors de la rotation des paires de clés CloudFront, vous devez mettre à jour votre application pour utiliser une nouvelle paire de clés active pour l'un de vos utilisateurs de confiance. Pour plus d'informations sur la rotation des paires de clés, consultez Rotation de paires de clés CloudFront (p. 184). Exemples d'en-tête Set-Cookie d'un cookie signé quand vous utilisez le nom de domaine associé à votre distribution dans les URL de vos objets : Set-Cookie: Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly; CloudFrontPolicy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2QxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0L Set-Cookie: Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly; CloudFront-Signature=dtKhpJ3aUYxqDIwepczPiDb9NXQ_ Set-Cookie: Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly; CloudFront-Key-Pair-Id=APKA9ONS7QCOWEXAMPLE Exemples d'en-tête Set-Cookie d'un cookie signé quand vous utilisez le nom de domaine alternatif example.org dans les URL de vos objets : Set-Cookie: Domain=example.org; Path=/; Secure; HttpOnly; CloudFrontPolicy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2QxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0L Set-Cookie: Domain=example.org; Path=/; Secure; HttpOnly; CloudFrontSignature=dtKhpJ3aUYxqDIwepczPiDb9NXQ_ Set-Cookie: Domain=example.org; Path=/; Secure; HttpOnly; CloudFront-KeyPair-Id=APKA9ONS7QCOWEXAMPLE Si vous souhaitez utiliser un nom de domaine alternatif tel qu'example.com dans les URL, vous devez ajouter le nom de domaine alternatif à votre distribution, que vous spécifiiez l'attribut Domain ou non. Pour plus d'informations, consultez Noms de domaine alternatifs (CNAME) (p. 74) dans la rubrique Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). Création d'une déclaration de stratégie pour un cookie signé qui utilise une stratégie personnalisée Pour créer une déclaration de stratégie pour une stratégie personnalisée, exécutez la procédure suivante. Pour obtenir des exemples de déclaration de stratégie qui contrôlent l'accès aux objets de différentes façons, consultez Exemple d'une déclaration de stratégie pour un cookie signé qui utilise une stratégie personnalisée (p. 219). Pour créer la déclaration de stratégie d'un cookie signé qui utilise une stratégie personnalisée 1. Construisez la déclaration de stratégie à l'aide du format JSON suivant. { "Statement": [ { "Resource":"URL of the object", "Condition":{ "DateLessThan":{"AWS:EpochTime":required ending date and time in Unix time format and UTC}, "DateGreaterThan":{"AWS:EpochTime":optional beginning date and time in Unix time format and UTC}, "IpAddress":{"AWS:SourceIp":"optional IP address"} } API Version 2016-01-13 217 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée } ] } Remarques : • Utilisez l'encodage de caractères UTF-8. • Incluez la ponctuation et les noms de paramètre exactement comme spécifié. Les abréviations ne sont pas acceptées pour les noms de paramètre. • L'ordre des paramètres de la section Condition n'importe pas. • Pour plus d'informations sur les valeurs de Resource, DateLessThan, DateGreaterThan et IpAddress, consultez Valeurs que vous spécifiez dans la déclaration de stratégie d'une stratégie personnalisée pour les cookies signés (p. 218). 2. 3. 4. 5. 6. Supprimez tous les espaces (tabulations et sauts de ligne inclus) de la déclaration de stratégie. Il se peut que vous ayez à inclure des caractères d'échappement dans la chaîne du code applicatif. Encodez en base64 la déclaration de stratégie à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) = _ (soulignement) / ~ (tilde) Incluez la valeur obtenue dans votre en-tête Set-Cookie après CloudFront-Policy=. Créez une signature pour l'en-tête Set-Cookie de CloudFront-Signature en hachant, signant et encodant en base64 la déclaration de stratégie. Pour de plus amples informations, veuillez consulter Création d'une signature pour un cookie signé qui utilise une stratégie personnalisée (p. 221). Valeurs que vous spécifiez dans la déclaration de stratégie d'une stratégie personnalisée pour les cookies signés Lorsque vous créez une déclaration de stratégie pour une stratégie personnalisée, vous spécifiez les valeurs suivantes. Ressource L'URL de base incluant vos chaînes de requête, le cas échéant : http://d111111abcdef8.cloudfront.net/images/horizon.jpg? size=large&license=yes Caution Si vous omettez le paramètre Resource, les utilisateurs peuvent accéder à tous les objets associés à une distribution elle-même associée à la paire de clés que vous utilisez pour créer l'URL signée. Vous ne pouvez spécifier qu'une seule valeur pour Resource. Remarques : API Version 2016-01-13 218 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée • Protocole : la valeur doit commencer par http://, https:// ou http*://. • Paramètres de chaîne de requête : si vous n'avez aucun paramètre de chaîne de requête, omettez le point d'interrogation. • Caractères génériques : vous pouvez utiliser le caractère générique qui correspond à zéro caractère ou plus (*) ou celui qui correspond exactement à un seul caractère (?) à n'importe quel emplacement de la chaîne. Par exemple, la valeur : http*://d111111abcdef8.cloudfront.net/*game_download.zip* inclut (par exemple) la totalité des objets suivants : • http://d111111abcdef8.cloudfront.net/example_game_download.zip? license=yes • https://d111111abcdef8.cloudfront.net/example_game_download.zip? license=yes • http://d111111abcdef8.cloudfront.net/test_game_download.zip? license=temp • https://d111111abcdef8.cloudfront.net/test_game_download.zip? license=temp • Noms de domaine alternatifs : si vous spécifiez un nom de domaine alternatif (CNAME) dans l'URL, vous devez le spécifier lorsque vous référencez l'objet dans votre page ou application web. Ne spécifiez pas l'URL Amazon S3 pour l'objet. DateLessThan Date et heure d'expiration de l'URL au format horaire Unix (en secondes) et en heure UTC. N'entourez pas la valeur de points d'interrogation. Par exemple, la date 16 mars 2015 10 h 00 UTC est convertie en 1426500000 au format horaire Unix. Pour de plus amples informations, veuillez consulter Quand CloudFront vérifie-t-il la date et l'heure d'expiration d'un cookie signé ? (p. 209). DateGreaterThan (facultatif) (Facultatif) Date et heure de début de l'URL au format horaire Unix (en secondes) et en heure UTC. Les utilisateurs ne sont pas autorisés à accéder à l'objet avant la date et l'heure spécifiées. N'entourez pas la valeur de points d'interrogation. IpAddress (facultatif) Adresse IP du client formulant la demande GET. Remarques : • Pour autoriser une adresse IP à accéder à l'objet, omettez le paramètre IpAddress. • Vous pouvez spécifier une adresse IP ou une plage d'adresses IP. Par exemple, vous pouvez définir la stratégie pour autoriser l'accès si l'adresse IP du client figure dans l'une des deux plages distinctes. • Pour autoriser l'accès depuis une seule adresse IP, vous spécifiez : "Adresse IP IPv4/32" • Vous devez spécifier les plages d'adresses IP selon le format IPv4 CIDR standard (par exemple, 10.52.176.0/24). Pour plus d'informations, consultez RFC 4632, Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan, http://tools.ietf.org/ html/rfc4632. Exemple d'une déclaration de stratégie pour un cookie signé qui utilise une stratégie personnalisée Les exemples suivants de déclaration de stratégie montrent comment accéder à un objet spécifique, à tous les objets d'un répertoire ou à tous les objets associés à un ID de paire de clés. Les exemples API Version 2016-01-13 219 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée montrent aussi comment contrôler l'accès depuis une adresse IP individuelle ou une plage d'adresses IP, et comment empêcher les utilisateurs d'employer le cookie signé au-delà d'une date et heure spécifiées. Si vous copiez et collez l'un de ces exemples, supprimez les espaces (y compris les tabulations et les sauts de ligne), remplacez les valeurs applicables par vos propres valeurs et incluez un nouveau caractère de saut de ligne après l'accolade fermante ( } ). Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez dans la déclaration de stratégie d'une stratégie personnalisée pour les cookies signés (p. 218). Rubriques • Exemple de déclaration de stratégie : accès à un objet à partir d'une plage d'adresses IP (p. 220) • Exemple de déclaration de stratégie : accès à tous les objets d'un répertoire à partir d'une plage d'adresses IP (p. 220) • Exemple de déclaration de stratégie : accès à tous les objets associés à un ID de paire de clés à partir d'une adresse IP (p. 221) Exemple de déclaration de stratégie : accès à un objet à partir d'une plage d'adresses IP L'exemple suivant de stratégie personnalisée dans un cookie signé spécifie qu'un utilisateur peut accéder à l'objet http://d111111abcdef8.cloudfront.net/game_download.zip à partir des adresses IP de la plage 192.0.2.0/24 jusqu'au 1er janvier 2013 10 h 00 UTC : { "Statement": [ { "Resource":"http://d111111abcdef8.cloudfront.net/game_download.zip", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"}, "DateLessThan":{"AWS:EpochTime":1357034400} } } ] } Exemple de déclaration de stratégie : accès à tous les objets d'un répertoire à partir d'une plage d'adresses IP L'exemple suivant de stratégie personnalisée vous permet de créer des cookies signés pour n'importe quel objet du répertoire training, comme indiqué par le caractère générique * du paramètre Resource. Les utilisateurs peuvent accéder à l'objet depuis une adresse IP de la plage 192.0.2.0/24 jusqu'au 1er janvier 2013 10 h 00 UTC : { "Statement": [ { "Resource":"http://d111111abcdef8.cloudfront.net/training/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"}, "DateLessThan":{"AWS:EpochTime":1357034400} } } ] API Version 2016-01-13 220 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée } Chaque cookie signé dans lequel vous utilisez cette stratégie inclut une URL de base qui identifie un objet spécifique ; par exemple : http://d111111abcdef8.cloudfront.net/training/orientation.pdf Exemple de déclaration de stratégie : accès à tous les objets associés à un ID de paire de clés à partir d'une adresse IP L'exemple suivant de stratégie personnalisée vous permet de définir des cookies signés pour tout objet associé à une distribution, comme indiqué par le caractère générique * du paramètre Resource. L'utilisateur doit employer l'adresse IP 192.0.2.10/32. (La valeur 192.0.2.10/32 en notation CIDR fait référence à une seule adresse IP, 192.0.2.10.) Les objets ne sont disponibles qu'entre le 1er janvier 2013 10 h 00 UTC et le 2 janvier 2013 10 h 00 UTC : { "Statement": [ { "Resource":"http://*", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.10/32"}, "DateGreaterThan":{"AWS:EpochTime":1357034400}, "DateLessThan":{"AWS:EpochTime":1357120800} } } ] } Chaque cookie signé dans lequel vous utilisez cette stratégie inclut une URL de base qui identifie un objet spécifique d'une distribution CloudFront donnée ; par exemple : http://d111111abcdef8.cloudfront.net/training/orientation.pdf Le cookie signé inclut aussi un ID de paire de clés, qui doit être associé à un utilisateur de confiance de la distribution (d111111abcdef8.cloudfront.net) que vous spécifiez dans l'URL de base. Création d'une signature pour un cookie signé qui utilise une stratégie personnalisée La signature d'un cookie signé utilisant une stratégie personnalisée est une version hachée, signée et encodée en base64 de la déclaration de stratégie. Pour plus d'informations et d'exemples sur la façon de hacher, signer et encoder la déclaration de stratégie, consultez : • Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 (p. 223) • Exemples de code pour la création de la signature d'une URL signée (p. 224) • Outils et exemples de codes pour la configuration de contenu privé (p. 367) Pour créer une signature pour un cookie signé en utilisant une stratégie personnalisée 1. Utilisez la fonction de hachage SHA-1 et RSA pour hacher et signer la déclaration de stratégie JSON que vous avez créée dans la procédure Pour créer la déclaration de stratégie d'une URL API Version 2016-01-13 221 Amazon CloudFront Guide du développeur Définition de cookies signés utilisant une stratégie personnalisée signée qui utilise une stratégie personnalisée (p. 200). Utilisez la version de la déclaration de stratégie qui n'inclut plus d'espaces, mais qui n'a pas encore été encodée en base64. Pour la clé privée requise par la fonction de hachage, utilisez la clé privée associée à l'utilisateur de confiance actif applicable. Note La méthode que vous utilisez pour hacher et signer la déclaration de stratégie dépend du langage de programmation et de la plateforme. Pour un exemple de code, consultez Exemples de code pour la création de la signature d'une URL signée (p. 224). 2. Supprimez les espaces (tabulations et sauts de ligne inclus) de la chaîne hachée et signée. 3. Encodez en base64 la chaîne à l'aide de l'encodage MIME base64. Pour plus d'informations, consultez Section 6.8, Base64 Content-Transfer-Encoding dans RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. Remplacez les caractères non valides d'une chaîne de requête d'URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides. 4. 5. Remplacer ces caractères non valides Par ces caractères valides + - (trait d'union) = _ (soulignement) / ~ (tilde) Incluez la valeur obtenue dans l'en-tête Set-Cookie de la paire nom-valeur CloudFrontSignature=, et retournez à Pour définir un cookie signé utilisant une stratégie personnalisée (p. 215) pour ajouter l'en-tête Set-Cookie de CloudFront-Key-Pair-Id. API Version 2016-01-13 222 Amazon CloudFront Guide du développeur Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 Utilisation d'une commande Linux et OpenSSL pour le chiffrement et l'encodage en base64 Vous pouvez utiliser la commande de ligne de commande Linux suivante et OpenSSL pour hacher et signer la déclaration de stratégie, encoder la signature en base64 et remplacer les caractères non valides des paramètres de la chaîne de requête de l'URL par des caractères valides. Pour plus d'informations sur OpenSSL, consultez http://www.openssl.org. cat policy | tr -d "\n" | openssl base64 | openssl sha1 -sign private-key.pem | tr -- '+=/' '-_~' où : cat lit le fichier policy. tr -d "\n" supprime un caractère de nouvelle ligne ajouté par cat. OpenSSL hache le fichier avec SHA-1 et le signe à l'aide de RSA et du fichier de clé privée private-key.pem. OpenSSL encode en base64 la déclaration de stratégie hachée et signée. tr remplace les caractères non valides des paramètres de chaîne de requête d'URL par ceux qui sont valides. Pour les exemples de code qui illustrent la création d'une signature en plusieurs langages de programmation, consultez Exemples de code pour la création de la signature d'une URL signée (p. 224). API Version 2016-01-13 223 Amazon CloudFront Guide du développeur Exemples de code pour la création de la signature d'une URL signée Exemples de code pour la création de la signature d'une URL signée Cette section inclut des exemples d'application téléchargeables qui montrent comment créer des signatures pour les URL signées. Les exemples sont disponibles en Perl, PHP, C# et Java. Vous pouvez utiliser l'un des exemples pour créer des URL signées. Le script Perl s'exécute sur les plateformes Linux/Mac. L'exemple PHP fonctionne sur n'importe quel serveur qui exécute PHP. L'exemple C# utilise le .NET Framework. Pour obtenir un exemple d'utilisation des cookies avec Ruby on Rails, consultez Outils et exemples de codes pour la configuration de contenu privé (p. 367) dans la rubrique Ressources Amazon CloudFront (p. 365). Vous pouvez trouver un exemple de code pour les URL signées et les cookies signés en différents langages de programmation. Exécutez une recherche Internet sur sample app langage cloudfront signed URLs ou sur sample app langage cloudfront signed cookies. Rubriques • Créer une signature d'URL avec Perl (p. 224) • Créer une signature d'URL avec PHP (p. 226) • Créer une signature d'URL avec C# et le .NET framework (p. 228) • Créer une signature d'URL avec Java (p. 234) Créer une signature d'URL avec Perl Le script Perl crée la signature du contenu privé à l'aide des arguments de ligne de commande qui spécifient l'URL CloudFront, le chemin d'accès à la clé privée de l'utilisateur, l'ID de clé et une date d'expiration pour l'URL. L'outil peut aussi décoder les URL signées. Pour obtenir l'outil cfsign.pl, accédez à Amazon CloudFront Signed URLs Helper Tool. Note La création d'une signature d'URL n'est qu'une partie du processus d'offre d'un contenu privé avec une URL signée. Pour plus d'informations sur la totalité du processus, consultez Utilisation des URL signées (p. 186). L'exemple suivant montre comment vous pourriez utiliser cfsign.pl pour créer une signature de distribution RTMP. $ cfsign.pl --action encode --stream example/video.mp4 --private-key /path/to/my-private-key.pem --key-pair-id PK12345EXAMPLE --expires 1265838202 Cet outil génère la déclaration de stratégie à partir des arguments de ligne de commande. La signature générée est un hachage SHA1 de la déclaration de stratégie. Voici un exemple de nom de flux encodé en base64. mp4:example/video.mp4%3FPolicy %3DewogICJTdGF0ZW1lbnQiOlt7CiAgICAgICJSZXNvdXJjZSI 6ImRyciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICAiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2V JcCI6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE API Version 2016-01-13 224 Amazon CloudFront Guide du développeur Créer une signature d'URL avec Perl 0NTkxNjgwMH0KICAgICAgfQogICAgEXAMPLE_%26Signature%3DewtHqEXK~68tsZteOFnZKGwTf2a JlbKhXkK5SSiVqcG9pieCRV3xTEPtc29OzeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP 17Af4nWtOLIZHoH6wkR3tU1cQHs8R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_%26Key-Pair-Id %3 DPK12345EXAMPLE Cette signature authentifie la demande de contenu privé, example/video.mp4. Si vous utilisez Adobe Flash Player et que le nom du flux est transmis depuis une page web à l'aide de JavaScript, vous devez encoder la signature en base64 et remplacer les caractères non valides d'un paramètre de demande d'URL (+, =, /) par des caractères valides (-, _, and ~, respectively). Si le nom du flux n'est pas transmis depuis une page web, il est inutile d'encoder la signature en base64. Par exemple, vous n'encodez pas la signature en base64 si vous écrivez votre propre lecteur et que les noms des flux sont extraits depuis le fichier Adobe Flash .swf. L'exemple suivant utilise jwplayer with CloudFront. <script type='text/javascript'> var so1 = new SWFObject ('http://d84l721fxaaqy9.cloudfront.net/player/player.swf', 'mpl', '640', '360', '9'); so1.addParam('allowfullscreen','true'); so1.addParam('allowscriptaccess','always'); so1.addParam('wmode','opaque'); so1.addVariable('streamer','rtmp://s33r3xe4ayhhis.cloudfront.net/cfx/st'); so1.addVariable("file","mp4:example/video.mp4%3FPolicy %3DewogICJTdGF0ZW1lbnQi Olt7CiAgICAgICJSZXNvdXJjZSI6ImRyciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICA iSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTG Vzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE0NTkxNjgwMH0KICAgICAgfQogICAgEXAMPLE_% 26Signature%3DewtHqEXK~68tsZteOFnZKGwTf2aJlbKhXkK5SSiVqcG9pieCRV3xTEPtc29O zeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP17Af4nWtOLIZHoH6wkR3tU1cQHs8 R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_%26Key-Pair-Id%3DPK12345EXAMPLE so1.write('flv'); </script> Lorsque vous extrayez un flux à lire d'un fichier Adobe Flash .swf, n'encodez pas en URL le nom du flux ; par exemple : mp4:example/video.mp4? Policy=ewogICJTdGF0ZW1lbnQiOlt7CiAgICAgICJSZXNvdXJjZSI6ImR yciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICAiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI 6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE0NTk xNjgwMH0KICAgICAgfQogICAgEXAMPLE_&Signature=ewtHqEXK~68tsZteOFnZKGwTf2aJlbKhXkK 5SSiVqcG9pieCRV3xTEPtc29OzeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP17Af4nWt OLIZHoH6wkR3tU1cQHs8R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_&Key-Pair-Id=PK12345 EXAMPLE Pour plus d'informations sur les fonctions et les commutateurs de ligne de commande de cet outil, consultez les commentaires du code source Perl. Voir aussi API Version 2016-01-13 225 Amazon CloudFront Guide du développeur Créer une signature d'URL avec PHP • Créer une signature d'URL avec PHP (p. 226) • Créer une signature d'URL avec C# et le .NET framework (p. 228) • Créer une signature d'URL avec Java (p. 234) • Outils et exemples de codes pour la configuration de contenu privé (p. 367) Créer une signature d'URL avec PHP Tout serveur web qui exécute PHP peut utiliser le code de démonstration pour créer des déclarations de stratégie et des signatures pour les distributions RTMP CloudFront. L'exemple crée une page web avec des liens d'URL signée qui lisent un flux vidéo avec le streaming CloudFront. Pour obtenir l'exemple, téléchargez Code de signature pour streaming vidéo en PHP. Vous pouvez aussi créer des URL signées à l'aide de la classe UrlSigner du kit AWS SDK pour PHP. Pour plus d'informations, consultez Classe UrlSigner dans le manuel AWS SDK pour PHP API Reference. Note La création d'une signature d'URL n'est qu'une partie du processus d'offre d'un contenu privé avec une URL signée. Pour plus d'informations sur la totalité du processus, consultez Utilisation des URL signées (p. 186). Dans le segment de code suivant, la fonction rsa_sha1_sign hache et signe la déclaration de stratégie. Les arguments requis sont une déclaration de stratégie, un paramètre out qui contiendra la signature et la clé privée de votre compte AWS ou d'un compte AWS approuvé que vous spécifiez. Ensuite, la fonction url_safe_base64_encode crée une version à URL sécurisée de la signature. Example Hachage RSA SHA1 en PHP function rsa_sha1_sign($policy, $private_key_filename) { $signature = ""; // load the private key $fp = fopen($private_key_filename, "r"); $priv_key = fread($fp, 8192); fclose($fp); $pkeyid = openssl_get_privatekey($priv_key); // compute signature openssl_sign($policy, $signature, $pkeyid); // free the key from memory openssl_free_key($pkeyid); return $signature; } function url_safe_base64_encode($value) { $encoded = base64_encode($value); // replace unsafe characters +, = and / with // the safe characters -, _ and ~ return str_replace( array('+', '=', '/'), array('-', '_', '~'), $encoded); } API Version 2016-01-13 226 Amazon CloudFront Guide du développeur Créer une signature d'URL avec PHP Le code suivant construit une déclaration de stratégie prédéfinie nécessaire pour créer la signature. Pour plus d'informations sur les stratégies prédéfinies, consultez Création d'une URL signée à l'aide d'une stratégie prédéfinie (p. 190). Example Fonction de signature prédéfinie en PHP function get_canned_policy_stream_name($video_path, $private_key_filename, $key_pair_id, $expires) { // this policy is well known by CloudFront, but you still need to sign it, // since it contains your parameters $canned_policy = '{"Statement":[{"Resource":"' . $video_path . '","Condition":{"DateLessThan":{"AWS:EpochTime":'. $expires . '}}}]}'; // sign the canned policy $signature = rsa_sha1_sign($canned_policy, $private_key_filename); // make the signature safe to be included in a url $encoded_signature = url_safe_base64_encode($signature); // combine the above into a stream name $stream_name = create_stream_name($video_path, null, $encoded_signature, $key_pair_id, $expires); // url-encode the query string characters to work around a flash player bug return encode_query_params($stream_name); } Le code suivant construit une déclaration de stratégie personnalisée nécessaire pour créer la signature. Pour plus d'informations sur les stratégies personnalisées, consultez Création d'une URL signée utilisant une stratégie personnalisée (p. 197). Example Fonction de signature personnalisée en PHP function get_custom_policy_stream_name($video_path, $private_key_filename, $key_pair_id, $policy) { // sign the policy $signature = rsa_sha1_sign($policy, $private_key_filename); // make the signature safe to be included in a url $encoded_signature = url_safe_base64_encode($signature); // combine the above into a stream name $stream_name = create_stream_name($video_path, $encoded_policy, $encoded_signature, $key_pair_id, null); // url-encode the query string characters to work around a flash player bug return encode_query_params($stream_name); } Pour plus d'informations sur l'implémentation OpenSSL de SHA-1, consultez The Open Source Toolkit for SSL/TLS. Voir aussi • Créer une signature d'URL avec Perl (p. 224) • Créer une signature d'URL avec C# et le .NET framework (p. 228) • Créer une signature d'URL avec Java (p. 234) API Version 2016-01-13 227 Amazon CloudFront Guide du développeur Créer une signature d'URL avec C# et le .NET framework • Outils et exemples de codes pour la configuration de contenu privé (p. 367) Créer une signature d'URL avec C# et le .NET framework Les exemples C# de cette section implémentent un exemple d'application qui montre comment créer les signatures des distributions privées CloudFront à l'aide de déclarations de stratégie prédéfinies et personnalisées. Les exemples incluent des fonctions utilitaires basées sur le kit de développement logiciel (SDK) AWS for .NET et qui peuvent être utiles dans les applications .NET. Vous pouvez aussi créer des URL signées et des cookies signés à l'aide du kit de développement logiciel (SDK) AWS for .NET. Dans le manuel Kit AWS SDK pour .NET API Reference, consultez les rubriques suivantes : • URL signées : Amazon.CloudFront > AmazonCloudFrontUrlSigner • Cookies signés : Amazon.CloudFront > AmazonCloudFrontCookieSigner Note La création d'une signature d'URL n'est qu'une partie du processus d'offre d'un contenu privé avec une URL signée. Pour plus d'informations sur la totalité du processus, consultez Utilisation des URL signées (p. 186). Pour télécharger le code, consultez Code de signature en C#. Pour utiliser les clés RSA fournies par AWS Account/Security dans le .NET Framework, vous devez convertir les fichiers .pem fournis par AWS au format XML que le .NET Framework utilise. Après la conversion, le fichier de clé privée RSA est au format suivant : API Version 2016-01-13 228 Amazon CloudFront Guide du développeur Créer une signature d'URL avec C# et le .NET framework Example Clé privée RSA au format XML .NET Framework <RSAKeyValue> <Modulus> wO5IvYCP5UcoCKDo1dcspoMehWBZcyfs9QEzGi6Oe5y+ewGr1oW+vB2GPB ANBiVPcUHTFWhwaIBd3oglmF0lGQljP/jOfmXHUK2kUUnLnJp+oOBL2NiuFtqcW6h/ L5lIpD8Yq+NRHg Ty4zDsyr2880MvXv88yEFURCkqEXAMPLE= </Modulus> <Exponent>AQAB</Exponent> <P> 5bmKDaTz npENGVqz4Cea8XPH+sxt +2VaAwYnsarVUoSBeVt8WLloVuZGG9IZYmH5KteXEu7fZveYd9UEXAMPLE== </P> <Q> 1v9l/WN1a1N3rOK4VGoCokx7kR2SyTMSbZgF9IWJNOugR/WZw7HTnjipO3c9dy1Ms9pUKwUF4 6d7049EXAMPLE== </Q> <DP> RgrSKuLWXMyBH+/l1Dx/I4tXuAJIrlPyo+VmiOc7b5NzHptkSHEPfR9s1 OK0VqjknclqCJ3Ig86OMEtEXAMPLE== </DP> <DQ> pjPjvSFw+RoaTu0pgCA/jwW/FGyfN6iim1RFbkT4 z49DZb2IM885f3vf35eLTaEYRYUHQgZtChNEV0TEXAMPLE== </DQ> <InverseQ> nkvOJTg5QtGNgWb9i cVtzrL/1pFEOHbJXwEJdU99N+7sMK+1066DL/HSBUCD63qD4USpnf0myc24in0EXAMPLE==</ InverseQ> <D> Bc7mp7XYHynuPZxChjWNJZIq+A73gm0ASDv6At7F8Vi9r0xUlQe/ v0AQS3ycN8QlyR4XMbzMLYk 3yjxFDXo4ZKQtOGzLGteCU2srANiLv26/ imXA8FVidZftTAtLviWQZBVPTeYIA69ATUYPEq0a5u5wjGy UOij9OWyuEXAMPLE= </D> </RSAKeyValue> Le code C# suivant crée une URL signée qui utilise une stratégie prédéfinie en exécutant les étapes suivantes : • Crée une déclaration de stratégie. • Hache la déclaration de stratégie avec SHA1 et signe le résultat à l'aide de RSA et de la clé privée de votre compte AWS ou d'un compte AWS approuvé que vous spécifiez. • Encode en base64 la déclaration de stratégie hachée et signée, et remplace les caractères spéciaux pour assurer la sécurité de la chaîne utilisée comme paramètre de demande d'URL. • Concaténez les valeurs applicables. Pour l'implémentation complète, consultez l'exemple de la rubrique Code de signature en C#. API Version 2016-01-13 229 public static string CreateCannedPrivateURL(string urlString, string durationUnits, string durationNumber, string pathToPolicyStmnt, string pathToPrivateKey, string privateKeyId) Amazon CloudFront Guide du développeur { Créer une signature d'URL avec C# et le .NET framework // args[] 0-thisMethod, 1-resourceUrl, 2-seconds-minutes-hours-days // to expiration, 3-numberOfPreviousUnits, 4-pathToPolicyStmnt, // 5-pathToPrivateKey, 6-PrivateKeyId Example Méthode de signature de stratégie prédéfinie en C# TimeSpan timeSpanInterval = GetDuration(durationUnits, durationNumber); // Create the policy statement. string strPolicy = CreatePolicyStatement(pathToPolicyStmnt, urlString, DateTime.Now, DateTime.Now.Add(timeSpanInterval), "0.0.0.0/0"); if ("Error!" == strPolicy) return "Invalid time frame." + "Start time cannot be greater than end time."; // Copy the expiration time defined by policy statement. string strExpiration = CopyExpirationTimeFromPolicy(strPolicy); // Read the policy into a byte buffer. byte[] bufferPolicy = Encoding.ASCII.GetBytes(strPolicy); // Initialize the SHA1CryptoServiceProvider object and hash the policy data. using (SHA1CryptoServiceProvider cryptoSHA1 = new SHA1CryptoServiceProvider()) { bufferPolicy = cryptoSHA1.ComputeHash(bufferPolicy); // Initialize the RSACryptoServiceProvider object. RSACryptoServiceProvider providerRSA = new RSACryptoServiceProvider(); XmlDocument xmlPrivateKey = new XmlDocument(); // Load PrivateKey.xml, which you created by converting your // .pem file to the XML format that the .NET framework uses. // Several tools are available. xmlPrivateKey.Load(pathToPrivateKey); // Format the RSACryptoServiceProvider providerRSA and // create the signature. providerRSA.FromXmlString(xmlPrivateKey.InnerXml); RSAPKCS1SignatureFormatter rsaFormatter = new RSAPKCS1SignatureFormatter(providerRSA); rsaFormatter.SetHashAlgorithm("SHA1"); byte[] signedPolicyHash = rsaFormatter.CreateSignature(bufferPolicy); // Convert the signed policy to URL-safe base64 encoding and // replace unsafe characters + = / with the safe characters - _ ~ string strSignedPolicy = ToUrlSafeBase64String(signedPolicyHash); // Concatenate the URL, the timestamp, the signature, // and the key pair ID to form the signed URL. return urlString + "?Expires=" + strExpiration + "&Signature=" + strSignedPolicy + "&Key-Pair-Id=" + privateKeyId; } } API Version 2016-01-13 230 Amazon CloudFront Guide du développeur Créer une signature d'URL avec C# et le .NET framework Le code C# suivant crée une URL signée qui utilise une stratégie personnalisée en exécutant les étapes suivantes : • Crée une déclaration de stratégie. • Encode en base64 la déclaration de stratégie et remplace les caractères spéciaux pour assurer la sécurité de la chaîne utilisée comme paramètre de demande d'URL. • Hache la déclaration de stratégie avec SHA1 et chiffre le résultat à l'aide de RSA et de la clé privée de votre compte AWS ou d'un compte AWS approuvé que vous spécifiez. • Encode en base64 la déclaration de stratégie hachée et remplace les caractères spéciaux pour assurer la sécurité de la chaîne utilisée comme paramètre de demande d'URL. • Concaténez les valeurs applicables. Pour l'implémentation complète, consultez l'exemple de la rubrique Code de signature en C#. API Version 2016-01-13 231 startIntervalFromNow, string ipaddress, string pathToPolicyStmnt, string pathToPrivateKey, string PrivateKeyId) Amazon CloudFront Guide du développeur // args[] Créer 0-thisMethod, une signature1-resourceUrl, d'URL avec C# et le2-seconds-minutes-hours-days .NET framework // to expiration, 3-numberOfPreviousUnits, 4-starttimeFromNow, // 5-ip_address, 6-pathToPolicyStmt, 7-pathToPrivateKey, 8-privateKeyId { Example Méthode de signature de stratégie personnalisée en C# TimeSpan timeSpanInterval = GetDuration(durationUnits, durationNumber); TimeSpan timeSpanToStart = GetDurationByUnits(durationUnits, startIntervalFromNow); if (null == timeSpanToStart) return "Invalid duration units." + "Valid options: seconds, minutes, hours, or days"; string strPolicy = CreatePolicyStatement( pathToPolicyStmnt, urlString, DateTime.Now.Add(timeSpanToStart), DateTime.Now.Add(timeSpanInterval), ipaddress); // Read the policy into a byte buffer. byte[] bufferPolicy = Encoding.ASCII.GetBytes(strPolicy); // Convert the policy statement to URL-safe base64 encoding and // replace unsafe characters + = / with the safe characters - _ ~ string urlSafePolicy = ToUrlSafeBase64String(bufferPolicy); // Initialize the SHA1CryptoServiceProvider object and hash the policy data. byte[] bufferPolicyHash; using (SHA1CryptoServiceProvider cryptoSHA1 = new SHA1CryptoServiceProvider()) { bufferPolicyHash = cryptoSHA1.ComputeHash(bufferPolicy); // Initialize the RSACryptoServiceProvider object. RSACryptoServiceProvider providerRSA = new RSACryptoServiceProvider(); XmlDocument xmlPrivateKey = new XmlDocument(); // Load PrivateKey.xml, which you created by converting your // .pem file to the XML format that the .NET framework uses. // Several tools are available. xmlPrivateKey.Load("PrivateKey.xml"); // Format the RSACryptoServiceProvider providerRSA // and create the signature. providerRSA.FromXmlString(xmlPrivateKey.InnerXml); RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(providerRSA); RSAFormatter.SetHashAlgorithm("SHA1"); byte[] signedHash = RSAFormatter.CreateSignature(bufferPolicyHash); // Convert the signed policy to URL-safe base64 encoding and // replace unsafe characters + = / with the safe characters - _ ~ string strSignedPolicy = ToUrlSafeBase64String(signedHash); return urlString + "?Policy=" + urlSafePolicy + "&Signature=" + strSignedPolicy + "&Key-Pair-Id=" + PrivateKeyId; } } API Version 2016-01-13 232 strPolicy = strPolicy.Replace("IP_ADDRESS", ipAddress); strPolicy = strPolicy.Replace("EXPIRES", endTimestamp.ToString()); return strPolicy; } } Amazon CloudFront Guide du développeur Créer une signature d'URL avec C# et le .NET framework public static TimeSpan GetDuration(string units, string numUnits) { Example Méthodes d'utilitaire pour la génération de signatures TimeSpan timeSpanInterval = new TimeSpan(); switch (units) { case "seconds": timeSpanInterval = new TimeSpan(0, 0, 0, int.Parse(numUnits)); break; case "minutes": timeSpanInterval = new TimeSpan(0, 0, int.Parse(numUnits), 0); break; case "hours": timeSpanInterval = new TimeSpan(0, int.Parse(numUnits), 0 ,0); break; case "days": timeSpanInterval = new TimeSpan(int.Parse(numUnits),0 ,0 ,0); break; default: Console.WriteLine("Invalid time units;" + "use seconds, minutes, hours, or days"); break; } return timeSpanInterval; } private static TimeSpan GetDurationByUnits(string durationUnits, string startIntervalFromNow) { switch (durationUnits) { case "seconds": return new TimeSpan(0, 0, int.Parse(startIntervalFromNow)); case "minutes": return new TimeSpan(0, int.Parse(startIntervalFromNow), 0); case "hours": return new TimeSpan(int.Parse(startIntervalFromNow), 0, 0); case "days": return new TimeSpan(int.Parse(startIntervalFromNow), 0, 0, 0); default: return new TimeSpan(0, 0, 0, 0); } } public static string CopyExpirationTimeFromPolicy(string policyStatement) { int startExpiration = policyStatement.IndexOf("EpochTime"); string strExpirationRough = policyStatement.Substring(startExpiration + "EpochTime".Length); char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; List<char> listDigits = new List<char>(digits); StringBuilder buildExpiration = new StringBuilder(20); foreach (char c in strExpirationRough) { if (listDigits.Contains(c)) buildExpiration.Append(c); } return buildExpiration.ToString(); } API Version 2016-01-13 233 Amazon CloudFront Guide du développeur Créer une signature d'URL avec Java Voir aussi • Créer une signature d'URL avec Perl (p. 224) • Créer une signature d'URL avec PHP (p. 226) • Créer une signature d'URL avec Java (p. 234) • Outils et exemples de codes pour la configuration de contenu privé (p. 367) Créer une signature d'URL avec Java La rubrique Boîte à outils Java open source pour Amazon S3 et CloudFront fournit un exemple de code et des informations sur le développement CloudFront en Java. Pour plus d'informations sur les distributions privées, accédez à Distributions privées, dans Guide du programmeur : exemples de code. Vous pouvez aussi créer des URL signées à l'aide de la classe CloudFrontUrlSigner du kit AWS SDK pour Java. Pour plus d'informations, consultez Classe UrlSigner dans le manuel AWS SDK for Java API Reference. Note La création d'une signature d'URL n'est qu'une partie du processus d'offre d'un contenu privé avec une URL signée. Pour plus d'informations sur la totalité du processus, consultez Utilisation des URL signées (p. 186). Les méthodes suivantes proviennent de la boîte à outils open source Java pour Amazon S3 et CloudFront. Vous devez convertir la clé privée du format PEM au format DER pour que l'implémentation Java puisse l'utiliser. API Version 2016-01-13 234 Amazon CloudFront Guide du développeur // Signed URLs for a Créer private distribution une signature d'URL avec Java // Note that Java only supports SSL certificates in DER format, // so you will need to convert your PEM-formatted file to DER format. // To doMéthodes this, you can use et openssl: Example de stratégie de chiffrement de signature Java // openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der // -outform DER // So the encoder works correctly, you should also add the bouncy castle jar // to your project and then add the provider. Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); String distributionDomain = "a1b2c3d4e5f6g7.cloudfront.net"; String privateKeyFilePath = "/path/to/rsa-private-key.der"; String s3ObjectKey = "s3/object/key.txt"; String policyResourcePath = "http://" + distributionDomain + "/" + s3ObjectKey; // Convert your DER file into a byte array. byte[] derPrivateKey = ServiceUtils.readInputStreamToBytes(new FileInputStream(privateKeyFilePath)); // Generate a "canned" signed URL to allow access to a // specific distribution and object String signedUrlCanned = CloudFrontService.signUrlCanned( "http://" + distributionDomain + "/" + s3ObjectKey, // Resource URL or Path keyPairId, // Certificate identifier, // an active trusted signer for the distribution derPrivateKey, // DER Private key data ServiceUtils.parseIso8601Date("2011-11-14T22:20:00.000Z") // DateLessThan ); System.out.println(signedUrlCanned); // Build a policy document to define custom restrictions for a signed URL. String policy = CloudFrontService.buildPolicyForSignedUrl( // Resource path (optional, can include '*' and '?' wildcards) policyResourcePath, // DateLessThan ServiceUtils.parseIso8601Date("2011-11-14T22:20:00.000Z"), // CIDR IP address restriction (optional, 0.0.0.0/0 means everyone) "0.0.0.0/0", // DateGreaterThan (optional) ServiceUtils.parseIso8601Date("2011-10-16T06:31:56.000Z") ); // Generate a signed URL using a custom policy document. String signedUrl = CloudFrontService.signUrl( // Resource URL or Path "http://" + distributionDomain + "/" + s3ObjectKey, // Certificate identifier, an active trusted signer for the distribution keyPairId, // DER Private key data derPrivateKey, // Access control policy policy ); System.out.println(signedUrl); API Version 2016-01-13 235 Amazon CloudFront Guide du développeur Créer une signature d'URL avec Java Voir aussi • Créer une signature d'URL avec Perl (p. 224) • Créer une signature d'URL avec PHP (p. 226) • Créer une signature d'URL avec C# et le .NET framework (p. 228) • Outils et exemples de codes pour la configuration de contenu privé (p. 367) API Version 2016-01-13 236 Amazon CloudFront Guide du développeur Utilisation d'une connexion HTTPS pour accéder à vos objets Rubriques • Mode de fonctionnement de CloudFront avec les connexions HTTPS (p. 238) • Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine (p. 239) • Protocoles et chiffrements pris en charge (p. 242) • Utilisation de noms de domaines alternatifs et de HTTPS (p. 243) • Frais associés aux connexions HTTPS (p. 252) Pour les distributions Web, vous pouvez utiliser des requêtes HTTPS afin de vous assurer que vos objets sont chiffrés lorsque CloudFront les transmet aux visionneuses et, éventuellement, lorsque CloudFront obtient les objets de votre origine. • Pour demander une connexion HTTPS entre CloudFront et les visionneuses : configurez Viewer Protocol Policy pour une partie ou la totalité des comportements de vos caches CloudFront de manière à rediriger les requêtes HTTP vers des requêtes HTTPS ou à exiger que les visionneuses emploient uniquement le protocole HTTPS pour accéder à vos objets dans le cache CloudFront. Vous pouvez même configurer un ou plusieurs comportements de caches de la même distribution afin d'accepter des requêtes HTTP et HTTPS, auquel cas le protocole HTTPS sera exigé pour certains objets mais pas pour tous. • Pour demander une connexion HTTPS entre CloudFront et votre origine (facultatif) : configurez Origin Protocol Policy pour une ou plusieurs origines CloudFront de manière à ce que CloudFront récupère les objets de votre origine via HTTPS ou utilise le protocole employé par la visionneuse pour demander les objets. Par exemple, lorsque vous choisissez Match Viewer pour Origin Protocol Policy et que la visionneuse emploie HTTPS pour demander un objet à CloudFront, ce dernier utilise également HTTPS pour transférer la requête à votre origine. Lorsque votre origine est un compartiment Amazon S3, Match Viewer est le paramètre par défaut et ne peut pas être modifié. Important Si votre compartiment Amazon S3 est configuré comme point de terminaison de site Web, vous ne pouvez pas configurer CloudFront pour utiliser HTTPS afin de communiquer avec API Version 2016-01-13 237 Amazon CloudFront Guide du développeur Mode de fonctionnement de CloudFront avec les connexions HTTPS votre origine parce que Amazon S3 ne prend pas en charge les connexions HTTPS dans cette configuration. Pour plus de détails sur les versions SSL/TLS et les chiffrements à la disposition de CloudFront pour transférer les requêtes aux origines personnalisées, consultez Chiffrement (p. 153) dans la rubrique Traitement et transmission des demandes à votre serveur d'origine personnalisée par CloudFront (p. 151). Si vous utilisez un serveur HTTP comme origine et si vous voulez utiliser HTTPS à la fois entre les visionneuses et CloudFront, et entre CloudFront et votre origine, vous devez installer sur le serveur HTTP un certificat SSL/TLS signé par une autorité de certification reconnue, comme par exemple Comodo, DigiCert ou Symantec. Si votre origine est un équilibreur de charge Elastic Load Balancing, vous pouvez utiliser un certificat SSL/TLS de l'autorité de certification Amazon Trust Services (via AWS Certificate Manager). Caution Si le serveur d'origine renvoie un certificat arrivé à expiration, non valide ou auto-signé, ou s'il renvoie la chaîne de certificat dans le mauvais ordre, CloudFront abandonne la connexion TCP, renvoie un code d'erreur HTTP 502, et règle l'en-tête X-Cache sur Error from cloudfront. Mode de fonctionnement de CloudFront avec les connexions HTTPS Les exemples suivants sur le fonctionnement de CloudFront avec les connexions HTTPS se basent sur les éléments suivants : • votre distribution CloudFront a un comportement de cache (le comportement par défaut) et une origine ; • vous avez configuré votre distribution de manière à utiliser HTTPS entre les visionneuses et CloudFront, et entre CloudFront et votre origine ; • votre origine a un certificat SSL/TLS qui a été signé par une autorité de certification compétente. Le mode de fonctionnement est quasiment identique, que votre serveur d'origine soit un compartiment Amazon S3 ou un serveur HTTP. Processus CloudFront pour diffuser des objets via HTTPS 1. Une visionneuse envoie une requête HTTPS à CloudFront. Des négociations SSL ont lieu entre la visionneuse et CloudFront. La visionneuse finit par envoyer la requête dans un format chiffré. 2. Si l'objet se trouve dans le cache périphérique CloudFront, CloudFront chiffre l'objet et le renvoie à la visionneuse qui le déchiffre ensuite. 3. Si l'objet ne se trouve pas dans le cache CloudFront, CloudFront effectue les négociations SSL avec votre origine et, une fois la négociation terminée, réachemine la requête à votre origine sous format chiffré. 4. Votre origine déchiffre la requête, chiffre l'objet demandé et renvoie l'objet à CloudFront. 5. CloudFront déchiffre l'objet, le chiffre à nouveau et le transfère à la visionneuse. CloudFront enregistre aussi l'objet dans le cache périphérique pour la prochaine fois où quelqu'un en aura besoin. API Version 2016-01-13 238 Amazon CloudFront Guide du développeur Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine 6. La visionneuse déchiffre l'objet. Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine Vous pouvez configurer CloudFront de manière à exiger une connexion HTTPS pour les communications entre les visionneuses et CloudFront, et éventuellement entre CloudFront et votre origine. Note Utilisez uniquement une connexion HTTPS pour vous assurer que les objets sont chiffrés de l'origine aux caches périphériques CloudFront, et de ces caches aux visionneuses. S'il vous arrive de configurer CloudFront pour obtenir des objets de votre origine via HTTP, CloudFront ajoute ces objets au cache périphérique et continue de les transmettre aux visionneuses jusqu'à l'expiration des objets ou jusqu'à ce qu'ils soient supprimés ou remplacés. Pour plus d'informations sur la suppression ou le remplacement des objets dans une distribution, consultez Ajouter, supprimer et remplacer des objets dans une distribution (p. 117). Pour une liste des chiffrements pris en charge, consultez Chiffrement (p. 153). Si vous souhaitez utiliser des noms de domaines alternatifs (comme par exemple example.com) au lieu du nom de domaine associé par CloudFront à votre distribution, consultez également Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). La procédure à utiliser afin d'exiger HTTPS pour une communication entre les visionneuses, CloudFront et votre origine dépend de si vous utilisez une origine personnalisée ou Amazon S3. Reportez-vous à la procédure pertinente : • Pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine personnalisée (p. 239) • Pour exiger la connexion HTTPS pour les communications entre les visionneuses, CloudFront et votre origine Amazon S3 (p. 241) Pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine personnalisée 1. Demandez un certificat SSL/TLS à une autorité de certification reconnue comme Comodo, DigiCert ou Symantec, et installez-le sur votre serveur Web d'origine. Si votre origine est un équilibreur de charge Elastic Load Balancing, vous pouvez aussi utiliser AWS Certificate Manager pour mettre en service un certificat. Pour que CloudFront utilise HTTPS lors des communications avec votre origine, l'un des noms de domaine du certificat doit au moins correspondre à l'une des valeurs suivantes, si ce n'est pas au deux : • la valeur spécifiée pour Origin Domain Name pour l'origine applicable de votre distribution ; • si vous avez configuré CloudFront pour transférer l'en-tête Host à votre origine, la valeur de l'en-tête Host. Pour plus d'informations sur le transfert des en-têtes à votre origine, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). API Version 2016-01-13 239 Amazon CloudFront Guide du développeur Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine Le certificat SSL/TLS de votre origine inclut un nom de domaine dans le champ Common Name et éventuellement plusieurs autres dans le champ Subject Alternative Names. (CloudFront prend en charge les caractères génériques dans les noms de domaines de certificats.) Si votre certificat ne comporte pas de nom de domaine qui correspond à Origin Domain Name ni au nom de domaine de l'en-tête Host, CloudFront renvoie un code d'état HTTP 502 (Passerelle erronée) à la visionneuse. Important Lorsque CloudFront utilise HTTPS pour communiquer avec votre origine, CloudFront vérifie si le certificat provient bien d'une autorité de certification reconnue. CloudFront prend en charge les mêmes autorités de certification que Mozilla. Pour la liste actuelle, consultez Mozilla Included CA Certificate List. Il n'est pas possible d'utiliser de certificat auto-signé. Pour plus de détails sur l'obtention et l'installation d'un certificat SSL/TLS, consultez la documentation du logiciel de votre serveur HTTP et celle de l'autorité de certification. Pour plus d'informations sur AWS Certificate Manager, consultez le manuel AWS Certificate Manager User Guide. 2. Pour demander une connexion HTTPS entre les visionneuses et CloudFront, configurez votre distribution de manière à rediriger les requêtes HTTP vers des requêtes HTTPS ou à exiger que les visionneuses emploient uniquement le protocole HTTPS pour toute communication avec CloudFront. Pour obtenir cela dans la console CloudFront, créez ou mettez à jour un ou plusieurs comportements de cache dans votre distribution afin d'avoir l'un des paramètres suivants pour Viewer Protocol Policy : • Redirect to HTTPS : si une visionneuse envoie une requête HTTP au lieu d'une requête HTTPS, CloudFront renvoie un code d'état HTTP 301 (Déplacé de façon permanente) avec la nouvelle URL HTTPS. La visionneuse renvoie alors la requête à CloudFront en utilisant l'URL HTTPS. Important CloudFront ne redirige pas les requêtes DELETE, OPTIONS, PATCH, POST ou PUT de HTTP en HTTPS. Si vous configurez un comportement de cache de manière à rediriger vers HTTPS, CloudFront répond aux requêtes HTTP DELETE, OPTIONS, PATCH, POST ou PUT pour ce comportement de cache avec un code d'état HTTP 403 (Interdit). Quand une visionneuse émet une requête HTTP redirigée vers une requête HTTPS, CloudFront perçoit des frais pour les deux requêtes. Pour la requête HTTP, le montant correspond uniquement à la requête et aux en-têtes que CloudFront renvoie à la visionneuse. Pour la requête HTTPS, le montant correspond à la requête ainsi qu'aux en-têtes et à l'objet renvoyés par votre origine. • HTTPS Only : si une visionneuse envoie une requête HTTP au lieu d'une requête HTTPS, CloudFront renvoie un code d'état HTTP 403 (Interdit) et ne renvoie pas l'objet. Pour des informations sur l'utilisation de la console CloudFront afin de mettre à jour une distribution Web, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). Pour des informations sur l'utilisation de l'API CloudFront afin de mettre à jour une distribution Web, consultez PUT Distribution Config dans Amazon CloudFront API Reference. Si vous utilisez l'API, consultez l'élément ViewerProtocolPolicy. 3. Choisissez les protocoles que CloudFront doit utiliser lors de la communication avec votre origine : • Console CloudFront : pour Origin SSL Protocols, choisissez les protocoles applicables. API Version 2016-01-13 240 Amazon CloudFront Guide du développeur Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine • API CloudFront : pour SslProtocol, spécifiez SSLv3, TLSv1, TLSv1.1 et/ou TLSv1.2. Le protocole SSLv3 étant moins sécurisé, nous vous recommandons de choisir SSLv3 uniquement si votre origine ne prend pas en charge TLSv1 ou version ultérieure. 4. Pour configurer CloudFront de manière à utiliser HTTPS lors de la communication avec votre origine, créez ou mettez à jour une origine ou plus dans votre distribution de manière à avoir les paramètres suivants : • Console CloudFront : pour Origin Protocol Policy, spécifiez HTTPS Only ou Match Viewer. • API CloudFront : pour OriginProtocolPolicy, spécifiez https-only ou match-viewer. 5. Assurez-vous des points suivants : • Le modèle de chemin de chaque comportement de cache s'applique uniquement aux requêtes pour lesquelles vous souhaitez que les visionneuses emploient HTTPS. • Les comportements de cache sont listés dans l'ordre souhaité. Pour de plus amples informations, veuillez consulter Modèle de chemin d'accès (p. 66). • Les comportements de cache acheminent les requêtes vers les origines pour lesquelles vous avez configuré Origin Protocol Policy en tant que HTTPS Only ou Match Viewer, le cas échéant. • Si vous utilisez une origine personnalisée et si vous avez configuré CloudFront pour une connexion HTTPS lors des communications avec l'origine, cette dernière doit disposer d'un certificat valide, signé par une autorité de certification reconnue. 6. Testez la configuration avant de l'utiliser dans un environnement de production. Pour exiger la connexion HTTPS pour les communications entre les visionneuses, CloudFront et votre origine Amazon S3 1. Pour demander une connexion HTTPS entre les visionneuses et CloudFront, configurez votre distribution de manière à rediriger les requêtes HTTP vers des requêtes HTTPS ou à exiger que les visionneuses emploient uniquement le protocole HTTPS pour toute communication avec CloudFront. Pour obtenir cela dans la console CloudFront, créez ou mettez à jour un ou plusieurs comportements de cache dans votre distribution afin d'avoir l'un des paramètres suivants pour Viewer Protocol Policy : • Redirect to HTTPS : si une visionneuse envoie une requête HTTP au lieu d'une requête HTTPS, CloudFront renvoie un code d'état HTTP 301 (Déplacé de façon permanente) avec la nouvelle URL HTTPS. La visionneuse renvoie alors la requête à CloudFront en utilisant l'URL HTTPS. Note Quand une visionneuse émet une requête HTTP redirigée vers une requête HTTPS, CloudFront perçoit des frais pour les deux requêtes. Pour la requête HTTP, le montant correspond uniquement à la requête et aux en-têtes que CloudFront renvoie à la visionneuse. Pour la requête HTTPS, le montant perçu correspond à la requête ainsi qu'aux en-têtes et à l'objet renvoyés par Amazon S3. • HTTPS Only : si une visionneuse envoie une requête HTTP au lieu d'une requête HTTPS, CloudFront renvoie un code d'état HTTP 403 (Interdit) et ne renvoie pas l'objet. Note Le paramètre qui contrôle le protocole utilisé par CloudFront pour communiquer avec l'origine, Origin Protocol Policy, est configuré par défaut sur Match Viewer pour les compartiments Amazon S3. Cette valeur ne peut pas être modifiée. Lorsque vous API Version 2016-01-13 241 Amazon CloudFront Guide du développeur Protocoles et chiffrements pris en charge configurez CloudFront de manière à exiger une connexion HTTPS entre la visionneuse et CloudFront, CloudFront utilise automatiquement la connexion HTTPS pour communiquer avec Amazon S3. CloudFront ne redirige pas les requêtes DELETE, OPTIONS, PATCH, POST ou PUT de HTTP en HTTPS. Si vous configurez un comportement de cache de manière à rediriger vers HTTPS, CloudFront répond aux requêtes DELETE, OPTIONS, PATCH, POST ou PUT pour ce comportement de cache avec un code d'état HTTP 403 (Interdit). Pour des informations sur l'utilisation de la console CloudFront afin de mettre à jour une distribution Web, consultez Liste, affichage et mise à jour des distributions CloudFront (p. 43). 2. Pour des informations sur l'utilisation de l'API CloudFront afin de mettre à jour une distribution Web, consultez PUT Distribution Config dans Amazon CloudFront API Reference. Si vous utilisez l'API, consultez l'élément ViewerProtocolPolicy. Assurez-vous des points suivants : • Le modèle de chemin de chaque comportement de cache s'applique uniquement aux requêtes pour lesquelles vous souhaitez que les visionneuses emploient HTTPS. • Les comportements de cache sont listés dans l'ordre souhaité. Pour de plus amples informations, veuillez consulter Modèle de chemin d'accès (p. 66). • Les comportements de cache acheminent les requêtes aux compartiments Amazon S3 corrects. 3. Testez la configuration avant de l'utiliser dans un environnement de production. Protocoles et chiffrements pris en charge Vous pouvez exiger que les visionneuses utilisent HTTPS pour envoyer les demandes à CloudFront et que CloudFront transmette les demandes à votre origine personnalisée à l'aide du protocole utilisé par la visionneuse. Pour plus d'informations, consultez les paramètres de distribution suivants : • Viewer Protocol Policy (p. 68) • Stratégie de protocole de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 64) Vous pouvez aussi indiquer si vous souhaitez que les visionneuses envoient des requêtes HTTPS à CloudFront en employant TLSv1.0 ou une version ultérieure, ou si elles peuvent utiliser le protocole SSLv3 moins sécurisé. Pour plus d'informations, consultez le paramètre de distribution Version minimale du protocole SSL (p. 75). Important CloudFront prend uniquement en charge les requêtes de visionneuses qui emploient SSLv3 et TLSv1.0, 1.1, et 1.2. De plus, vous pouvez choisir les protocoles que CloudFront doit utiliser lors de l'établissement d'une connexion HTTPS avec votre origine. Pour plus d'informations, consultez le paramètre de distribution Protocoles SSL de l'origine (origines Amazon EC2 et autres origines personnalisées uniquement) (p. 64). les visionneuses peuvent employer les chiffrements suivants pour chiffrer les communication avec CloudFront. À l'exception de RC4-MD5, tous les chiffrements sont pris en charge que vous sélectionniez SSLv3 ou TLSv1.0 comme valeur pour Version minimale du protocole SSL (p. 75). CloudFront choisit un chiffrement dans l'ordre suivant parmi les options prises en charge par la visionneuse : API Version 2016-01-13 242 Amazon CloudFront Guide du développeur Utilisation de noms de domaines alternatifs et de HTTPS • ECDHE-RSA-AES128-GCM-SHA256 • • • • • ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA • AES128-GCM-SHA256 • AES256-GCM-SHA384 • AES128-SHA256 • AES256-SHA • AES128-SHA • DES-CBC3-SHA • RC4-MD5 (uniquement pris en charge lorsque la valeur de Version minimale du protocole SSL (p. 75) est SSLv3) Une visionneuse doit prendre en charge au moins un de ces chiffrements pour établir une connexion SSL avec CloudFront. Si vous utilisez un certificat SSL/TLS obtenu auprès d'AWS Certificate Manager, une visionneuse doit rendre en charge l'un des chiffrements *-RSA-*. Utilisation de noms de domaines alternatifs et de HTTPS Rubriques • Déterminer comment CloudFront traite les requêtes HTTPS (p. 244) • Exigences et limites relatives à l'utilisation des certificats SSL/TLS avec CloudFront (p. 245) • Utilisation de noms de domaines alternatifs avec HTTPS (p. 247) • Détermination de la taille de la clé publique d'un certificat SSL/TLS (p. 249) • Rotation des certificats SSL/TLS (p. 249) • Repasser d'un certificat SSL/TLS personnalisé au certificat CloudFront par défaut (p. 250) • Passage d'un certificat SSL/TLS personnalisé avec adresses IP dédiées à l'extension SNI (p. 251) Par défaut, il est possible de diffuser votre contenu aux visionneuses via HTTPS en utilisant votre nom de domaine de distribution CloudFront dans vos URL, par exemple https:// d111111abcdef8.cloudfront.net/image.jpg. Pour de plus amples informations, veuillez consulter Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine (p. 239). Si vous voulez que vos visionneuses utilisent HTTPS et si vous souhaitez employer votre propre nom de domaine dans les URL de vos objets (comme par exemple https://www.example.com/ image.jpg), des étapes supplémentaires sont nécessaires comme indiqué dans cette rubrique. Important Lorsque vous ajoutez un certificat à votre distribution, CloudFront propage immédiatement celui-ci à tous les emplacements périphériques. Tandis que de nouveaux emplacements périphériques deviennent disponibles, CloudFront leur transmet également le certificat. Il n'est pas possible de restreindre les emplacements périphériques auxquels CloudFront propage les certificats. API Version 2016-01-13 243 Amazon CloudFront Guide du développeur Déterminer comment CloudFront traite les requêtes HTTPS Déterminer comment CloudFront traite les requêtes HTTPS Pour que vos utilisateurs utilisent HTTPS et des noms de domaines alternatifs pour vos objets, vous devez choisir comment CloudFront traite les requêtes HTTPS. Lorsque vous configurez CloudFront pour utiliser des noms de domaines alternatifs, CloudFront peut transmettre des requêtes HTTPS en utilisant une adresse IP dédiée dans chaque emplacement périphérique ou à l'aide de Server Name Indication (SNI). Traitement de requêtes HTTPS avec adresses IP dédiées (fonctionne pour tous les clients) Lorsque vous configurez CloudFront pour traiter des requêtes HTTPS avec des adresses IP dédiées, CloudFront associe votre nom de domaine alternatif à une adresse IP dans chaque emplacement périphérique CloudFront. Lorsqu'une visionneuse envoie une requête HTTPS pour votre contenu, DNS achemine la requête à l'adresse IP de votre distribution à l'emplacement périphérique applicable. CloudFront utilise l'adresse IP pour identifier votre distribution et déterminer le certificat SSL/TLS à renvoyer à la visionneuse. La visionneuse et CloudFront procèdent à des négociations SSL en utilisant votre certificat SSL/TLS, et CloudFront renvoie le contenu demandé à la visionneuse. Cette méthode fonctionne pour toutes les requêtes HTTPS, quel que soit le navigateur ou autre client employé par la visionneuse. Important Lorsque vous configurez CloudFront pour traiter des requêtes HTTPS avec des adresses IP dédiées, un montant supplémentaire est appliqué mensuellement. Ces frais commencent lors de l'association de votre certificat SSL/TLS à une distribution et de l'activation de cette distribution. Pour plus d'informations sur la tarification CloudFront, consultez Tarification Amazon CloudFront. Traitement de requêtes HTTPS avec SNI (fonctionne pour la plupart des clients) Si vous configurez CloudFront pour traiter des requêtes HTTPS avec l'extension SNI (Server Name Indication), CloudFront associe votre nom de domaine alternatif à une adresse IP pour chaque emplacement périphérique, mais ces adresses ne sont pas dédiées à votre distribution. Lorsqu'une visionneuse envoie une requête HTTPS pour votre contenu, DNS achemine la requête à l'adresse IP de l'emplacement périphérique applicable. Néanmoins, comme l'adresse IP n'est pas dédiée à votre distribution, CloudFront ne peut pas déterminer, sur la base de cette adresse, le domaine auquel s'adresse la requête. La négociation SSL se produit très tôt dans le processus d'établissement de connexion HTTPS : Si CloudFront ne peut pas immédiatement déterminer le domaine auquel correspond la requête, il abandonne la connexion. L'utilisation d'une adresse IP dédiée est une façon d'associer une requête à un domaine. Cela est également possible avec SNI, qui constitue une extension du protocole TLS pris en charge par la plupart des navigateurs modernes. Les navigateurs qui prennent en charge SNI obtiennent automatiquement le nom de domaine de l'URL de la requête et l'ajoutent à un nouveau champ de l'en-tête de la requête. Lorsque CloudFront reçoit une requête HTTPS d'un navigateur qui prend en charge l'extension SNI, il cherche le nom de domaine dans l'en-tête de la requête et répond à celle-ci avec le certificat SSL/TLS applicable. La visionneuse et CloudFront procèdent à des négociations SSL, et CloudFront renvoie le contenu demandé à la visionneuse. Pour une liste actuelle des navigateurs qui prennent en charge l'extension SNI, consultez l'entrée Server Name Indication de Wikipedia. API Version 2016-01-13 244 Amazon CloudFront Guide du développeur Exigences et limites relatives à l'utilisation des certificats SSL/TLS avec CloudFront Si vous souhaitez utiliser l'extension SNI mais que certains navigateurs de vos utilisateurs ne la prennent pas en charge, vous disposez des solutions suivantes : • Configurez CloudFront pour transmettre des requêtes HTTPS avec des adresses IP dédiées au lieu de l'extension SNI. • Utilisez le certificat SSL/TLS de CloudFront au lieu d'un certificat personnalisé. Vous devrez utiliser le nom de domaine CloudFront pour la distribution dans les URL de vos objets, comme par exemple, https://d111111abcdef8.cloudfront.net/logo.png. Vous devrez aussi changer le certificat SSL/TLS utilisé par CloudFront, soit passer d'un certificat personnalisé au certificat CloudFront par défaut : • Si vous n'avez pas utilisé votre distribution pour transmettre votre contenu, vous pouvez juste modifier la configuration. Pour de plus amples informations, veuillez consulter Liste, affichage et mise à jour des distributions CloudFront (p. 43). • Si vous avez utilisé la distribution pour transmettre votre contenu, vous devez créer une nouvelle distribution CloudFront et modifier les URL d'objets afin de réduire ou d'éliminer la durée d'indisponibilité de votre contenu. Pour de plus amples informations, veuillez consulter Repasser d'un certificat SSL/TLS personnalisé au certificat CloudFront par défaut (p. 250). • Si vous pouvez contrôler le navigateur employé par vos utilisateurs, demandez-leur de mettre leur navigateur à niveau afin qu'il accepte l'extension SNI. • Utilisez HTTP au lieu de HTTPS. Exigences et limites relatives à l'utilisation des certificats SSL/TLS avec CloudFront Commençons par aborder les exigences pour les certificats. Auteur du certificat Le certificat doit être émis par une autorité de certification reconnue, telle que Comodo, DigiCert ou Symantec. Si votre origine est un équilibreur de charge Elastic Load Balancing, vous pouvez aussi utiliser un certificat mis en service par Amazon (via AWS Certificate Manager). Les certificats auto-signés ne sont pas acceptés. Format du certificat Le certificat doit être au format PEM X.509. Il s'agit du format par défaut si vous utilisez AWS Certificate Manager. Certificats intermédiaires Si vous utilisez une autorité de certification (AC) différente d'Amazon (via AWS Certificate Manager), indiquez tous les certificats intermédiaires dans la chaîne de certificats du fichier .pem, en commençant par un pour l'AC qui a signé le certificat de votre domaine. En règle générale, un fichier qui se trouve sur le site Web de votre autorité de certification indique les certificats racine et intermédiaires dans l'ordre approprié pour la chaîne. Important N'incluez par le certificat racine, les certificats intermédiaires non approuvés ni le certificat de clé publique de votre autorité de certification. Voici un exemple: -----BEGIN CERTIFICATE----Intermediate certificate 2 -----END CERTIFICATE---------BEGIN CERTIFICATE----Intermediate certificate 1 API Version 2016-01-13 245 Amazon CloudFront Guide du développeur Exigences et limites relatives à l'utilisation des certificats SSL/TLS avec CloudFront -----END CERTIFICATE----- Clé privée Si vous utilisez une autorité de certification différente d'Amazon (via AWS Certificate Manager), la clé privée doit correspondre à la clé publique qui se trouve dans le certificat. Il doit également s'agir d'une clé privée RSA au format PEM, où l'en-tête PEM est BEGIN RSA PRIVATE KEY et le pied de page est END RSA PRIVATE KEY. La clé privée ne peut pas être chiffrée avec un mot de passe. Si vous utilisez Amazon comme autorité de certification, AWS Certificate Manager n'émet pas la clé privée. La clé privée est stockée dans AWS Certificate Manager afin d'être utilisée par les services AWS qui sont intégrés à AWS Certificate Manager. Autorisations Vous devez avoir l'autorisation d'utiliser et de télécharger le certificat SSL/TLS, y compris l'autorisation de l'autorité de certification qui a émis le certificat de le télécharger sur le réseau de diffusion de contenu. Si vous utilisez AWS Certificate Manager, nous vous recommandons d'utiliser les autorisations IAM pour restreindre l'accès aux certificats. Pour plus de détails, consultez Permissions and Policies dans le manuel AWS Certificate Manager User Guide. Taille maximale de la clé publique La taille maximale de la clé publique d'un certificat SSL/TLS est 2048 bits. Pour plus de détails sur les clés publiques pour certificats AWS Certificate Manager, consultez ACM Certificate Characteristics dans le manuel AWS Certificate Manager User Guide. Pour en savoir plus sur la façon de déterminer la taille de la clé publique, consultez Détermination de la taille de la clé publique d'un certificat SSL/TLS (p. 249). Types de certificats pris en charge CloudFront prend en charge tous les types de certificats, y compris les certificats au domaine validé, les certificats à validation étendue (EV), les certificats haute assurance, les certificats à caractères génériques (*.example.com), les certificats SAN (Subject alternative name) (example.com et example.net) etc. Date d'expiration de certificat et renouvellement Si vous utilisez une autorité de certification différente d'Amazon (via AWS Certificate Manager), il vous incombe de contrôler la date d'expiration des certificats et de renouveler les certificats SSL/TLS que vous téléchargez et utilisez avec CloudFront. AWS Certificate Manager renouvelle automatiquement les certificats. Pour plus de détails, consultez Managed Renewal dans le manuel AWS Certificate Manager User Guide. Noms de domaine dans la distribution CloudFront et dans le certificat Lorsque vous utilisez une origine personnalisée, le certificat SSL/TLS de votre origine inclut un nom de domaine dans le champ Common Name et certainement plusieurs autres dans le champ Subject Alternative Names. (CloudFront prend en charge les caractères génériques dans les noms de domaines de certificats.) L'un des noms de domaines du certificat doit correspondre au nom de domaine spécifié pour le nom du domaine d'origine. Si les noms de domaines ne correspondent pas, CloudFront renvoie un code d'état HTTP 502 (Passerelle erronée) à la visionneuse. Nous allons maintenant aborder les limites relatives à l'utilisation des certificats SSL/TLS avec CloudFront. Nombre maximum de certificats par distribution CloudFront Vous pouvez associer au maximum un certificat SSL/TLS à chaque distribution CloudFront. Nombre maximal de certificats dans le magasin de certificats IAM Si vous avez obtenu vos certificats SSL/TLS auprès d'une autorité de certification différente d'Amazon (via AWS Certificate Manager), vous devez les télécharger dans le magasin de certificats IAM comme indiqué plus loin dans cette rubrique. Vous pouvez télécharger au maximum 10 certificats dans le magasin de certificats IAM pour chaque compte AWS. Pour demander une limite plus élevée, consultez Request IAM limit increase. API Version 2016-01-13 246 Amazon CloudFront Guide du développeur Utilisation de noms de domaines alternatifs avec HTTPS Nombre maximum de certificats par compte AWS Si vous souhaitez diffuser des requêtes HTTPS en utilisant des adresses IP dédiées, notez les points suivants : • Par défaut, AWS vous autorise à utiliser deux certificats avec votre compte AWS, un pour l'usage quotidien et un pour les besoins de rotation de certificats pour plusieurs distributions. • Si vous utilisez déjà cette fonction mais que vous devez augmenter le nombre de certificats SSL/TLS personnalisés à utiliser avec votre compte AWS, accédez au Centre de support et créez une demande. Indiquez le nombre de certificats dont vous avez besoin et décrivez les circonstances de votre demande. Nous mettrons votre compte à jour dès que possible. Utilisation du même certificat pour les distributions CloudFront créées avec différents compte AWS Si vous utilisez une autorité de certification différente d'Amazon (via AWS Certificate Manager) et si vous souhaitez utiliser le même certificat avec plusieurs distributions CloudFront créées en utilisant des comptes AWS différents, vous devez charger le certificat dans le magasin de certificats IAM une fois pour chaque compte AWS. Si vous utilisez Amazon (via AWS Certificate Manager) comme autorité de certification, vous ne pouvez pas configurer CloudFront de manière à utiliser des certificats créés par un compte AWS différent. Utilisation du même certificat pour CloudFront et pour d'autres services AWS Si vous utilisez une autorité de certification différente d'AWS Certificate Manager et si vous souhaitez utiliser le même certificat pour CloudFront et pour d'autres services AWS, vous devez charger deux fois le certificat : une fois pour CloudFront et une fois pour les autres services. Pour plus d'informations sur le chargement du certificat pour CloudFront, reportez-vous à la procédure ci-dessous. Si vous utilisez Amazon (via AWS Certificate Manager) comme autorité de certification, les certificats sont stockés dans AWS Certificate Manager. Utilisation du même certificat pour plusieurs distributions CloudFront Que vous utilisiez AWS Certificate Manager ou une autre autorité de certification, vous pouvez utiliser le même certificat pour toutes les distributions CloudFront (ou une partie d'entre elles) utilisées pour diffuser les requêtes HTTPS. Vous pouvez utiliser le même certificat pour diffuser les requêtes utilisant des adresses IP dédiées et pour celles utilisant l'extension SNI. (Vous ne pouvez associer qu'un seul certificat à chaque distribution.) Chaque distribution doit inclure un ou plusieurs noms de domaines alternatifs qui apparaissent aussi dans les champs Common Name ou Subject Alternative Name du certificat. Si vous diffusez des requêtes HTTPS avec des adresses IP dédiées et que vous avez créé toutes vos distributions avec le même compte AWS, vos frais s'en trouveront considérablement réduits, car ils sont associés à chaque certificat et non pas à chaque distribution. Supposons, par exemple, que vous créez trois distributions en utilisant le même compte AWS avec le même certificat pour chacune d'entre elles. Un seul montant correspondant à l'usage des adresses IP dédiées vous sera facturé. Par contre, si vous diffusez des requêtes HTTPS avec des adresses IP dédiées et que vous employez le même certificat pour créer des distributions CloudFront sur différents comptes AWS, un montant vous sera facturé sur chaque compte pour l'usage des adresses IP dédiées. Si vous créez, par exemple, trois distributions avec trois comptes AWS différents, et que vous employez le même certificat pour les trois distributions, il vous sera facturé sur chaque compte le montant complet correspondant à l'usage des adresses IP dédiées. Utilisation de noms de domaines alternatifs avec HTTPS 1. Commencez par obtenir un certificat SSL/TLS si vous n'en avez pas déjà un. Pour de plus amples informations, veuillez consulter la documentation pertinente : API Version 2016-01-13 247 Amazon CloudFront Guide du développeur Utilisation de noms de domaines alternatifs avec HTTPS • Pour qu'AWS Certificate Manager mette en service un certificat, consultez le manuel AWS Certificate Manager User Guide. Passez ensuite à l'étape 4. Note Vous pouvez uniquement utiliser AWS Certificate Manager pour mettre en service un certificat si l'origine de votre distribution CloudFront est un équilibreur de charge Elastic Load Balancing. • Pour obtenir un certificat auprès d'une autre autorité de certification, consultez les rubriques suivantes sous Creating, Uploading, and Deleting Server Certificates dans IAM Guide de l'utilisateur : • Prérequis • Create a Private Key • Create a Certificate Signing Request • Submit the CSR to a Certificate Authority Passez ensuite à l'étape 2. 2. Certificats obtenus auprès d'une autorité de certification différente d'Amazon (via AWS Certificate Manager) – Si vous souhaitez diffuser les requêtes HTTPS au moyen de l'extension SNI (Server Name Indication), passez directement à l'étape 3. Si vous souhaitez diffuser les requêtes HTTPS en utilisant des adresses IP, et si vous devez associer définitivement deux certificats ou plus à vos distributions, demandez d'augmenter le nombre de certificats à votre disposition : 3. a. Allez au Centre de support et créez une demande. b. Indiquez le nombre de certificats dont vous avez besoin et décrivez les circonstances de votre demande. Nous mettrons votre compte à jour dès que possible. Certificats obtenus auprès d'une autorité de certification différente d'Amazon (via AWS Certificate Manager) – Utilisez la commande AWS CLI pour charger votre certificat SSL/TLS dans le magasin de certificats IAM : aws iam upload-server-certificate --server-certificatename CertificateName --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file --path /cloudfront/path/ Remarques : • Compte AWS – Vous devez charger le certificat dans le magasin de certificats IAM à l'aide du même compte AWS que celui que vous avez utilisé pour créer votre distribution CloudFront. • Paramètre --path – Lorsque vous téléchargez le certificat sur IAM, la valeur du paramètre -path (chemin du certificat) doit commencer par /cloudfront/, comme par exemple, / cloudfront/production/ ou /cloudfront/test/. Le chemin doit aussi se terminer par un /. • Avec la console CloudFront – Si vous prévoyez d'utiliser la console CloudFront pour créer ou mettre à jour votre distribution, la valeur spécifiée pour le paramètre --server-certificatename de ligne de commande d'interface AWS, par exemple, myServerCertificate, correspond à la valeur qui apparaîtra dans la liste SSL Certificate de la console CloudFront. • Avec l'API CloudFront – Si vous prévoyez d'utiliser l'API CloudFront pour créer ou mettre à jour votre distribution, prenez note de la chaîne alphanumérique que l'interface de ligne de commande AWS retourne, soit par exemple AS1A2M3P4L5E67SIIXR3J. Il s'agit de la valeur que vous spécifierez dans l'élément IAMCertificateId. Vous n'avez pas besoin de l'ARN IAM, que retourne également l'interface de ligne de commande. API Version 2016-01-13 248 Amazon CloudFront Guide du développeur Détermination de la taille de la clé publique d'un certificat SSL/TLS Pour plus d'informations sur l'interface de ligne de commande AWS, consultez AWS Command Line Interface Guide de l'utilisateur et AWS Command Line Interface Reference. 4. Mettez à jour votre distribution de manière à inclure vos noms de domaines alternatifs, à spécifier le certificat SSL/TLS à utiliser, et à indiquer si vous souhaitez que CloudFront emploie des adresses IP dédiées ou l'extension SNI pour traiter les requêtes HTTPS. Vous devez également ajouter ou mettre à jour les enregistrements DNS. Pour plus d'informations et une procédure, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Caution Après que vous avez associé votre certificat SSL/TLS à votre distribution CloudFront, ne supprimez pas le certificat du magasin de certificats IAM tant que vous ne l'avez pas retiré de toutes les distributions et que le statut des distributions n'est pas devenu Deployed. Détermination de la taille de la clé publique d'un certificat SSL/TLS Lorsque vous utilisez des noms de domaines alternatifs CloudFront et HTTPS, la taille de la clé publique d'un certificat SSL/TLS ne peut pas dépasser 2048 bits. (Il ne s'agit pas du nombre de caractères de la clé publique.) Vous pouvez déterminer la taille de la clé publique en exécutant la commande OpenSSL suivante : openssl x509 -in path and filename of SSL/TLS certificate -text -noout où : • -in indique le chemin et nom de fichier de votre certificat SSL/TLS. • -text permet à OpenSSL d'afficher la longueur de la clé publique en bits. • -noout empêche OpenSSL d'afficher la clé publique. Exemple de sortie : Public-Key: (2048 bit) Rotation des certificats SSL/TLS Si vous utilisez AWS Certificate Manager, vous n'avez pas besoin de rotation de certificats. AWS Certificate Manager renouvelle automatiquement les certificats. Si vous utilisez une autre autorité de certification, vous devrez parfois remplacer un certificat SSL/TLS par un autre, par exemple en raison de l'imminence d'une date d'expiration. Le processus dépend de si vous avez associé votre certificat SSL/TLS à une ou plusieurs distributions CloudFront sous le même compte AWS : • Certificat SSL/TLS associé à une distribution : vous pouvez juste mettre à jour votre distribution et remplacer l'ancien certificat par le nouveau. Pour de plus amples informations, veuillez consulter Liste, affichage et mise à jour des distributions CloudFront (p. 43). • Certificat SSL/TLS associé à deux distributions (ou plus) sous le même compte AWS : par défaut, vous ne pouvez associer que deux certificats SSL/TLS aux distributions CloudFront sous un seul compte AWS. Généralement, vous n'utilisez le second certificat que lorsque vous avez plusieurs distributions et que vous devez faire tourner les certificats. Un certificat est associé aux distributions API Version 2016-01-13 249 Amazon CloudFront Guide du développeur Repasser d'un certificat SSL/TLS personnalisé au certificat CloudFront par défaut que vous n'avez pas encore mises à jour, et l'autre est associé aux distributions déjà mises à jour. Utilisez la procédure suivante. Important Lorsque vous faites tourner les certificats, vous pouvez provoquer des frais supplémentaires au prorata pour l'utilisation d'un deuxième certificat. Nous vous recommandons de mettre rapidement à jour vos distributions pour réduire les frais supplémentaires. les visionneuses peuvent continuer d'accéder à votre contenu pendant la rotation des certificats, ainsi qu'une fois le processus terminé. Rotation des certificats SSL/TLS pour deux distributions CloudFront ou plus 1. Si vous avez configuré CloudFront de manière à utiliser des adresses IP dédiées pour diffuser des requêtes HTTPS et que vous avez déjà associé le nombre maximum de certificats SSL/ TLS permis par AWS pour votre compte, demandez l'autorisation d'associer un certificat supplémentaire. Allez au Centre de support et créez une demande. Indiquez le nombre de certificats pour l'utilisation desquels vous avez besoin d'une autorisation et expliquez que vous effectuez une rotation des certificats. Nous mettrons votre compte à jour dès que possible. 2. Chargez le nouveau certificat dans le magasin de certificats IAM. Pour plus d'informations, consultez l'étape 3 de la procédure Utilisation de noms de domaines alternatifs avec HTTPS (p. 247). Notez bien que, pour les paramètres --server-certificate-name et --path, vous devez spécifier des valeurs différentes de celles associées aux certificats existants. 3. Mettez vos distributions à jour une à la fois pour utiliser le nouveau certificat. Si vous avez envoyé une demande à AWS à l'étape 1, attendez de recevoir une notification indiquant la mise à jour de votre compte AWS. Pour de plus amples informations, veuillez consulter Liste, affichage et mise à jour des distributions CloudFront (p. 43). 4. (Facultatif) Après avoir mis à jour toutes vos distributions CloudFront, vous pouvez supprimer l'ancien certificat du magasin de certificats IAM. Caution Ne supprimez pas de certificat SSL/TLS du magasin de certificats IAM tant que vous ne l'avez pas retiré de toutes les distributions et que le statut des distributions mises à jour n'est pas devenu Deployed. Repasser d'un certificat SSL/TLS personnalisé au certificat CloudFront par défaut Si vous avec configuré CloudFront de manière à utiliser un certificat SSL/TLS personnalisé et que vous souhaitez modifier votre configuration afin d'utiliser le certificat SSL/TLS de CloudFront, il faut d'abord savoir si vous avez utilisé votre distribution pour distribuer votre contenu. • Si vous n'avez pas utilisé votre distribution pour transmettre votre contenu, vous pouvez juste modifier la configuration. Pour de plus amples informations, veuillez consulter Liste, affichage et mise à jour des distributions CloudFront (p. 43). • Si vous avez utilisé la distribution pour transmettre votre contenu, vous devez créer une nouvelle distribution CloudFront et modifier les URL d'objets afin de réduire ou d'éliminer la durée d'indisponibilité de votre contenu. Utilisez la procédure suivante. API Version 2016-01-13 250 Amazon CloudFront Guide du développeur Passage d'un certificat SSL/TLS personnalisé avec adresses IP dédiées à l'extension SNI Repasser au certificat CloudFront par défaut 1. Créez une nouvelle distribution CloudFront avec la configuration souhaitée. Pour SSL Certificate, choisissez Default CloudFront Certificate (*.cloudfront.net). Pour de plus amples informations, veuillez consulter Liste des tâches de création d'une distribution web (p. 54). 2. Pour les objets que vous distribuez avec CloudFront, mettez les URL à jour dans votre application afin d'utiliser le nom de domaine associé par CloudFront à la nouvelle distribution. Remplacez, par exemple, https://www.example.com/images/logo.png par https:// d111111abcdef8.cloudfront.net/images/logo.png. 3. Supprimez la distribution associée à un certificat SSL/TLS personnalisé ou mettez à jour la distribution en remplaçant la valeur de SSL Certificate par Default CloudFront Certificate (*.cloudfront.net). Pour de plus amples informations, veuillez consulter Liste, affichage et mise à jour des distributions CloudFront (p. 43). Important Tant que vous n'aurez pas effectué cette procédure, Amazon Web Services continuera de facturer l'usage d'un certificat SSL/TLS personnalisé. 4. (Facultatif) Utilisez l'interface de ligne de commande AWS CLI pour supprimer votre certificat SSL/ TLS personnalisé du magasin de certificats IAM. Il s'agit de la même application que celle utilisée pour ajouter le certificat SSL/TLS au magasin de certificats IAM. a. Exécutez la commande list-signing-certificates de l'interface de ligne de commande AWS CLI pour obtenir l'ID du certificat à supprimer. Pour plus d'informations, consultez listsigning-certificates dans le manuel AWS Command Line Interface Reference. b. Exécutez la commande delete-signing-certificate de l'interface de ligne de commande AWS CLI pour supprimer certificat. Pour plus d'informations, consultez deletesigning-certificate dans le manuel AWS Command Line Interface Reference. Passage d'un certificat SSL/TLS personnalisé avec adresses IP dédiées à l'extension SNI Si vous avez configuré CloudFront de manière à utiliser un certificat SSL/TLS personnalisé avec des adresses IP dédiées, vous pouvez passer à un certificat SSL/TLS personnalisé avec extension SNI. Il suffit de procéder comme indiqué ci-dessous. Important Cette mise à jour de votre configuration CloudFront n'a aucun effet sur les visionneuses qui prennent en charge l'extension SNI ; elles peuvent accéder à votre contenu avant ou après le changement, ainsi que pendant la propagation du changement aux emplacements périphériques CloudFront. Les visionneuses qui ne prennent pas en charge l'extension SNI ne peuvent plus accéder à votre contenu après le changement. Pour de plus amples informations, veuillez consulter Déterminer comment CloudFront traite les requêtes HTTPS (p. 244). Pour passer d'un certificat SSL/TLS personnalisé avec adresses IP dédiées à l'extension SNI 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans le volet supérieur de la console CloudFront sélectionnez la distribution que vous souhaitez afficher ou mettre à jour. 3. Choisissez Distribution Settings. API Version 2016-01-13 251 Amazon CloudFront Guide du développeur Frais associés aux connexions HTTPS 4. Sous l'onglet General, choisissez Edit. 5. Modifiez le paramètre de Custom SSL Client Support pour obtenir Only Clients that Support Server Name Indication (SNI). Choisissez Yes, Edit. 6. Frais associés aux connexions HTTPS Les requêtes HTTPS sont toujours associées à des frais supplémentaires. Pour en savoir plus, consultez la page Tarification Amazon CloudFront. API Version 2016-01-13 252 Amazon CloudFront Guide du développeur Authentication Authentification et contrôle d'accès pour CloudFront Afin d'effectuer toute opération sur les ressources CloudFront, telles que la création d'une distribution Web ou une invalidation, AWS Identity and Access Management (IAM) nécessite que vous confirmiez que vous êtes un utilisateur approuvé d'AWS. Si vous utilisez la console CloudFront, vous authentifiez votre identité en fournissant votre nom d'utilisateur AWS et un mot de passe. Si vous accédez à CloudFront par programmation, votre application authentifie votre identité en utilisant des touches d'accès rapide ou en signant des demandes. Une fois que vous avez authentifié votre identité, IAM contrôle votre accès à AWS en vérifiant que vous détenez les autorisations pour effectuer des opérations et accéder aux ressources. Si vous êtes un administrateur de compte, vous pouvez utiliser IAM pour contrôler l'accès d'autres utilisateurs aux ressources qui sont associées à votre compte. Ce chapitre explique comment utiliser AWS Identity and Access Management (IAM) et CloudFront pour aider à sécuriser vos ressources. Rubriques • Authentication (p. 253) • Contrôle d'accès (p. 254) Authentication You can access AWS as any of the following types of identities: • AWS account root user – When you sign up for AWS, you provide an email address and password that is associated with your AWS account. These are your root credentials and they provide complete access to all of your AWS resources. Important For security reasons, we recommend that you use the root credentials only to create an administrator user, which is an IAM user with full permissions to your AWS account. Then, you can use this administrator user to create other IAM users and roles with limited permissions. For more information, see IAM Best Practices and Creating an Admin User and Group in the IAM Guide de l'utilisateur. API Version 2016-01-13 253 Amazon CloudFront Guide du développeur Contrôle d'accès • IAM user – An IAM user is simply an identity within your AWS account that has specific custom permissions (for example, permissions to create a web distribution in CloudFront). You can use an IAM user name and password to sign in to secure AWS webpages like the AWS Management Console, AWS Discussion Forums, or the AWS Support Center. In addition to a user name and password, you can also generate access keys for each user. You can use these keys when you access AWS services programmatically, either through one of the several SDKs or by using the AWS Command Line Interface (CLI). The SDK and CLI tools use the access keys to cryptographically sign your request. If you don’t use the AWS tools, you must sign the request yourself. CloudFront supports Signature Version 4, a protocol for authenticating inbound API requests. For more information about authenticating requests, see Signature Version 4 Signing Process in the AWS General Reference. • IAM role – An IAM role is another IAM identity you can create in your account that has specific permissions. It is similar to an IAM user, but it is not associated with a specific person. An IAM role enables you to obtain temporary access keys that can be used to access AWS services and resources. IAM roles with temporary credentials are useful in the following situations: • Federated user access – Instead of creating an IAM user, you can use preexisting user identities from AWS Directory Service, your enterprise user directory, or a web identity provider. These are known as federated users. AWS assigns a role to a federated user when access is requested through an identity provider. For more information about federated users, see Federated Users and Roles in the IAM Guide de l'utilisateur. • Cross-account access – You can use an IAM role in your account to grant another AWS account permissions to access your account’s resources. For an example, see Tutorial: Delegate Access Across AWS Accounts Using IAM Roles in the IAM Guide de l'utilisateur. • AWS service access – You can use an IAM role in your account to grant an AWS service permissions to access your account’s resources. For example, you can create a role that allows Amazon Redshift to access an Amazon S3 bucket on your behalf and then load data stored in the bucket into an Amazon Redshift cluster. For more information, see Creating a Role to Delegate Permissions to an AWS Service in the IAM Guide de l'utilisateur. • Applications running on Amazon EC2 – Instead of storing access keys within the EC2 instance for use by applications running on the instance and making AWS API requests, you can use an IAM role to manage temporary credentials for these applications. To assign an AWS role to an EC2 instance and make it available to all of its applications, you can create an instance profile that is attached to the instance. An instance profile contains the role and enables programs running on the EC2 instance to get temporary credentials. For more information, see Using Roles for Applications on Amazon EC2 in the IAM Guide de l'utilisateur. Contrôle d'accès Pour créer, mettre à jour, supprimer ou répertorier des ressources CloudFront, vous devez détenir les autorisations nécessaires pour effectuer l'opération et pour accéder aux ressources correspondantes. API Version 2016-01-13 254 Amazon CloudFront Guide du développeur Présentation de la gestion de l'accès En outre, pour effectuer l'opération par programmation, vous avez besoin de touches d'accès rapide valides. Les sections suivantes décrivent comment gérer les autorisations pour CloudFront: • Présentation de la gestion des autorisations d'accès à vos ressources CloudFront: (p. 255) • Utilisation des stratégies basées sur une identité (stratégies IAM) pour CloudFront (p. 258) • Autorisations d'API de CloudFront : référence des actions, ressources et conditions (p. 263) Présentation de la gestion des autorisations d'accès à vos ressources CloudFront: Chaque ressource AWS appartient à un compte AWS et les autorisations permettant de créer des ressources et d'y accéder sont régies par les stratégies d'autorisation. Note Un administrateur de compte (ou utilisateur administrateur) est un utilisateur détenant des privilèges d'administrateur. Pour plus d'informations sur les administrateurs, du manuel la section Bonnes pratiques IAM du manuel IAM Guide de l'utilisateur. Lorsque vous accordez des autorisations, vous décidez qui obtient les autorisations, pour quelles ressources ils obtiennent les autorisations, ainsi que les actions qu'ils ont l'autorisation d'effectuer. Rubriques • ARN pour les ressources CloudFront (p. 255) • Présentation de la propriété des ressources (p. 255) • Gestion de l'accès aux ressources (p. 256) • Spécification des éléments d'une stratégie : ressources, actions, effets et mandataires (p. 257) • Spécification des conditions dans une stratégie (p. 258) ARN pour les ressources CloudFront Toutes les ressources CloudFront (Web et distributions RTMP, invalidations et identités d'accès à l'origine) utilisent le même format pour les noms de ressource Amazon (ARN) : arn:aws:cloudfront::optional-account-id:* CloudFront fournit des actions d'API pour travailler avec chacune de ces types de ressources. Pour plus d'informations, consultez le manuel Amazon CloudFront API Reference. Pour une liste des actions et l'ARN que vous spécifiez pour accorder ou refuser l'autorisation d'utiliser chaque action, consultez la section Autorisations d'API de CloudFront : référence des actions, ressources et conditions (p. 263). Présentation de la propriété des ressources Un compte AWS possède les ressources qui sont créés dans le compte, indépendamment de la personne qui a créé les ressources. Plus spécifiquement, le propriétaire des ressources est le compte AWS de l'entité principale (à savoir, le compte racine, un utilisateur IAM ou un rôle IAM) qui authentifie la demande de création de la ressource. API Version 2016-01-13 255 Amazon CloudFront Guide du développeur Gestion de l'accès aux ressources Les exemples suivants illustrent comment cela fonctionne : • Si vous utilisez les informations d'identification de compte racine de votre compte AWS pour créer une distribution Web, votre compte AWS est le propriétaire de la distribution. • Si vous créez un utilisateur IAM dans votre compte AWS et que vous accordez des autorisations pour créer une distribution Web pour cet utilisateur, celui-ci peut créer une distribution Web. Le compte AWS ayant créé l'utilisateur possède la distribution. • Si vous créez un rôle IAM dans votre compte AWS disposant des autorisations pour créer une distribution Web, qui conque pouvant assumer le rôle peut créer une distribution Web. Votre compte AWS, auquel le rôle appartient, est propriétaire de la distribution. Gestion de l'accès aux ressources Une stratégie d'autorisation précise qui a accès à quoi. Cette section présente les options de création de stratégies d'autorisation pour CloudFront. Pour obtenir des informations générales concernant la syntaxe des stratégies IAM et des descriptions, consultez la section Présentation des stratégies IAM AWS du manuel IAM Guide de l'utilisateur. Les stratégies attachées à une identité IAM sont appelées stratégies basées sur une entité (stratégies IAM) et les stratégies attachées à une ressource sont appelées stratégies basées sur une ressource. CloudFront prend en charge uniquement les stratégies basées sur une identité (stratégies IAM). Rubriques • Stratégies basées sur une identité (stratégies IAM) (p. 256) • Stratégies basées sur une ressource (p. 257) Stratégies basées sur une identité (stratégies IAM) Vous pouvez attacher des stratégies à des identités IAM. Par exemple, vous pouvez effectuer les opérations suivantes : • Attacher une stratégie d'autorisation à un utilisateur ou à un groupe dans votre compte – Un administrateur de compte peut utiliser une stratégie d'autorisation associée à un utilisateur particulier pour autoriser cet utilisateur à créer une distribution Web. • Attachez une stratégie d'autorisations à un rôle (accordez des autorisations entre comptes) – vous pouvez accorder des autorisations d'exécution d'actions CloudFront à un utilisateur qui a été créée dans un autre compte AWS. Pour ce faire, vous attachez une stratégie d'autorisations à un rôle IAM, puis vous autorisez l'utilisateur dans l'autre compte à assumer le rôle. L'exemple suivant explique comment cela fonctionne pour les deux comptes AWS, le compte A et le compte b : 1. L'administrateur du Compte A crée un rôle IAM et attache une stratégie d'autorisations à ce rôle qui accorde des autorisations de création ou d'accès à des ressources qui sont la propriété du Compte A. 2. L'administrateur du compte A accorde une stratégie d'approbation au rôle. La stratégie d'approbation identifie le Compte B comme le compte principal pouvant assumer le rôle. 3. L'administrateur du Compte B peut ensuite déléguer des autorisations pour assumer le rôle à des utilisateurs ou groupes du Compte B. Cela permet aux utilisateurs du Compte B de créer ou d'accéder aux ressources du Compte A. Pour plus d'informations sur la façon de déléguer des autorisations à des utilisateurs dans un autre compte AWS, consultez la section Gestion des accès du manuel IAM Guide de l'utilisateur. L'exemple de stratégie suivant permet à un utilisateur d'exécuter l'action CreateDistribution afin de créer par programmation une distribution Web pour votre compte AWS : API Version 2016-01-13 256 Amazon CloudFront Guide du développeur Spécification des éléments d'une stratégie : ressources, actions, effets et mandataires { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudfront:CreateDistribution" ], "Resource":"*" } ] } Pour plus d'informations sur les autorisations requises pour exécuter des opérations à l'aide de la console CloudFront, consultez la sectionAutorisations requises pour utiliser la console CloudFront (p. 259). Pour plus d'informations sur l'attachement de stratégies aux identités pour CloudFront, consultez la section Utilisation des stratégies basées sur une identité (stratégies IAM) pour CloudFront (p. 258). Pour plus d'informations sur les utilisateurs, les groupes, les rôles et les autorisations, consultez Identités (utilisateurs, groupes et rôles) dans le manuel IAM Guide de l'utilisateur. Stratégies basées sur une ressource D'autres services, tels que Amazon S3, prennent en charge l'attachement de stratégies d'autorisation aux ressources. Par exemple, vous pouvez attacher une stratégie à un compartiment S3 pour gérer les autorisations d'accès à ce compartiment. CloudFront ne prend pas en charge l'attachement de stratégies aux ressources. Spécification des éléments d'une stratégie : ressources, actions, effets et mandataires CloudFront inclut des actions d'API (voir le manuel Amazon CloudFront API Reference) que vous pouvez utiliser sur chaque ressource CloudFront (voir ARN pour les ressources CloudFront (p. 255)). Vous pouvez accorder à un utilisateur ou un utilisateur fédéré l'autorisation d'effectuer tout ou partie de ces actions. Voici les éléments de base d'une stratégie : • Ressource – Un nom de ressource Amazon (Amazon Resource Name, ARN) identifie la ressource à laquelle la stratégie s'applique. Pour plus d'informations, consultez ARN pour les ressources CloudFront (p. 255). • Action – Vous utilisez des mots clés d'action pour identifier les opérations de ressource que vous voulez accorder ou refuser. Par exemple, en fonction de l'Effect spécifié, l'autorisation cloudfront:CreateDistribution accorde ou refuse à l'utilisateur les autorisations pour effectuer l'action CloudFront CreateDistribution. • Effet – Vous spécifiez l'effet, autoriser ou refuser, lorsqu'un utilisateur tente d'exécuter l'action sur la ressource spécifiée. Si vous n'accordez pas explicitement l'accès à une action, l'accès est implicitement refusé. Vous pouvez aussi explicitement refuser l'accès à une ressource, ce que vous pouvez faire afin de vous assurer qu'un utilisateur n'y a pas accès, même si une stratégie différente accorde l'accès. • Mandataire – Dans les stratégies basées sur une identité (stratégies IAM), l'utilisateur auquel la stratégie est attachée est le mandataire implicite. Pour les stratégies basées sur une ressource, vous spécifiez l'utilisateur, le compte, le service ou une autre entité qui doit recevoir les autorisations (s'applique uniquement aux stratégies basées sur une ressource). CloudFront ne prend pas en charge les stratégies basées sur une ressource. API Version 2016-01-13 257 Amazon CloudFront Guide du développeur Spécification des conditions dans une stratégie Pour plus d'informations concernant la syntaxe des stratégies IAM et des descriptions, consultez la section Présentation des stratégies IAM AWS du manuel IAM Guide de l'utilisateur. Pour obtenir une des tableaux présentant toutes les opérations d'API de CloudFront, ainsi que les ressources auxquelles elles s'appliquent, consultez la section Autorisations d'API de CloudFront : référence des actions, ressources et conditions (p. 263). Spécification des conditions dans une stratégie Lorsque vous accordez des autorisations, vous pouvez utiliser le langage d'access policy de IAMpour spécifier quand une stratégie doit prendre effet. Par exemple, il est possible d'appliquer une stratégie après seulement une date spécifique. Pour plus d'informations sur la spécification de conditions dans un langage de stratégie, consultez Condition dans le manuel IAM Guide de l'utilisateur. Pour exprimer des conditions, vous utilisez des clés de condition prédéfinies. Il n'existe pas de clés de condition spécifiques à CloudFront. Il existe toutefois des clés de condition à l'échelle d'AWS que vous pouvez utiliser selon vos besoins. Pour une liste complète des clés à l'échelle d'AWS, consultez Clés disponibles pour les conditions dans le IAM Guide de l'utilisateur. Utilisation des stratégies basées sur une identité (stratégies IAM) pour CloudFront Cette rubrique fournit des exemples de stratégies basées sur l'identité qui montrent comment un administrateur de compte peut attacher des stratégies d'autorisations à des identités IAM (autrement dit, des utilisateurs, groupes et rôles) et ainsi accorder des autorisations pour effectuer des opérations sur les ressources CloudFront. Important Nous vous recommandons d'examiner d'abord les rubriques de présentation qui détaillent les concepts de base et les options de gestion de l'accès à vos ressources CloudFront. Pour plus d'informations, consultez Présentation de la gestion des autorisations d'accès à vos ressources CloudFront: (p. 255). Rubriques • Autorisations requises pour utiliser la console CloudFront (p. 259) • Stratégies gérées AWS (prédéfinies) pour CloudFront (p. 260) • Exemples de stratégies gérées par le client (p. 261) Voici une stratégie d'autorisations. Le Sid, ou ID de l'instruction, est facultatif : { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllCloudFrontPermissions", "Effect": "Allow", "Action": ["cloudfront:*"], "Resource": "*" } ] API Version 2016-01-13 258 Amazon CloudFront Guide du développeur Autorisations requises pour utiliser la console CloudFront } La stratégie accorde des autorisations d'effectuer toutes les opérations CloudFront ce qui est suffisant pour accéder à CloudFront par programmation. Si vous utilisez la console pour accéder à CloudFront, consultez la sectionAutorisations requises pour utiliser la console CloudFront (p. 259). Pour une liste des actions et l'ARN que vous spécifiez pour accorder ou refuser l'autorisation d'utiliser chaque action, consultez la section Autorisations d'API de CloudFront : référence des actions, ressources et conditions (p. 263). Autorisations requises pour utiliser la console CloudFront Pour accorder un accès complet à la console CloudFront, vous accordez les autorisations dans la stratégie d'autorisations suivante : { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:*", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] } Voici pourquoi les autorisations sont obligatoires : acm:ListCertificates Lorsque vous créez et mettez à jour des distributions Web à l'aide de la console CloudFront et que vous voulez configurer CloudFront de sorte à exiger l'utilisation du protocole HTTPS entre l'utilisateur et CloudFront ou entre CloudFront et l'origine, vous pouvez afficher la liste des certificats ACM (ACM). Cette autorisation n'est pas nécessaire si vous n’utilisez pas la console CloudFront. API Version 2016-01-13 259 Amazon CloudFront Guide du développeur Stratégies gérées AWS (prédéfinies) pour CloudFront cloudfront:* Permet d'effectuer toutes les actions CloudFront. cloudwatch:DescribeAlarms and cloudwatch:PutMetricAlarm Permet de créer et d'afficher des alarmes CloudWatch dans la console CloudFront. Voir aussi sns:ListSubscriptionsByTopic et sns:ListTopics. Ces autorisations ne sont pas nécessaires si vous n’utilisez la console CloudFront. cloudwatch:GetMetricStatistics CloudFront Affichons CloudWatch les métriques dans la console CloudFront. Cette autorisation n'est pas nécessaire si vous n’utilisez pas la console CloudFront. elasticloadbalancing:DescribeLoadBalancers Lorsque vous créez et mettez à jour des distributions Web, vous permet d'afficher la liste des programmes d’équilibrage de charge Elastic Load Balancing dans la liste des origines disponibles. Cette autorisation n'est pas nécessaire si vous n’utilisez pas la console CloudFront. iam:ListServerCertificates Lorsque vous créez et mettez à jour des distributions Web à l'aide de la console CloudFront et que vous souhaitez configurer CloudFront de sorte à exiger l'utilisation du protocole HTTPS entre l'utilisateur et CloudFront ou entre CloudFront et l'origine, vous pouvez afficher la liste des certificats dans le magasin de certificats IAM. Cette autorisation n'est pas nécessaire si vous n’utilisez pas la console CloudFront. s3:ListAllMyBuckets Lorsque vous créez et mettez à jour des distributions Web et RTMP, vous pouvez effectuer les opérations suivantes : • Afficher une liste des compartiments S3 dans la liste des origines disponibles • Afficher une liste de compartiments S3 dans lesquels vous pouvez enregistrer les journaux d'accès Cette autorisation n'est pas nécessaire si vous n’utilisez pas la console CloudFront. S3:PutBucketPolicy Lorsque vous créez ou que vous mettez à jour les distributions qui limitent l'accès aux compartiments S3, un utilisateur peut mettre à jour la stratégie de compartiment pour accorder l'identité d'accès à l'origine CloudFront. Pour plus d'informations, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). Cette autorisation n'est pas nécessaire si vous n’utilisez pas la console CloudFront. sns:ListSubscriptionsByTopic and sns:ListTopics Lorsque vous créez des alarmes CloudWatch dans la console CloudFront, vous pouvez choisir une rubrique SNS pour les notifications. Ces autorisations ne sont pas nécessaires si vous n’utilisez la console CloudFront. waf:GetWebACL and waf:ListWebACLs Vous permet d'afficher la liste des ACL Web AWS WAF dans la console CloudFront. Ces autorisations ne sont pas nécessaires si vous n’utilisez la console CloudFront. Stratégies gérées AWS (prédéfinies) pour CloudFront AWS est approprié pour de nombreux cas d'utilisation courants et fournit des stratégies IAM autonomes qui sont créées et administrées par AWS. Ces stratégies gérées AWS octroient les autorisations requises dans les cas d'utilisation courants pour que vous évitiez d'avoir à réfléchir aux API Version 2016-01-13 260 Amazon CloudFront Guide du développeur Exemples de stratégies gérées par le client autorisations qui sont requises. Pour plus d'informations, consultez Stratégies gérées par AWS dans le manuel IAM Guide de l'utilisateur. Pour CloudFront, IAM fournit deux stratégies gérées : • CloudFrontFullAccess – accorde un accès complet aux ressources de CloudFront. • CloudFrontReadOnlyAccess – accorde un accès en lecture seule aux ressources CloudFront. Note Vous pouvez consulter ces stratégies d'autorisations en vous connectant à la console IAM et en y recherchant des stratégies spécifiques. Vous pouvez également créer vos propres stratégies IAM personnalisées pour permettre les autorisations pour les opérations de l'API CloudFront. Vous pouvez attacher ces stratégies personnalisées aux utilisateurs ou groupes IAM qui nécessitent ces autorisations. Exemples de stratégies gérées par le client Vous pouvez également créer vos propres stratégies IAM personnalisées pour permettre les autorisations pour les actions de l'API de CloudFront. Vous pouvez attacher ces stratégies personnalisées aux utilisateurs ou groupes IAM qui nécessitent les autorisations spécifiées. Ces stratégies fonctionnent lorsque vous utilisez les API &CF, les Kits de développement logiciel (SDK) AWS ou l'interface CLI AWS. Les exemples suivants présentent des autorisations pour quelques cas d'utilisation courants. Pour la stratégie qui accorde à un utilisateur l'accès complet à CloudFront, consultez la section Autorisations requises pour utiliser la console CloudFront (p. 259). Exemples • Exemple 1 : Autoriser l'accès en lecture à toutes les distributions Web (p. 261) • Exemple 2 : Autoriser la création, la mise à jour et la suppression de distributions Web (p. 262) • Exemple 3 : Autoriser la création et l'énumération d'invalidations (p. 263) Exemple 1 : Autoriser l'accès en lecture à toutes les distributions Web La stratégie d'autorisations suivante accorde à l'utilisateur les autorisations pour afficher toutes les distributions Web dans la console CloudFront : { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], API Version 2016-01-13 261 Amazon CloudFront Guide du développeur Exemples de stratégies gérées par le client "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", ], "Resource":"arn:aws:s3:::*" } ] } Exemple 2 : Autoriser la création, la mise à jour et la suppression de distributions Web La stratégie d'autorisations suivante permet aux utilisateurs de créer, mettre à jour et supprimer les distributions Web à l'aide de la console CloudFront : { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] } L'autorisation cloudfront:ListCloudFrontOriginAccessIdentities permet aux utilisateurs d'accorder automatiquement à une identité d'accès à l'origine existante l'autorisation d'accès aux objets dans un compartiment Amazon S3. Si vous souhaitez également que les utilisateurs puissent créer des identités d'accès à l'origine, vous devez également accorder l'autorisation cloudfront:CreateCloudFrontOriginAccessIdentity. API Version 2016-01-13 262 Amazon CloudFront Guide du développeur Référence des autorisations d'API de CloudFront Exemple 3 : Autoriser la création et l'énumération d'invalidations La stratégie d'autorisations suivante permet aux utilisateurs de créer et de répertorier des invalidations. Elle permet un accès en lecture aux distributions CloudFront parce que vous créez et affichez les invalidation en affichant d'abord les paramètres d'affichage d'une distribution : { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "cloudfront:CreateInvalidation", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", ], "Resource":"arn:aws:s3:::*" } ] } Autorisations d'API de CloudFront : référence des actions, ressources et conditions Lorsque vous configurez Contrôle d'accès (p. 254) et que vous créez une stratégie d'autorisation que vous pouvez attacher à une identité IAM (stratégies basées sur une identité), vous pouvez utiliser les de tableaux ci-dessous comme référence. La comprend chaque opération d'API de CloudFront, les actions correspondantes pour lesquelles vous pouvez accorder des autorisations d'exécution de l'action et la ressource AWS pour laquelle vous pouvez accorder des autorisations. Vous spécifiez les actions dans le champ Action de la stratégie ainsi que la valeur des ressources dans le champ Resource de la stratégie. Vous pouvez utiliser des clés de condition à l'échelle d'AWS dans les stratégies CloudFront pour exprimer des conditions. Pour obtenir la liste complète des clés à l'échelle d'AWS, consultez Clés disponibles dans le manuel IAM Guide de l'utilisateur. API Version 2016-01-13 263 Amazon CloudFront Guide du développeur Autorisations requises pour les actions sur les Distributions Web Rubriques • • • • • Autorisations requises pour les actions sur les Distributions Web (p. 264) Autorisations requises pour les actions sur les distributions RTMP (p. 264) Autorisations requises pour les actions sur les invalidations (p. 265) Autorisations requises pour les actions sur les identités d'accès à l'origine (p. 265) Autorisations requises pour les actions sur les balises (p. 265) Autorisations requises pour les actions sur les Distributions Web POST Distribution (CreateDistribution) Autorisations requises (Action d'API) : cloudfront:CreateDistribution Ressources: * POST Distribution With Tags (CreateDistributionWithTags) Autorisations requises (Action d'API) : cloudfront:CreateDistribution, cloudfront:TagResource Ressources: * GET Distribution (GetDistribution) Autorisations requises (Action d'API) : cloudfront:GetDistribution Ressources: * GET Distribution Config (GetDistributionConfig) Autorisations requises (Action d'API) : cloudfront:GetDistributionConfig Ressources: * GET Distribution List (ListDistributions) Autorisations requises (Action d'API) : cloudfront:ListDistributions Ressources: * PUT Distribution Config (UpdateDistribution) Autorisations requises (Action d'API) : cloudfront:UpdateDistribution Ressources: * DELETE Distribution (DeleteDistribution) Autorisations requises (Action d'API) : cloudfront:DeleteDistribution Ressources: * Autorisations requises pour les actions sur les distributions RTMP POST Streaming Distribution (CreateStreamingDistribution) Autorisations requises (Action d'API) : cloudfront:CreateStreamingDistribution Ressources: * POST Streaming Distribution With Tags (CreateStreamingDistributionWithTags) Autorisations requises (Action d'API) : cloudfront:CreateStreamingDistribution, cloudfront:TagResource Ressources: * API Version 2016-01-13 264 Amazon CloudFront Guide du développeur Autorisations requises pour les actions sur les invalidations GET Streaming Distribution (GetStreamingDistribution) Autorisations requises (Action d'API) : cloudfront:GetStreamingDistribution Ressources: * GET Streaming Distribution Config (GetStreamingDistributionConfig) Autorisations requises (Action d'API) : cloudfront:GetStreamingDistributionConfig Ressources: * GET Streaming Distribution List (ListStreamingDistributions) Autorisations requises (Action d'API) : cloudfront:ListStreamingDistributions Ressources: * PUT Streaming Distribution Config (UpdateStreamingDistribution) Autorisations requises (Action d'API) : cloudfront:UpdateStreamingDistribution Ressources: * DELETE Streaming Distribution (DeleteStreamingDistribution) Autorisations requises (Action d'API) : cloudfront:DeleteDistribution Ressources: * Autorisations requises pour les actions sur les invalidations POST Invalidation (CreateInvalidation) Autorisations requises (Action d'API) : cloudfront:CreateInvalidation Ressources: * GET Invalidation (GetInvalidation) Autorisations requises (Action d'API) : cloudfront:GetInvalidation Ressources: * GET Invalidation List (ListInvalidations) Autorisations requises (Action d'API) : cloudfront:ListInvalidations Ressources: * Autorisations requises pour les actions sur les identités d'accès à l'origine POST Origin Access Identity (CreateCloudFrontOriginAccessIdentity) Autorisations requises (Action d'API) : cloudfront:CreateCloudFrontOriginAccessIdentity Ressources: * GET Origin Access Identity (GetCloudFrontOriginAccessIdentity) Autorisations requises (Action d'API) : cloudfront:GetCloudFrontOriginAccessIdentity Ressources: * GET Origin Access Identity Config (GetCloudFrontOriginAccessIdentityConfig) Autorisations requises (Action d'API) : cloudfront:GetCloudFrontOriginAccessIdentityConfig API Version 2016-01-13 265 Amazon CloudFront Guide du développeur Autorisations requises pour les actions sur les balises Ressources: * GET Origin Access Identity List (ListCloudFrontOriginAccessIdentities) Autorisations requises (Action d'API) : cloudfront:ListDistributions Ressources: * PUT Origin Access Identity Config (UpdateCloudFrontOriginAccessIdentity) Autorisations requises (Action d'API) : cloudfront:UpdateCloudFrontOriginAccessIdentity Ressources: * DELETE Origin Access Identity (DeleteCloudFrontOriginAccessIdentity) Autorisations requises (Action d'API) : cloudfront:DeleteCloudFrontOriginAccessIdentity Ressources: * Autorisations requises pour les actions sur les balises POST Tag Resource Autorisations requises (Action d'API) : cloudfront:TagResource Ressources: * http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/tags-untag-resource.htmlPOST Untag Resource Autorisations requises (Action d'API) : cloudfront:UntagResource Ressources: * GET Tags Autorisations requises (Action d'API) : cloudfront:ListTagsForResource Ressources: * API Version 2016-01-13 266 Amazon CloudFront Guide du développeur Fonctionnement de la journalisation Journaux d'accès Vous pouvez configurer Amazon CloudFront de manière à créer les fichiers journaux qui contiennent les informations détaillées sur chaque demande utilisateur reçue par CloudFront. Ces journaux d'accès sont disponibles pour les distributions web et RTMP. Si vous activez la journalisation, vous pouvez aussi spécifier le compartiment Amazon S3 dans lequel vous voulez que CloudFront enregistre les fichiers. Rubriques • Fonctionnement de la journalisation (p. 267) • Choix d'un compartiment Amazon S3 pour les journaux d'accès (p. 268) • Autorisations Amazon S3 requises pour accéder à vos fichiers journaux (p. 268) • Format de nom de fichier (p. 269) • Chronologie de la livraison des fichiers journaux (p. 269) • Analyse des journaux d'accès (p. 270) • Modification de vos paramètres de journalisation (p. 270) • Suppression des fichiers journaux d'un compartiment Amazon S3 (p. 270) • Format de fichier journal (p. 271) • Frais des journaux d'accès (p. 280) Fonctionnement de la journalisation Le diagramme suivant montre comment CloudFront enregistre les informations sur les demandes relatives à vos objets. Comment CloudFront enregistre les informations sur les demandes relatives à vos objets Dans ce diagramme, vous avez deux sites web, A et B, et deux distributions CloudFront correspondantes. Les utilisateurs demandent vos objets à l'aide des URL associées à vos distributions. CloudFront transmet chaque demande à l'emplacement périphérique approprié. API Version 2016-01-13 267 Amazon CloudFront Guide du développeur Choix d'un compartiment Amazon S3 pour les journaux d'accès CloudFront écrit les données sur chaque demande dans un fichier journal propre à cette distribution. Dans cet exemple, les informations sur les demandes associées à Distribution A vont dans un fichier journal réservé à Distribution A et celles sur les demandes associées à Distribution B dans un fichier journal réservé à Distribution B. CloudFront enregistre régulièrement le fichier journal d'une distribution dans le compartiment Amazon S3 que vous avez spécifié lorsque vous avez activé la journalisation. CloudFront démarre ensuite l'enregistrement des informations sur les demandes suivantes dans un nouveau fichier journal de la distribution. Chaque entrée d'un fichier journal fournit des informations détaillées sur une seule demande. Pour plus d'informations sur le format du fichier journal, consultez Format de fichier journal (p. 271). Choix d'un compartiment Amazon S3 pour les journaux d'accès Lorsque vous activez la journalisation pour une distribution, vous spécifiez le compartiment Amazon S3 dans lequel vous voulez que CloudFront stocke les fichiers journaux. Si vous utilisez Amazon S3 comme origine, nous vous recommandons de ne pas utiliser le même compartiment pour vos fichiers journaux ; l'utilisation d'un compartiment distinct simplifie la maintenance. Vous pouvez stocker les fichiers journaux de plusieurs distributions dans le même compartiment. Lorsque vous activez la journalisation, vous pouvez spécifier un préfixe facultatif pour les noms de fichier et vous pouvez ainsi savoir quels fichiers journaux sont associés à quelles distributions. Si aucun utilisateur n'accède à votre contenu pendant une heure donnée, vous ne recevez aucun fichier journal pour cette heure. Autorisations Amazon S3 requises pour accéder à vos fichiers journaux Votre compte AWS doit avoir une autorisation Amazon S3 FULL_CONTROL sur le compartiment que vous spécifiez pour les fichiers journaux. Si vous êtes le propriétaire du compartiment, votre compte dispose de cette autorisation par défaut. Dans le cas contraire, le propriétaire du compartiment doit mettre à jour la liste de contrôle d'accès (ACL) pour que le compartiment accorde à votre compte AWS l'autorisation FULL_CONTROL. Lorsque vous activez la journalisation, CloudFront met automatiquement à jour la liste de contrôle d'accès (ACL) pour que le compartiment accorde au compte awsdatafeeds AWS l'autorisation FULL_CONTROL. Le compte écrit les fichiers journaux dans le compartiment. Note Si vous mettez à jour la liste de contrôle d'accès (ACL) pour que le compartiment supprime les autorisations du compte awsdatafeeds, CloudFront met à nouveau à jour la liste ACL la prochaine fois où le compte awsdatafeeds doit écrire un fichier journal sur le compartiment des journaux. En plus de la liste ACL sur le compartiment, il existe une ACL sur chaque fichier journal. Le propriétaire du compartiment a l'autorisation FULL_CONTROL sur chaque fichier journal, le propriétaire de API Version 2016-01-13 268 Amazon CloudFront Guide du développeur Format de nom de fichier distribution (s'il est différent du propriétaire du compartiment) n'a aucune autorisation et le compte awsdatafeeds a les autorisations en lecture et écriture. Si vous désactivez la journalisation, CloudFront ne supprime pas les listes ACL, que ce soit pour le compartiment ou les fichiers journaux. Si vous le voulez, vous pouvez le faire vous-même. Format de nom de fichier Le nom de chaque fichier journal que CloudFront enregistre dans votre compartiment Amazon S3 utilise le format de nom de fichier suivant : bucket-name.s3.amazonaws.com/optional-prefix/distributionID.YYYY-MM-DD-HH.unique-ID.gz Les dates et heures sont exprimées en heure UTC (temps universel coordonné). Par exemple, si votre compartiment a pour nom mylogs, que votre préfixe est myprefix/ et que votre ID de distribution est EMLARXS9EXAMPLE, vos noms de fichier se présentent comme suit : mylogs.s3.amazonaws.com/myprefix/EMLARXS9EXAMPLE.2014-11-14-20.RT4KCN4SGK9.gz Lorsque vous activez la journalisation pour une distribution, vous pouvez spécifier un préfixe facultatif pour les noms de fichier et vous pouvez ainsi savoir quels fichiers journaux sont associés à quelles distributions. Si vous incluez une valeur pour le préfixe du fichier journal et que votre préfixe n'inclut pas un /, CloudFront en ajoute un automatiquement. Si votre valeur inclut bel et bien un /, CloudFront n'en n'ajoute pas un autre. L'extension .gz à la fin du nom de fichier indique que CloudFront a compressé le fichier journal avec gzip. Chronologie de la livraison des fichiers journaux CloudFront livre les journaux d'accès d'une distribution jusqu'à plusieurs fois par heure. En général, un fichier journal contient des informations sur les demandes que CloudFront a reçues pendant une période donnée. CloudFront livre généralement à votre compartiment Amazon S3 le fichier journal correspondant à cette période dans l'heure qui suit les événements figurant dans le journal. Notez, cependant, que tout ou partie des entrées d'un fichier journal d'une période peut parfois être retardé de 24 heures au plus. Lorsque les entrées des journaux sont retardées, CloudFront les enregistre dans un fichier journal dont le nom inclut la date et l'heure de la période auxquelles les demandes se sont produites, et non la date et l'heure auxquelles le fichier a été livré. Lors de la création d'un fichier journal, CloudFront consolide les informations de votre distribution à partir de tous les emplacements périphériques ayant reçu les demandes relatives à vos objets pendant la période couverte par le fichier journal. CloudFront peut enregistrer plusieurs fichiers pour une période en fonction du nombre de demandes que CloudFront reçoit pour les objets associés à une distribution. CloudFront commence à livrer les journaux d'accès de façon fiable quatre heures environ après que vous avez activé la journalisation. Vous pourriez obtenir quelques journaux d'accès avant ce momentlà. Note Si aucun utilisateur ne demande vos objets pendant la période, vous ne recevez aucun fichier journal pour cette dernière. API Version 2016-01-13 269 Amazon CloudFront Guide du développeur Analyse des journaux d'accès Analyse des journaux d'accès Comme vous pouvez recevoir plusieurs journaux d'accès par heure, nous vous recommandons de combiner tous les fichiers journaux que vous avez reçus pour une période donnée en un seul fichier. Vous pouvez alors analyser les données de cette période plus rapidement et plus précisément. Important Il est recommandé d'utiliser les journaux pour comprendre la nature des demandes de votre contenu, et non comme comptabilisation complète de toutes les demandes. CloudFront livre les journaux d'accès au mieux de ce qu'il peut. L'entrée du journal pour une demande particulière peut être fournie bien après le traitement réel de la demande et, dans de rares cas, une entrée du journal peut ne pas être fournie du tout. Quand une entrée du journal est omise des journaux d'accès, le nombre d'entrées des journaux d'accès ne correspond pas à l'usage qui apparaît dans les rapports de facturation et d'utilisation AWS. Pour plus d'informations sur les journaux d'accès CloudFront, y compris les recommandations relatives aux outils que vous pouvez utiliser pour analyser les journaux d'accès, consultez Utilisation de la journalisation CloudFront (p. 366). Modification de vos paramètres de journalisation Vous pouvez activer ou désactiver la journalisation, changer le compartiment Amazon S3 où vos journaux sont stockés et modifier le préfixe des fichiers journaux à l'aide de la console CloudFront ou de l'API CloudFront. Les modifications apportées aux paramètres de journalisation prennent effet dans les 12 heures. Pour plus d'informations, consultez les rubriques suivantes : • Mise à jour d'une distribution web ou RTMP à l'aide de la console CloudFront : Liste, affichage et mise à jour des distributions CloudFront (p. 43). • Mise à jour d'une distribution web à l'aide de l'API CloudFront : PUT Distribution Config dans le manuel Amazon CloudFront API Reference. • Mise à jour d'une distribution RTMP à l'aide de l'API CloudFront : PUT Streaming Distribution Config dans le manuel Amazon CloudFront API Reference. Pour utiliser l'API CloudFront et modifier les paramètres des journaux d'accès des distributions web, vous devez utiliser la version 2009-04-02 ou ultérieure de l'API. Pour utiliser l'API CloudFront et modifier les paramètres des journaux d'accès des distributions RTMP, vous devez utiliser la version 2010-05-01 ou ultérieure de l'API. Suppression des fichiers journaux d'un compartiment Amazon S3 CloudFront ne supprime pas automatiquement les fichiers journaux de votre compartiment Amazon S3. Pour plus d'informations sur la suppression des fichiers journaux à partir d'un compartiment Amazon S3, consultez les rubriques suivantes : • Utilisation de la console Amazon S3 : Suppression d'un objet dans le manuel Guide de l'utilisateur de la console Amazon Simple Storage Service. API Version 2016-01-13 270 Amazon CloudFront Guide du développeur Format de fichier journal • Utilisation de l'API REST : DELETE Object dans le manuel Amazon Simple Storage Service API Reference. • Utilisation de l'API SOAP : DeleteObject dans le manuel Amazon Simple Storage Service API Reference. Format de fichier journal Rubriques • Format de fichier journal de distribution web (p. 272) • Format de fichier journal de distribution RTMP (p. 278) Chaque entrée d'un fichier journal fournit des informations détaillées sur une seule demande utilisateur. Les fichiers journaux des distributions web et RTMP ne sont pas identiques, mais ils partagent les caractéristiques suivantes : • Utilisez le format de fichier journal étendu W3C. (Pour plus d'informations, consultez http:// www.w3.org/TR/WD-logfile.html.) • Contiennent des valeurs séparées par des virgules. • Contiennent des enregistrements qui ne sont pas nécessairement dans l'ordre chronologique. • Contiennent deux lignes d'en-tête : l'une avec la version fichier-format et l'autre qui répertorie les champs W3C inclus dans chaque enregistrement. • Remplacez les équivalents encodés en URL par des espaces et des caractères non standard dans les valeurs des champs. Ces caractères non standard se composent de tous les codes ASCII inférieurs à 32 et supérieurs à 127, plus les caractères du tableau suivant. La norme d'encodage d'URL est RFC 1738. Pour plus d'informations, consultez http://www.ietf.org/rfc/rfc1738.txt. Valeur d'encodage par URL Caractère %3C < %3E > %22 " %23 # %25 % %7B { %7D } %7C | %5C \ %5E ^ %7E ~ %5B [ API Version 2016-01-13 271 Amazon CloudFront Guide du développeur Format de fichier journal de distribution web Valeur d'encodage par URL Caractère %5D ] %60 ` %27 ' %20 espace Format de fichier journal de distribution web Le fichier journal d'une distribution web inclut les champs suivants dans l'ordre affiché. Numéro de champ Nom de champ Description 1 date Date à laquelle l'événement s'est produit au format yyyy-mm-dd : par exemple, 2015-06-30. Les dates et heures sont exprimées en heure UTC (temps universel coordonné). 2 time Heure à laquelle le serveur CloudFront a fini de répondre à la demande (en heure UTC) : par exemple, 01:42:39. 3 x-edgelocation Emplacement périphérique ayant servi la demande. Chaque emplacement périphérique est identifié par un code à trois lettres et un numéro attribué arbitrairement (par exemple, DFW3). Le code sur trois lettres correspond généralement au code IATA (International Air Transport Association) d'un aéroport proche de l'emplacement périphérique. (Ces abréviations peuvent changer à l'avenir.) Pour obtenir la liste des emplacements périphériques, consultez la page Amazon CloudFront http://aws.amazon.com/ cloudfront. 4 sc-bytes Nombre total d'octets que CloudFront a servis aux visionneuses en réponse à la demande, en-têtes inclus : par exemple, 1045619. 5 c-ip Adresse IP de la visionneuse qui a émis la demande : par exemple, 192.0.2.183. Si la visionneuse a utilisé un proxy HTTP ou un équilibreur de charge pour envoyer la demande, la valeur de c-ip est l'adresse IP du proxy ou de l'équilibreur de charge. Voir aussi X-Forwarded-For dans le champ 20. 6 cs-method Méthode d'accès HTTP : DELETE, GET, HEAD, OPTIONS, PATCH, POST ou PUT. 7 cs(Host) Nom de domaine de la distribution CloudFront : par exemple, d111111abcdef8.cloudfront.net. 8 cs-uri-stem Partie de l'URI qui identifie le chemin d'accès et l'objet : par exemple, /images/daily-ad.jpg. 9 sc-status L'une des valeurs suivantes : • Code d'état HTTP (par exemple, 200). Pour obtenir la liste des codes d'état HTTP, consultez RFC 2616, Hypertext Transfer Protocol—HTTP 1.1, section 10, Status Code Definitions. Pour API Version 2016-01-13 272 Amazon CloudFront Guide du développeur Format de fichier journal de distribution web Numéro de champ Nom de champ Description de plus amples informations, veuillez consulter Traitement et mise en cache des codes de statut HTTP 4xx et 5xx provenant de votre origine par CloudFront (p. 164). • 000, qui indique que la visionneuse a fermé la connexion (par exemple, a fermé l'onglet du navigateur) avant que CloudFront ne puisse répondre à une demande. 10 cs(Referer) Nom du domaine à l'origine de la requête. Les référents courants incluent des moteurs de recherche, d'autres sites Web contenant des liens directs vers vos objets ou encore votre propre site web. 11 cs(UserAgent) Valeur de l'en-tête User-Agent dans la demande. L'en-tête UserAgent identifie la source de la demande, comme le type d'appareil et le navigateur ayant envoyé la demande et, si la demande provenait d'un moteur de recherche, lequel. Pour de plus amples informations, veuillez consulter En-tête d’agent utilisateur (p. 160). 12 cs-uri-query Partie de la chaîne de requête de l'URI, le cas échéant. Quand un URI ne contient pas de chaîne de requête, la valeur de cs-uriquery est un trait d'union (-). Pour de plus amples informations, veuillez consulter Configurer CloudFront pour effectuer la mise en cache en fonction de paramètres de chaîne de requête (p. 106). 13 cs(Cookie) L'en-tête de cookie de la demande, y compris les paires nomvaleur et les attributs associés. Si vous activez la journalisation des cookies, CloudFront enregistre les cookies de toutes les demandes, quels que soient les cookies que vous avez choisi de transmettre à l'origine : aucun, tous ou les noms de cookie d'une liste blanche. Quand une demande n'inclut pas un en-tête de cookie, la valeur de cs(Cookie) est un trait d'union (-). Pour plus d'informations sur les cookies, consultez Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). API Version 2016-01-13 273 Amazon CloudFront Guide du développeur Format de fichier journal de distribution web Numéro de champ Nom de champ Description 14 x-edgeresult-type Comment CloudFront a classé la réponse après que le dernier octet a quitté l'emplacement périphérique. Dans certains cas, le type de résultat peut changer entre le moment où CloudFront est prêt à envoyer la réponse et celui où CloudFront a fini d'envoyer la réponse. Par exemple, dans un streaming HTTP, supposons que CloudFront trouve un segment dans le cache périphérique. La valeur de x-edge-response-result-type, le type de résultat immédiatement avant que CloudFront ne commence à répondre à la demande, est Hit. Cependant, si la visionneuse ferme la visionneuse avant que CloudFront n'ait livré la totalité du segment, le type de résultat final (la valeur de x-edge-result-type) se change en Error. Les valeurs possibles incluent : • Hit : CloudFront a servi l'objet à la visionneuse depuis le cache périphérique. Pour plus d'informations sur une situation dans laquelle CloudFront classe le type de résultat comme Hit même si la réponse de l'origine contient un en-tête Cache-Control: nocache, consultez Demandes simultanées pour le même objet (pics de trafic) (p. 160). • RefreshHit : CloudFront a trouvé l'objet dans le cache périphérique, mais il avait expiré ; par conséquent, CloudFront a contacté l'origine pour déterminer si le cache possède la dernière version de l'objet et, dans le cas contraire, pour l'obtenir. • Miss : comme la demande n'a pas pu être satisfaite par un objet du cache périphérique, CloudFront a transmis la demande au serveur d'origine et retourné le résultat à la visionneuse. • LimitExceeded : la demande a été refusée, parce qu'une limite CloudFront a été dépassée. • CapacityExceeded : CloudFront a retourné un code d'état HTTP 503 (service indisponible), parce que le serveur périphérique CloudFront n'a pas pu temporairement répondre aux demandes. • Error : généralement, cela signifie que la demande s'est traduite par une erreur client (sc-status est égal à 4xx) ou une erreur de service (sc-status est égal à 5xx). Si sc-status est égal à 403 et que vous avez configuré CloudFront pour limiter la distribution géographique de votre contenu, la demande peut provenir d'un emplacement restreint. Pour plus d'informations sur la restriction géographique, consultez Restriction de la distribution géographique de votre contenu (p. 82). Si la valeur de x-edge-result-type est Error et que la valeur de x-edge-response-result-type n'est pas Error, le client est déconnecté avant d'avoir fini le téléchargement. 15 x-edgerequest-id Chaîne chiffrée qui identifie de façon unique une demande. API Version 2016-01-13 274 Amazon CloudFront Guide du développeur Format de fichier journal de distribution web Numéro de champ Nom de champ Description 16 x-hostheader Valeur que la visionneuse a incluse dans l'en-tête Host de la demande. Il s'agit du nom de domaine de la demande : • Si vous utilisez le nom de domaine CloudFront dans vos URL d'objet, comme http://d111111abcdef8.cloudfront.net/ logo.png, le champ x-host-header contient ce nom de domaine. • Si vous utilisez les noms de domaine alternatifs dans vos URL d'objet, comme http://example.com/logo.png, le champ xhost-header contient le nom de domaine alternatif, tel que example.com. Pour utiliser les noms de domaine alternatifs, vous devez les ajouter à votre distribution. Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Si vous utilisez des noms de domaine alternatifs, consultez cs(Host) dans le champ 7 pour connaître le nom de domaine associé à votre distribution. 17 cs-protocol Protocole que la visionneuse a spécifié dans la demande, soit http ou https. 18 cs-bytes Nombre d'octets de données que la visionneuse a inclus dans la demande (octets client au serveur), en-têtes inclus. 19 time-taken Nombre de secondes (au millième de seconde, par exemple, 0.002) écoulées entre l'heure à laquelle un serveur périphérique CloudFront reçoit la demande d'une visionneuse et l'heure à laquelle CloudFront écrit le dernier octet de la réponse dans la file d'attente de la sortie du serveur Edge telle que mesurée sur le serveur. Du point de vue de la visionneuse, le temps total pour obtenir l'objet complet sera plus long que cette valeur en raison de la latence réseau et de la mise en tampon TCP. 20 x-forwardedfor Si la visionneuse a utilisé un proxy HTTP ou un équilibreur de charge pour envoyer la demande, la valeur de c-ip du champ 5 est l'adresse IP du proxy ou de l'équilibreur de charge. Dans ce cas, x-forwarded-for est l'adresse IP de la visionneuse à l'origine de la demande. Si la visionneuse n'a pas utilisé de proxy HTTP ou d'équilibreur de charge, la valeur de x-forwarded-for est un trait d'union (-). 21 ssl-protocol Quand cs-protocol du champ 17 a la valeur https, le protocole SSL que le client et CloudFront ont négocié pour transmettre la demande et la réponse. Quand cs-protocol a la valeur http, la valeur de ssl-protocol est un trait d'union (-). Les valeurs possibles sont notamment les suivantes : • SSLv3 • TLSv1 • TLSv1.1 • TLSv1.2 API Version 2016-01-13 275 Amazon CloudFront Guide du développeur Format de fichier journal de distribution web Numéro de champ Nom de champ Description 22 ssl-cipher Quand cs-protocol du champ 17 a la valeur https, le chiffrement SSL que le client et CloudFront ont négocié pour chiffrer la demande et la réponse. Quand cs-protocol a la valeur http, la valeur de ssl-cipher est un trait d'union (-). Les valeurs possibles sont notamment les suivantes : • ECDHE-RSA-AES128-GCM-SHA256 • ECDHE-RSA-AES128-SHA256 • ECDHE-RSA-AES128-SHA • ECDHE-RSA-AES256-GCM-SHA384 • ECDHE-RSA-AES256-SHA384 • ECDHE-RSA-AES256-SHA • AES128-GCM-SHA256 • AES256-GCM-SHA384 • AES128-SHA256 • AES256-SHA • AES128-SHA • DES-CBC3-SHA • RC4-MD5 API Version 2016-01-13 276 Amazon CloudFront Guide du développeur Format de fichier journal de distribution web Numéro de champ Nom de champ Description 23 x-edgeresponseresult-type Comment CloudFront a classé la réponse juste avant de la retourner à la visionneuse. Voir aussi x-edge-result-type dans le champ 14. Les valeurs possibles incluent : • Hit : CloudFront a servi l'objet à la visionneuse depuis le cache périphérique. • RefreshHit : CloudFront a trouvé l'objet dans le cache périphérique, mais il avait expiré ; par conséquent, CloudFront a contacté l'origine pour vérifier que le cache possède la dernière version de l'objet. • Miss : comme la demande n'a pas pu être satisfaite par un objet du cache périphérique, CloudFront a transmis la demande au serveur d'origine et retourné le résultat à la visionneuse. • LimitExceeded : la demande a été refusée, parce qu'une limite CloudFront a été dépassée. • CapacityExceeded : CloudFront a retourné une erreur 503, parce que l'emplacement périphérique n'avait pas assez de capacité au moment de la demande pour servir l'objet. • Error : généralement, cela signifie que la demande s'est traduite par une erreur client (sc-status est égal à 4xx) ou une erreur de service (sc-status est égal à 5xx). Si sc-status est égal à 403 et que vous avez configuré CloudFront pour limiter la distribution géographique de votre contenu, la demande peut provenir d'un emplacement restreint. Pour plus d'informations sur la restriction géographique, consultez Restriction de la distribution géographique de votre contenu (p. 82). Si la valeur de x-edge-result-type est Error et que la valeur de x-edge-response-result-type n'est pas Error, le client est déconnecté avant d'avoir fini le téléchargement. 24 cs-protocolversion Version HTTP que l'utilisateur a spécifiée dans la requête. Les valeurs possibles incluent HTTP/0.9, HTTP/1.0 et HTTP/1.1. Note Les points d'interrogation (?) des URL et des chaînes de requête ne sont pas inclus dans le journal. L'exemple suivant est celui d'un fichier journal pour une distribution web : #Version: 1.0 #Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uristem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edgeresult-type x-edge-request-id x-host-header cs-protocol cs-bytes time-taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type csprotocol-version API Version 2016-01-13 277 Amazon CloudFront Guide du développeur Format de fichier journal de distribution RTMP 2014-05-23 01:13:11 FRA2 182 192.0.2.10 GET d111111abcdef8.cloudfront.net / view/my/file.html 200 www.displaymyfiles.com Mozilla/4.0%20(compatible; %20MSIE%205.0b1;%20Mac_PowerPC) - zip=98101 RefreshHit MRVMF7KydIvxMWfJIglgwHQwZsbG2IhRJ07sn9AkKUFSHS9EXAMPLE== d111111abcdef8.cloudfront.net http - 0.001 - - - RefreshHit HTTP/1.1 2014-05-23 01:13:12 LAX1 2390282 192.0.2.202 GET d111111abcdef8.cloudfront.net /soundtrack/happy.mp3 304 www.unknownsingers.com Mozilla/4.0%20(compatible;%20MSIE%207.0; %20Windows%20NT%205.1) a=b&c=d zip=50158 Hit xGN7KWpVEmB9Dp7ctcVFQC4EnrcOcEKS3QyAez--06dV7TEXAMPLE== d111111abcdef8.cloudfront.net http - 0.002 - - Hit HTTP/1.1 Format de fichier journal de distribution RTMP Chaque enregistrement d'un journal d'accès RTMP représente un événement de lecture : par exemple, connexion, lecture, pause, arrêt, déconnexion, etc. En conséquence, CloudFront génère plusieurs enregistrements journal chaque fois qu'une vidéo est visualisée. Pour relier les enregistrements journal qui proviennent du même ID de flux, utilisez le champ x-sid. Note Certains champs ont des valeurs pour tous les événements et certains ont des valeurs uniquement pour les événements Play, Stop, Pause, Unpause et Seek. Généralement, quand le fichier journal contient un trait d'union (-) pour un champ, ce dernier n'est pas pertinent pour l'événement correspondant. Le tableau suivant décrit les champs présents dans chaque enregistrement du fichier journal de la distribution RTMP, indépendamment du type d'événement. Les champs apparaissent dans le journal dans l'ordre affiché. Numéro de champ Nom de champ Description 1 date Date à laquelle l'événement s'est produit au format aaaa-mm-jj ; par exemple, 2014-05-23. Les dates et heures sont exprimées en heure UTC (temps universel coordonné). 2 le temps Heure à laquelle le serveur a reçu la demande (en heure UTC) ; par exemple, 01:42:39. 3 x-edgelocation Emplacement périphérique où l'événement de lecture s'est produit. Chaque emplacement périphérique est identifié par un code à trois lettres et un numéro attribué arbitrairement (par exemple, DFW3). Le code sur trois lettres correspond généralement au code IATA (International Air Transport Association) d'un aéroport proche de l'emplacement périphérique. (Ces abréviations peuvent changer à l'avenir.) Pour obtenir la liste des emplacements périphériques, consultez la page Amazon CloudFront http://aws.amazon.com/ cloudfront. 4 c-ip Adresse IP du client : par exemple, 192.0.2.183. 5 x-event Type d'événement. Il s'agit d'un événement Connect, Disconnect, Play, Stop, Pause, Unpause ou Seek. 6 sc-bytes Nombre total actif d'octets envoyés du serveur au client, jusqu'à l'heure de l'événement. API Version 2016-01-13 278 Amazon CloudFront Guide du développeur Format de fichier journal de distribution RTMP Numéro de champ Nom de champ Description 7 x-cf-status Code indiquant l'état de l'événement. Actuellement, « OK » est la seule valeur pour ce champ. A l'avenir, les nouvelles fonctionnalités pourront nécessiter de nouveaux codes d'état. 8 x-cf-client-id ID de chaîne opaque qui peut être utilisé pour différencier les clients. Cette valeur est unique pour chaque connexion. 9 cs-uri-stem Partie racine de l'URI, incluant l'application et l'instance d'application. Cet élément est parfois appelé chaîne de connexion FMS. Par exemple, rtmp:// shqshne4jdp4b6.cloudfront.net/cfx/st. 10 cs-uri-query Partie chaîne de requête de l'URI incluse dans la chaîne de connexion. 11 c-referrer URI du référent. 12 x-page-url URL à partir de laquelle le service SWF est lié. 13 c-user-agent Valeur de l'en-tête User-Agent dans la demande. L'en-tête UserAgent identifie le type d'appareil qui a envoyé la demande. Pour de plus amples informations, veuillez consulter En-tête d’agent utilisateur (p. 160). Les champs suivants n'ont généralement des valeurs que pour Play, Stop, Pause, Unpause et Seek. Pour les autres événements, ils contiennent un trait d'union (-). Ces champs apparaissent dans le journal après ceux du tableau précédent et dans l'ordre affiché. Champ Description x-sname Nom du flux. x-sname-query Chaîne de requête du flux, le cas échéant. x-file-ext Type de flux : par exemple, FLV. x-sid ID du flux. ID entier unique de la connexion. Note Les points d'interrogation (?) des URL et des chaînes de requête ne sont pas inclus dans le journal. L'exemple suivant est celui d'un fichier journal pour une distribution RTMP : #Version: 1.0 #Fields: date time x-edge-location c-ip x-event sc-bytes x-cf-status x-cfclient-id cs-uri-stem cs-uri-query c-referrer x-page-url c-user-agent xsname x-sname-query x-file-ext x-sid 2010-03-12 23:51:20 SEA4 192.0.2.147 connect 2014 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/ cfx/st key=value http://player.longtailvideo.com/player.swf http:// API Version 2016-01-13 279 Amazon CloudFront Guide du développeur Frais des journaux d'accès www.longtailvideo.com/support/jw-player-setup-wizard?example=204 LNX %2010,0,32,18 2010-03-12 23:51:21 SEA4 192.0.2.222 play 3914 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/ cfx/st key=value http://player.longtailvideo.com/player.swf http:// www.longtailvideo.com/support/jw-player-setup-wizard?example=204 LNX %2010,0,32,18 myvideo p=2&q=4 flv 1 2010-03-12 23:53:44 SEA4 192.0.2.4 stop 323914 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/ cfx/st key=value http://player.longtailvideo.com/player.swf http:// www.longtailvideo.com/support/jw-player-setup-wizard?example=204 LNX %2010,0,32,18 dir/other/myvideo p=2&q=4 flv 1 2010-03-12 23:53:44 SEA4 192.0.2.103 play 8783724 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/ cfx/st key=value http://player.longtailvideo.com/player.swf http:// www.longtailvideo.com/support/jw-player-setup-wizard?example=204 LNX %2010,0,32,18 dir/favs/myothervideo p=42&q=14 mp4 2 2010-03-12 23:56:21 SEA4 192.0.2.199 stop 429822014 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/ cfx/st key=value http://player.longtailvideo.com/player.swf http:// www.longtailvideo.com/support/jw-player-setup-wizard?example=204 LNX %2010,0,32,18 dir/favs/myothervideo p=42&q=14 mp4 2 2010-03-12 23:59:44 SEA4 192.0.2.14 disconnect 429824092 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/ cfx/st key=value http://player.longtailvideo.com/player.swf http:// www.longtailvideo.com/support/jw-player-setup-wizard?example=204 LNX %2010,0,32,18 - Frais des journaux d'accès La journalisation des accès est une fonction facultative de CloudFront. L'activation de la journalisation des accès n'entraîne pas de frais supplémentaires. Cependant, vous augmentez les frais Amazon S3 usuels pour stocker les fichiers sur Amazon S3 et y accéder (vous pouvez les supprimer à tout moment). Pour plus d'informations sur les frais pour CloudFront, consultez Rapports CloudFront (p. 11). API Version 2016-01-13 280 Amazon CloudFront Guide du développeur Supervision de l'activité CloudFront avec CloudWatch Comme Amazon CloudFront s'intègre aux métriques Amazon CloudWatch, vous pouvez surveiller votre application ou site web. CloudFront fournit actuellement six métriques gratuites, et celles-ci ne portent pas préjudice aux limites CloudWatch. Lors de la consultation des métriques, vous pouvez spécifier un intervalle aussi réduit qu'une minute pour les durées des deux semaines qui précèdent. Vous pouvez afficher les métriques CloudFront suivantes dans la console CloudWatch : • Requests : nombre de requêtes de toutes les méthodes HTTP et de l'ensemble des requêtes HTTP et HTTPS • BytesDownloaded : nombre d'octets téléchargés par les visionneuses pour les demandes GET, HEAD et OPTIONS • BytesUploaded : nombre d'octets téléchargés sur votre origine avec CloudFront à l'aide de demandes POST et PUT • TotalErrorRate : pourcentage de toutes les demandes pour lesquelles le code d'état HTTP est 4xx ou 5xx • 4xxErrorRate : pourcentage de toutes les demandes pour lesquelles le code d'état HTTP est 4xx • 5xxErrorRate : pourcentage de toutes les demandes pour lesquelles le code d'état HTTP est 5xx Note CloudFront est un service global et les métriques ne sont disponibles que lorsque vous choisissez la région USA Est (Virginie du Nord) dans la console AWS. Si vous choisissez une autre région, aucune métrique ne s'affiche dans la console CloudWatch. Pour afficher les métriques d'une distribution dans la console CloudWatch 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Dans le volet de navigation, cliquez sur Monitoring and Alarms. 3. Dans le volet CloudFront Metrics and Alarms From CloudWatch, spécifiez les valeurs suivantes : API Version 2016-01-13 281 Amazon CloudFront Guide du développeur From and To Sélectionnez la plage de dates et d'heures pour laquelle vous voulez afficher les métriques CloudWatch. Granularité Spécifiez l'intervalle de points de données, par exemple, un par minute ou un par heure. Notez que la période que vous choisissez a une incidence sur la granularité disponible. Par exemple, si vous décidez d'afficher les données sur deux semaines, la granularité la plus fine est une heure. Si vous préférez afficher les données sur 24 heures, la granularité la plus fine est une minute. Distribution web Sélectionnez la distribution pour laquelle vous voulez afficher les métriques. 4. Cliquez sur Update Graph pour actualiser le graphique en fonction des paramètres que vous avez spécifiés. Pour recevoir une notification Amazon Simple Notification Service (Amazon SNS) basée sur une métrique CloudFront 1. Sur la page CloudFront Metrics and Alarms From CloudWatch, développez la liste des alarmes existantes pour vérifier que l'alarme que vous voulez créer n'existe pas déjà. 2. Cliquez sur Create Alarm. 3. Dans la boîte de dialogue Create Alarm, spécifiez les valeurs suivantes : Métriques Choisissez la métrique pour laquelle vous voulez créer l'alarme. Distribution Choisissez la distribution CloudFront pour laquelle vous voulez créer l'alarme. Name of alarm Entrez un nom pour l'alarme. Send notification to Choisissez la rubrique Amazon SNS existante à laquelle vous voulez envoyer une notification si l'état de la métrique déclenche une alarme. Whenever métrique operator value Spécifiez quand CloudWatch doit déclencher une alarme et envoyer une notification à la liste d'e-mails spécifiée. Par exemple, pour recevoir une notification quand le taux d'erreur 5xx dépasse 1 %, spécifiez ce qui suit : Whenever Average of 5xxErrorRate > 1 Notez ce qui suit à propos de la spécification des valeurs pour value : • Entrez uniquement des nombres entiers sans ponctuation. Par exemple, pour spécifier 1000, entrez 1000. • Pour 4xx, 5xx et les taux de nombre total d'erreurs, la valeur que vous spécifiez est un pourcentage. • Pour les requêtes, les octets téléchargés et les octets chargés, vous spécifiez la valeur en unités, par exemple, 1000000000 octets. For at least x consecutive periods of time period Spécifiez combien de fois à la suite sur la durée spécifiée la métrique doit satisfaire au critère avant que CloudWatch n'envoie une notification. Lorsque vous choisissez une valeur, vous devez trouver un équilibre approprié entre une valeur qui produit des notifications fréquentes pour les problèmes brefs et une valeur qui produit des notifications différées pour des problèmes réels. 4. Si vous avez créé une rubrique Amazon SNS, lorsque vous cliquez sur Create, Amazon SNS vous envoie un e-mail avec des informations sur la nouvelle rubrique. Suivez les instructions de l'e-mail. API Version 2016-01-13 282 Amazon CloudFront Guide du développeur Téléchargement des données au format CSV Téléchargement des données au format CSV Vous pouvez télécharger le rapport CloudWatch Metrics au format CSV. Cette section explique comment télécharger le rapport et décrire les valeurs du rapport. Pour télécharger le rapport CloudWatch Metrics au format CSV 1. Lors de l'affichage des métriques CloudWatch, cliquez sur CSV. 2. Dans la boîte de dialogue Opening nom de fichier, indiquez si vous souhaitez ouvrir ou enregistrer le fichier. Informations sur le rapport Les toutes premières lignes du rapport incluent les informations suivantes : Version Version de la création de rapports CloudFront. Rapport Nom du rapport. DistributionID ID de la distribution pour laquelle vous avez exécuté le rapport. StartDateUTC Début de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. EndDateUTC Fin de la plage de dates pour laquelle vous avez exécuté le rapport, en heure UTC. GeneratedTimeUTC Date et heure auxquelles vous avez exécuté le rapport, en heure UTC. Granularité Durée de chaque ligne du rapport, par exemple, ONE_MINUTE. Données du rapport CloudWatch Metrics Le rapport inclut les valeurs suivantes : DistributionID ID de la distribution pour laquelle vous avez exécuté le rapport. FriendlyName Nom de domaine alternatif (CNAME) de la distribution, le cas échéant. Si une distribution ne comporte pas de noms de domaines alternatifs, la liste inclut un nom de domaine d'origine pour la distribution. TimeBucket Heure du jour auquel les données s'appliquent, en heure UTC. Requêtes Nombre total de demandes pour tous les codes d'état HTTP (par exemple, 200 ou 404) et toutes les méthodes (par exemple, GET, HEAD ou POST) pendant la période. BytesDownloaded Nombre d'octets que les visionneuses ont téléchargé pour la distribution spécifiée pendant la période. BytesUploaded Nombre d'octets que les visionneuses ont chargé sur votre origine pour la distribution spécifiée pendant la période. API Version 2016-01-13 283 Amazon CloudFront Guide du développeur Données du rapport CloudWatch Metrics TotalErrorRatePct Requêtes pour lesquelles le code d'état HTTP était une erreur 4xx ou 5xx pour la distribution spécifiée pendant la période. 4xxErrorRatePct Requêtes pour lesquelles le code d'état HTTP était une erreur 4xx pour la distribution spécifiée pendant la période. 5xxErrorRatePct Requêtes pour lesquelles le code d'état HTTP était une erreur 5xx pour la distribution spécifiée pendant la période. API Version 2016-01-13 284 Amazon CloudFront Guide du développeur Informations CloudFront dans les fichiers journaux CloudTrail Utiliser AWS CloudTrail pour capturer des demandes envoyées à l'API CloudFront CloudFront est intégré à CloudTrail, un service AWS qui capture des informations sur chaque demande envoyée à l'API CloudFront par votre compte AWS, y compris vos utilisateurs IAM. CloudTrail enregistre périodiquement des fichiers journaux de ces demandes dans un compartiment Amazon S3 que vous spécifiez. CloudTrail capture des information sur toutes les demandes, qu'elles aient été effectuées à l'aide de la console CloudFront, de l'API CloudFront, de kits de développement logiciel (SDK) AWS, de la CLI CloudFront ou d'un autre service, par exemple, AWS CloudFormation. Vous pouvez utiliser les informations des fichiers journaux CloudTrail pour déterminer quelles demandes ont été envoyées à CloudFront, l'adresse IP source à partir de laquelle chaque demande a été effectuée, qui a fait la demande, quand, etc. Pour en savoir plus sur CloudTrail, y compris la façon de le configurer et de l'activer, consultez le manuel AWS CloudTrail User Guide. Note CloudFront est un service global. Pour afficher les demandes CloudFront dans les journaux CloudTrail, vous devez mettre à jour une piste existante afin d'inclure les service globaux. Pour plus d'informations, consultez Mise à jour d'une piste et À propos des événements des services globaux dans le manuel AWS CloudTrail User Guide. Rubriques • Informations CloudFront dans les fichiers journaux CloudTrail (p. 285) • Présentation des entrées des fichiers journaux CloudFront (p. 286) Informations CloudFront dans les fichiers journaux CloudTrail Lorsque vous activez CloudTrail, CloudTrail capture chaque demande que vous envoyez à chacun des services AWS pris en charge par CloudTrail. (Pour obtenir la liste des services pris en charge, API Version 2016-01-13 285 Amazon CloudFront Guide du développeur Présentation des entrées des fichiers journaux CloudFront consultez Services pris en charge dans le manuel AWS CloudTrail User Guide.) Les fichiers journaux ne sont pas organisés ou triés par service ; chaque fichier journal contient des enregistrements d'un ou plusieurs services. CloudTrail détermine quand créer un nouveau fichier journal. Note CloudTrail prend en charge toutes les actions d'API CloudFront. Chaque fichier journal contient des informations sur la personne qui a effectué la demande. Les informations d'identité d'utilisateur figurant dans le fichier journal vous aident à déterminer si la demande a été effectuée à l'aide d'informations d'identification racine ou d'utilisateur IAM, à l'aide d'informations d'identification de sécurité temporaires pour un rôle ou un utilisateur fédéré, ou par un autre service AWS. Pour plus d'informations, consultez Élément userIdentity dans le manuel AWS CloudTrail User Guide. Vous pouvez stocker les fichiers journaux aussi longtemps que vous le souhaitez. Vous pouvez également définir des règles de cycle de vie Amazon S3 pour archiver ou supprimer des fichiers journaux automatiquement. Par défaut, vos fichiers journaux sont chiffrés à l'aide du chiffrement côté serveur (SSE) d'Amazon S3. Vous pouvez décider d'utiliser CloudTrail pour publier des notifications Amazon SNS lorsque de nouveaux fichiers journaux sont fournis, si vous voulez effectuer une action rapide lors de la livraison des fichiers journaux. Pour plus d'informations, consultez Configuration des notifications Amazon SNS dans le manuel AWS CloudTrail User Guide. Vous pouvez également regrouper des fichiers journaux provenant de plusieurs régions AWS et de plusieurs comptes AWS dans un compartiment Amazon SNS unique. Pour plus d'informations, consultez Regroupement des fichiers journaux CloudTrail dans un compartiment Amazon S3 unique dans le manuel AWS CloudTrail User Guide. Présentation des entrées des fichiers journaux CloudFront Le fichier journal CloudTrail au format JSON peut contenir une ou plusieurs entrées de journal. Une entrée de journal représente une demande individuelle à partir d'une source quelconque et comprend des informations sur l'action demandée, y compris sur tous les paramètres, sur la date et l'heure de l'action, etc. Les entrées de journal ne suivent aucun ordre précis ; il ne s'agit pas d'une série ordonnée retraçant les appels aux API publics. L'élément eventName identifie l'action qui s'est produite et la version d'API utilisée pour effectuer cette action. Par exemple, la valeur eventName indique qu'une distribution Web a été mise à jour et que la version d'API 2014-01-31 a été utilisée pour exécuter cette action : UpdateDistribution2014_01_31 L'exemple suivant montre une entrée de journal CloudTrail qui illustre cinq actions : • Mettre à jour la configuration d'une distribution Web. La valeur de eventName est UpdateDistribution. • Répertorier les distributions Web associées au compte actuel. La valeur de eventName est ListDistributions. • Obtenir la configuration d'une distribution Web spécifique. La valeur de eventName est GetDistribution. API Version 2016-01-13 286 Amazon CloudFront Guide du développeur Présentation des entrées des fichiers journaux CloudFront • Créer une demande de lot d'invalidation. La valeur de eventName est CreateInvalidation. • Répertorier les identités d'accès à l'origine associées au compte actuel. La valeur de eventName est ListCloudFrontOriginAccessIdentities. { "Records": [{ "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:00:32Z", "eventName": "UpdateDistribution2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": { "id": "EDFDVBD6EXAMPLE", "ifMatch": "E9LHASXEXAMPLE", "distributionConfig": { "restrictions": { "geoRestriction": { "quantity": 0, "restrictionType": "none" } }, "customErrorResponses": { "quantity": 0 }, "defaultRootObject": "index.html", "aliases": { "quantity": 1, "items": ["example.com"] }, "logging": { "bucket": "", "enabled": false, "prefix": "", "includeCookies": false }, "viewerCertificate": { "iAMCertificateId": "A1B2C3D4E5F6G7EXAMPLE", "sSLSupportMethod": "sni-only" }, "callerReference": "2014-05-06 64832", "defaultCacheBehavior": { "targetOriginId": "Images", "allowedMethods": { "items": ["GET", "HEAD"], "quantity": 2 }, "forwardedValues": { "cookies": { API Version 2016-01-13 287 Amazon CloudFront Guide du développeur Présentation des entrées des fichiers journaux CloudFront "forward": "none" }, "queryString": false }, "minTTL": 300, "trustedSigners": { "enabled": false, "quantity": 0 }, "viewerProtocolPolicy": "redirect-to-https", "smoothStreaming": false }, "origins": { "items": [{ "customOriginConfig": { "hTTPSPort": 443, "originProtocolPolicy": "http-only", "hTTPPort": 80 }, "domainName": "myawsbucket.s3-website-useast-1.amazonaws.com", "id": "Web page origin" }, { "customOriginConfig": { "hTTPSPort": 443, "originProtocolPolicy": "http-only", "hTTPPort": 80 }, "domainName": "myotherawsbucket.s3-website-uswest-2.amazonaws.com", "id": "Images" }], "quantity": 2 }, "enabled": true, "cacheBehaviors": { "allowedMethods": { "items": ["GET", "HEAD"], "quantity": 2 }, "trustedSigners": { "enabled": false, "quantity": 0 }, "targetOriginId": "Web page origin", "smoothStreaming": false, "viewerProtocolPolicy": "redirect-to-https", "minTTL": 300, "forwardedValues": { "cookies": { "forward": "none" }, "queryString": false }, "pathPattern": "*.html" }], "quantity": 1 API Version 2016-01-13 288 Amazon CloudFront Guide du développeur Présentation des entrées des fichiers journaux CloudFront }, "priceClass": "PriceClass_All", "comment": "Added an origin and a cache behavior" } }, "responseElements": { "eTag": "E2QWRUHEXAMPLE", "distribution": { "domainName": "d111111abcdef8.cloudfront.net", "status": "InProgress", "distributionConfig": { distributionConfig response omitted }, "id": "EDFDVBD6EXAMPLE", "lastModifiedTime": "May 6, 2014 6:00:32 PM", "activeTrustedSigners": { "quantity": 0, "enabled": false }, "inProgressInvalidationBatches": 0 } }, "requestID": "4e6b66f9-d548-11e3-a8a9-73e33example", "eventID": "5ab02562-0fc5-43d0-b7b6-90293example" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:01:35Z", "eventName": "ListDistributions2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": null, "responseElements": null, "requestID": "52de9f97-d548-11e3-8fb9-4dad0example", "eventID": "eb91f423-6dd3-4bb0-a148-3cdfbexample" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:01:59Z", "eventName": "GetDistribution2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": { API Version 2016-01-13 289 Amazon CloudFront Guide du développeur Présentation des entrées des fichiers journaux CloudFront "id": "EDFDVBD6EXAMPLE" }, "responseElements": null, "requestID": "497b3622-d548-11e3-8fb9-4dad0example", "eventID": "c32289c7-005a-46f7-9801-cba41example" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:02:27Z", "eventName": "CreateInvalidation2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": { "invalidationBatch": { "callerReference": "2014-05-06 64947", "paths": { "quantity": 3, "items": ["/images/new.jpg", "/images/logo.jpg", "/images/banner.jpg"] } }, "distributionId": "EDFDVBD6EXAMPLE" }, "responseElements": { "invalidation": { "createTime": "May 6, 2014 6:02:27 PM", "invalidationBatch": { "callerReference": "2014-05-06 64947", "paths": { "quantity": 3, "items": ["/images/banner.jpg", "/images/logo.jpg", "/images/new.jpg"] } }, "status": "InProgress", "id": "ISRZ85EXAMPLE" }, "location": "https://cloudfront.amazonaws.com/2014-01-31/ distribution/EDFDVBD6EXAMPLE/invalidation/ISRZ85EXAMPLE" }, "requestID": "4e200613-d548-11e3-a8a9-73e33example", "eventID": "191ebb93-66b7-4517-a741-92b0eexample" }, { "eventVersion": "1.01", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/smithj", API Version 2016-01-13 290 Amazon CloudFront Guide du développeur Présentation des entrées des fichiers journaux CloudFront "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "smithj" }, "eventTime": "2014-05-06T18:03:08Z", "eventName": "ListCloudFrontOriginAccessIdentities2014_01_31", "sourceIPAddress": "192.0.2.17", "userAgent": "aws-sdk-ruby/1.39.0 ruby/1.9.3 x86_64-linux", "requestParameters": null, "responseElements": null, "requestID": "42ca4299-d548-11e3-8fb9-4dad0example", "eventID": "7aeb434f-eb55-4e2a-82d8-417d5example" }] } API Version 2016-01-13 291 Amazon CloudFront Guide du développeur Balisage de distributions Amazon CloudFront Les balises sont des mots ou des expressions qui vous permettent d'identifier et d'organiser vos ressources AWS. Vous pouvez ajouter plusieurs balises à une ressource, chacune de ces balises étant composée d'une clé et d'une valeur que vous définissez. Par exemple, vous pouvez choisir la clé « domaine » et la valeur « exemple.com ». Vous pouvez rechercher et filtrer vos ressources en fonction des balises que vous ajoutez. Lorsque vous appliquez des balises à des distributions CloudFront ou à d'autres ressources AWS (par exemple, des instances Amazon EC2 ou des compartiments Amazon S3) et activez ces balises, AWS génère un rapport de répartition des coûts sous forme de valeurs séparées par des virgules (fichier CSV), détaillant l'utilisation et les coûts pour vos balises actives. Vous pouvez appliquer des balises associées à des catégories métier (telles que les centres de coûts, les noms d'applications ou les propriétaires) pour organiser les coûts relatifs à divers services. Pour en savoir plus sur l'utilisation des balises pour la répartition des coûts, consultez la section Utilisation des balises de répartition des coûts du manuel AWS Billing and Cost Management Guide de l'utilisateur. Pour connaître le nombre maximal de balises que vous pouvez actuellement ajouter à une distribution, consultez la page Restrictions (p. 362). Si vous avez besoin d'une limite plus élevée, soumettez une demande à AWS Support Center. Remarques : • Vous pouvez appliquer des balises aux distributions Web et RTMP, mais pas aux invalidations ni aux identités Origin Access Identity. • L'éditeur de balises Tag Editor et les groupes de ressources ne sont actuellement pas compatibles avec CloudFront. Il est également possible d'appliquer des balises aux ressources via les outils suivants : API CloudFront, AWS CLI, kits SDK et Outils AWS pour Windows PowerShell. Pour plus d'informations, consultez la documentation suivante : • API CloudFront – Référez-vous à la section Actions sur les balises du manuel Amazon CloudFront API Reference. • AWS CLI – Référez-vous à la section CloudFront du manuel AWS Command Line Interface Reference. • Kits SDK – Référez-vous à la documentation applicable relative aux SDK sur la page Documentation AWS. API Version 2016-01-13 292 Amazon CloudFront Guide du développeur Restrictions liées aux balises • Outils pour Windows PowerShell – Référez-vous à la section Amazon CloudFront du manuel Outils AWS pour Windows PowerShell Reference. Rubriques • Restrictions liées aux balises (p. 293) • Ajout, modification et suppression de balises pour les distributions (p. 293) Restrictions liées aux balises Les restrictions de base suivantes s'appliquent aux balises : • Nombre maximal de balises par ressource – 10 • Longueur de clé maximale – 128 caractères Unicode • Valeur de clé maximale – 256 caractères Unicode • Caractères acceptés pour les clés et valeurs – a-z, A-Z, 0-9, espace et les caractères suivants : _ . : / = + - and @ • Les clés et valeurs de balise sont sensibles à la casse • N'utilisez pas aws: comme préfixe pour les clés ; seul AWS peut utiliser cette valeur Ajout, modification et suppression de balises pour les distributions La procédure suivante explique comment ajouter, modifier et supprimer des balises pour vos distributions dans la console CloudFront. Pour ajouter, modifier ou supprimer des balises dans une distribution 1. Connectez-vous à la AWS Management Console et ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. 3. 4. Choisissez l'ID de la distribution que vous souhaitez mettre à jour. Sélectionnez l'onglet Tags (Balises). Sélectionnez Add or edit tags (Ajouter ou modifier des balises). 5. Sur la page d'ajout ou de modification de balises, vous pouvez effectuer les opérations suivantes : Ajouter une balise Entrez une clé et, éventuellement, une valeur pour la balise. Modifier une balise Modifiez la clé, la valeur ou les deux. Vous pouvez également supprimer la valeur d'une balise, mais la clé est obligatoire. 6. Supprimer une balise Sélectionnez la croix (X) sur la droite du champ de valeur. Choisissez Save. API Version 2016-01-13 293 Amazon CloudFront Guide du développeur Je ne peux pas afficher les fichiers de ma distribution web. Dépannage Rubriques • Je ne peux pas afficher les fichiers de ma distribution web. (p. 294) • Je ne peux pas afficher les fichiers de ma distribution RTMP. (p. 296) • Message d'erreur : Certificate: <certificate-id> is being used by CloudFront. (p. 296) Je ne peux pas afficher les fichiers de ma distribution web. Si vous ne pouvez pas afficher un fichier de votre distribution web CloudFront, les rubriques suivantes décrivent quelques solutions courantes. Etes-vous inscrit à CloudFront et à Amazon S3 ? Pour utiliser Amazon CloudFront avec une origine Amazon S3, vous devez vous inscrire séparément à CloudFront et Amazon S3. Pour plus d'informations sur l'inscription à CloudFront et Amazon S3, consultez Mise en route avec CloudFront (p. 35). Votre compartiment Amazon S3 et vos autorisations d'objet sont-ils définis correctement ? Si vous utilisez CloudFront avec une origine Amazon S3, les versions originales de votre contenu sont stockées dans un compartiment Amazon S3. Le moyen le plus facile d'utiliser CloudFront avec Amazon S3 consiste à rendre tous vos objets publiquement lisibles dans Amazon S3. A cette fin, vous devez activer explicitement les privilèges de lecture publique pour chaque objet que vous chargez sur Amazon S3. Si votre contenu n'est pas lisible publiquement, vous devez créer une identité d'accès à l'origine CloudFront, afin que CloudFront puisse y accéder. Pour plus d'informations sur les identités d'accès à l'origine CloudFront, consultez Utilisation d'une identité d'accès à l'origine pour limiter l'accès à votre contenu Amazon S3 (p. 172). API Version 2016-01-13 294 Amazon CloudFront Guide du développeur Votre nom de domaine alternatif (CNAME) est-il configuré correctement ? Les propriétés d'objet et les propriétés de compartiment sont indépendantes. Vous devez accorder explicitement les privilèges à chaque objet de Amazon S3. Les objets n'héritent pas des propriétés des compartiments et les propriétés d'objet doivent être définies indépendamment du compartiment. Votre nom de domaine alternatif (CNAME) est-il configuré correctement ? Si vous avez déjà un enregistrement CNAME pour votre nom de domaine, mettez-le à jour ou remplacez-le par un nouvel enregistrement qui pointe vers votre nom de domaine de distribution. Veillez également à ce que votre enregistrement CNAME pointe vers le nom de domaine de votre distribution, et non pas vers votre compartiment Amazon S3. Vous pouvez confirmer que l'archive CNAME dans votre système DNS dirige vers votre nom de domaine de distribution. A cette fin, utilisez un outil DNS tel que dig. (Pour plus d'informations sur dig, consultez http://www.kloth.net/services/ dig.php.) L'exemple suivant illustre une demande dig sur un nom de domaine appelé images.example.com et la partie appropriée de la réponse. Sous ANSWER SECTION, regardez la ligne qui contient CNAME. L'enregistrement CNAME de votre nom de domaine est configuré correctement si la valeur à droite de CNAME est le nom de domaine de votre distribution CloudFront. S'il s'agit du compartiment de votre serveur d'origine Amazon S3 ou de quelque autre nom de domaine, l'enregistrement CNAME est configuré correctement. [prompt]> dig images.example.com ; <<> DiG 9.3.3rc2 <<> images.example.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917 ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;images.example.com. IN A ;; ANSWER SECTION: images.example.com. 10800 IN CNAME d111111abcdef8.cloudfront.net. ... ... Pour plus d'informations sur les CNAME, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Référencez-vous la bonne URL pour votre distribution CloudFront ? Assurez-vous que l'URL que vous référencez utilise le nom de domaine de votre distribution CloudFront (ou votre CNAME), pas votre compartiment Amazon S3 ou votre origine personnalisée. Avez-vous besoin d'aide pour résoudre un problème lié à une origine personnalisée ? Si vous avez besoin qu'AWS vous aide à dépanner une origine personnalisée, nous aurons probablement besoin d'examiner les entrées de l'en-tête X-Amz-Cf-Id de vos demandes. Si vous API Version 2016-01-13 295 Amazon CloudFront Guide du développeur Je ne peux pas afficher les fichiers de ma distribution RTMP. n'enregistrez pas déjà ces entrées, il se peut que vous pensiez à le faire à l'avenir. Pour de plus amples informations, veuillez consulter Conditions requises et recommandations pour l'utilisation d'Amazon EC2 et autres origines personnalisées (p. 80). Je ne peux pas afficher les fichiers de ma distribution RTMP. Si vous ne pouvez pas afficher les fichiers d'une distribution RTMP, votre URL et votre client de lecture sont-ils correctement configurés ? Les distributions RTMP nécessitent que vous utilisiez un protocole RTMP plutôt que HTTP et vous devez apporter quelques changements de configuration mineurs à votre client de lecture. Pour plus d'informations sur la création d'une distribution RTMP, consultez Liste des tâches du streaming multimédia avec RTMP (p. 89). Message d'erreur : Certificate: <certificate-id> is being used by CloudFront. Problème : vous essayez de supprimer un certificat SSL du magasin de certificats IAM et vous recevez le message « Certificate: <certificate-id> is being used by CloudFront. ». Solution : chaque distribution web CloudFront doit être associée au certificat CloudFront par défaut ou à un certificat SSL personnalisé. Avant que vous ne puissiez supprimer un certificat SSL, vous devez soumettre les certificats SSL à une rotation (remplacez le certificat SSL personnalisé actuel par un autre certificat SSL personnalisé) ou repassez de l'utilisation d'un certificat SSL personnalisé à celle d'un certificat CloudFront par défaut. Exécutez la procédure de la section applicable : • Rotation des certificats SSL/TLS (p. 249) • Repasser d'un certificat SSL/TLS personnalisé au certificat CloudFront par défaut (p. 250) API Version 2016-01-13 296 Amazon CloudFront Guide du développeur Test de charge CloudFront Les méthodes traditionnelles de test de charge ne fonctionnent pas correctement avec CloudFront parce que CloudFront utilise DNS pour répartir la charge entre des emplacements périphériques dispersés géographiquement et au sein de chaque emplacement périphérique. Quand un client demande un contenu de CloudFront, il reçoit une réponse DNS incluant un ensemble d'adresses IP. Si vous testez en envoyant les demandes à une seule des adresses IP que DNS retourne, vous ne testez qu'un petit sous-ensemble des ressources d'un emplacement périphérique CloudFront, ce qui ne correspond pas précisément aux modèles de trafic réels. Selon le volume de données demandé, un tel test peut surcharger et dégrader les performances de ce sous-ensemble réduit de serveurs CloudFront. CloudFront est conçu pour faire évoluer les navigateurs qui ont différentes adresses IP de clients et différents programmes de résolution DNS à travers plusieurs régions géographiques. Pour exécuter un test de charge évaluant avec précision les performances CloudFront, il est recommandé d'exécuter ce qui suit : • Envoyez les demandes des clients depuis plusieurs régions géographiques. • Configurez votre test de telle sorte que chaque client émette une demande DNS indépendante ; chaque client reçoit alors de DNS un ensemble différent d'adresses IP. • Pour chaque client effectuant des demandes, distribuez-les à travers l'ensemble des adresses IP retournées par DNS, ce qui garantit une répartition de la charge entre plusieurs serveurs d'un emplacement périphérique CloudFront. API Version 2016-01-13 297 Amazon CloudFront Guide du développeur Streaming en direct Didacticiels pour la diffusion en streaming CloudFront Les didacticiels suivants expliquent comment utiliser CloudFront pour le streaming en direct, la géolocalisation et le streaming RTMP. Streaming en direct • Live HTTP Streaming avec CloudFront et Adobe Media Server 5.0 (p. 298) • Live Smooth Streaming avec Amazon CloudFront et IIS Media Services 4.1 (p. 315) • Streaming en direct HTTP avec Wowza Streaming Engine 4.2 (p. 324) • Streaming HTTP en direct avec CloudFront et une origine HTTP (p. 334) Streaming à la demande • Streaming multimédia à la demande avec Unified Streaming (p. 336) Streaming RTMP • Streaming de vidéos à la demande avec CloudFront et Adobe Flash Player (p. 349) • Streaming de vidéos à la demande avec CloudFront et Flowplayer pour Adobe Flash Player (p. 353) • Streaming de vidéos à la demande avec CloudFront et JW Player (p. 358) Live HTTP Streaming avec CloudFront et Adobe Media Server 5.0 Rubriques API Version 2016-01-13 298 Amazon CloudFront Guide du développeur Présentation • Présentation (p. 299) • Etapes de configuration du streaming en direct (p. 300) • Création d'un compte Amazon Web Services (p. 300) • Création d'une paire de clés Amazon EC2 (p. 301) • Inscription à Adobe Media Server (p. 301) • Création d'une pile AWS CloudFormation pour le streaming en direct (p. 302) • Vérification de l'exécution d'Adobe Media Server (p. 304) • Configuration d'Adobe Flash Media Live Encoder pour publier un streaming en direct (p. 304) • Intégration de Strobe Media Playback pour un flux HTTP en direct Amazon CloudFront dans une application Web (p. 306) • Suppression d'une pile AWS CloudFormation et d'un volume Amazon EBS pour le streaming en direct (p. 308) • Questions fréquentes (FAQ) (p. 308) • Documentation supplémentaire (p. 314) Avec le streaming en direct Amazon Web Services, vous pouvez utiliser Adobe Media Server version 5.0 pour diffuser en direct des représentations, des webinaires et autres événements. Ce didacticiel explique le processus de configuration du streaming en direct avec Adobe Media Server 5.0. Présentation Adobe Media Server 5.0 prend en charge deux formats de streaming HTTP : • HLS (HTTP Live Streaming) pour les périphériques sous iOS • HDS (HTTP Dynamic Streaming) pour les applications Flash (y compris Strobe Media Playback) Note Une version précédente de ce didacticiel explique comment configurer le streaming HDS avec Flash Media Playback, mais Adobe ne prend plus en charge ce lecteur. Nous avons mis à jour le didacticiel pour l'utilisation de Strobe Media Playback, un lecteur multimédia open source offrant des fonctionnalités semblables à celles de Flash Media Playback. Voici comment Adobe Media Server et CloudFront fonctionnent pour diffuser un événement en temps réel. 1. Utilisez AWS CloudFormation pour mettre en service une instance Amazon EC2 exécutant Adobe Media Server 5.0 et créer une distribution CloudFront, comme indiqué dans ce didacticiel. 2. Capturez votre événement avec une caméra vidéo numérique, par exemple la caméra vidéo d'un ordinateur portable. 3. Utilisez un encodeur sur le site de l'événement, par exemple Adobe Flash Media Live Encoder, pour comprimer le flux vidéo brut et l'envoyer à Adobe Media Server. (Flash Media Live Encoder est disponible en téléchargement gratuit pour les systèmes d'exploitation Windows et Mac.) 4. Adobe Media Server découpe le flux vidéo en plusieurs fichiers plus petits. Ce serveur est l'origine de votre distribution CloudFront. 5. Lorsque vos utilisateurs arrivent sur l'URL CloudFront que vous leur avez fourni pour regarder l'événement, CloudFront achemine leurs requêtes HTTP à l'emplacement périphérique le plus proche (par latence). 6. L'emplacement périphérique demande le flux vidéo auprès d'Adobe Media Server. 7. Adobe Media Server renvoie le flux vidéo en petits fichiers à l'emplacement périphérique CloudFront. API Version 2016-01-13 299 Amazon CloudFront Guide du développeur Etapes de configuration du streaming en direct 8. L'emplacement périphérique CloudFront diffuse la vidéo à la visionneuse à l'origine de la requête, et met en cache les petits fichiers pour accélérer la réponse aux requêtes suivantes du streaming en direct. Ce didacticiel résume comment intégrer CloudFront à Adobe Media Server exécuté sur une instance Amazon EC2. Pour plus de détails sur Adobe Media Server et sur les services AWS employés pour le streaming en direct, vous disposez des ressources suivantes. • Pour plus d'informations sur les options Adobe Media Server non traitées dans ce didacticiel, consultez les rubriques sous Documentation supplémentaire (p. 314). • Pour plus de détails sur les fonctions Adobe Media Server disponibles, consultez Adobe Media Server 5 on Amazon Web Services. • Pour vous renseigner sur les nouvelles fonctions d'Adobe Media Server 5.0, consultez What's New in Adobe Media Server 5.0.1 sur le site Web d'Adobe. • Pour plus d'informations sur la gestion et la sécurisation de votre instance Amazon EC2, consultez la documentation Amazon EC2. • Pour plus d’informations sur AWS CloudFormation, consultez la documentation AWS CloudFormation. • Pour plus d'informations, consultez Questions fréquentes (FAQ) (p. 308). Etapes de configuration du streaming en direct Pour configurer le streaming en direct avec Amazon Web Services (AWS), consultez les exigences système d'Adobe Flash Player. Exécutez ensuite les procédures des sections suivantes : 1. Création d'un compte Amazon Web Services (p. 300) 2. Création d'une paire de clés Amazon EC2 (p. 301) 3. Inscription à Adobe Media Server (p. 301) 4. Création d'une pile AWS CloudFormation pour le streaming en direct (p. 302) 5. Vérification de l'exécution d'Adobe Media Server (p. 304) 6. Configuration d'Adobe Flash Media Live Encoder pour publier un streaming en direct (p. 304) 7. Intégration de Strobe Media Playback pour un flux HTTP en direct Amazon CloudFront dans une application Web (p. 306) 8. Suppression d'une pile AWS CloudFormation et d'un volume Amazon EBS pour le streaming en direct (p. 308) Création d'un compte Amazon Web Services Si vous avez déjà un compte AWS, passez directement à Création d'une paire de clés Amazon EC2 (p. 301). Si ce n'est pas le cas, observez la procédure suivante pour en créer un. Note Lorsque vous créez un compte, AWS l'inscrit automatiquement à tous les services. Seuls les services que vous utilisez vous sont facturés. Pour créer un compte AWS 1. Accédez à http://aws.amazon.com, puis cliquez sur Créer votre compte. 2. Suivez les instructions à l'écran. API Version 2016-01-13 300 Amazon CloudFront Guide du développeur Création d'une paire de clés Amazon EC2 Dans le cadre de la procédure d'inscription, vous recevrez un appel téléphonique et vous saisirez un code PIN en utilisant le clavier numérique du téléphone. Suivant: Création d'une paire de clés Amazon EC2 (p. 301) Création d'une paire de clés Amazon EC2 Si vous avez déjà une paire de clés Amazon EC2 pour la région Amazon EC2 dans laquelle vous voulez configurer le streaming en direct, passez à Inscription à Adobe Media Server (p. 301). Dans le cas contraire, procédez comme indiqué ci-dessous. Une paire de clés constitue une information d'identification de sécurité semblable à un mot de passe. Vous devrez spécifier une paire de clés lors de la création d'une pile AWS CloudFormation pour le streaming en direct plus tard dans ce processus. Une fois le streaming en direct configuré, la paire de clés permet une connexion en toute sécurité à votre instance Amazon EC2. Pour créer une paire de clés Amazon EC2 1. Connectez-vous à AWS Management Console et ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans la liste Region, cliquez sur la région dans laquelle vous voulez créer la paire de clés. Vous devez créer la paire de clés dans la même région que celle utilisée plus tard pour la création de votre pile AWS CloudFormation pour le streaming en direct. Il est recommandé de créer la paire de clés et la pile du streaming en direct dans la région la plus proche des utilisateurs qui visionneront la vidéo. 3. Dans le volet de navigation, cliquez sur Key Pairs. 4. Dans le volet Key Pairs, cliquez sur Create Key Pair. 5. Dans la boîte de dialogue Create Key Pair, entrez un nom pour la paire de clés et notez-le. Vous entrerez cette valeur lorsque vous créerez une pile AWS CloudFormation pour le streaming en direct plus loin dans le processus de configuration de streaming en direct. 6. Cliquez sur Create. 7. Dans la boîte de dialogue Opening <key_pair_name>.pem, enregistrez le fichier .pem dans un emplacement sûr de votre ordinateur. Important Il s'agit de votre seule occasion de télécharger et d'enregistrer votre clé privée. 8. Cliquez sur Close pour fermer la boîte de dialogue Create Key Pair. Suivant: Inscription à Adobe Media Server (p. 301) Inscription à Adobe Media Server Procédez comme indiqué ci-dessous afin de vous inscrire à Adobe Media Server pour Amazon Web Services par le biais d'AWS Marketplace. Important Vous ne pouvez souscrire un compte AWS à Adobe Media Server qu'une seule fois. Si votre compte AWS dispose déjà d'une inscription Adobe Media Server, utilisez celle-ci pour configurer le streaming en direct. API Version 2016-01-13 301 Amazon CloudFront Guide du développeur Création d'une pile AWS CloudFormation pour le streaming en direct Adobe Media Server a un coût mensuel de 5,00 USD, ce qui inclut un nombre illimité d'instances Adobe Media Server. En plus du coût mensuel correspondant à l'inscription, vous payez pour l'usage horaire et pour le transfert de données. Vous pouvez afficher une liste détaillée des tarifs dans le cadre de la procédure suivante. Note Dans une version précédente de ce didacticiel, vous avez souscrit à Adobe Media Server au moyen d'Amazon DevPay au lieu d'AWS Marketplace. Si vous exécutez actuellement Adobe Media Server et si vous avez souscrit à Amazon DevPay, allez à la page Adobe Media Server d'Amazon Web Services et annulez votre inscription Amazon DevPay à Adobe Media Server. Dans le cas contraire, vous continuerez à payer 5,00 USD par mois pour l'ancienne inscription via Amazon DevPay, et vous paierez en plus 5,00 USD par mois pour la nouvelle inscription via AWS Marketplace. Pour commander Adobe Media Server 5 pour Amazon Web Services 1. Allez à la page Adobe Media Server 5 Extended du site Web d'AWS Marketplace. 2. Passez en revue les informations sur le produit, puis cliquez sur Continue. 3. Sur la page Launch on EC2: Adobe Media Server 5 Extended, cliquez sur l'onglet Manual Launch with EC2 Console, APIs or CLI. 4. Dans la section Pricing Details, sélectionnez la région dans laquelle créer une instance Amazon EC2 pour le streaming en direct. Passez en revue les informations de tarification correspondantes. Important N'utilisez pas les boutons de cette page pour lancer Adobe Media Server. Dans la procédure suivante, créez une pile AWS CloudFormation qui lance une instance Amazon EC2 et installe Adobe Media Server. 5. Cliquez sur Accept Terms pour souscrire un abonnement mensuel. Suivant: Création d'une pile AWS CloudFormation pour le streaming en direct (p. 302) Création d'une pile AWS CloudFormation pour le streaming en direct La procédure suivante utilise un modèle AWS CloudFormation pour créer une pile qui lance les ressources AWS requises par le streaming en direct, y compris une instance Amazon EC2 et une distribution CloudFront. Important La facturation horaire d'une instance Amazon EC2 démarre quand vous créez la pile AWS CloudFormation qui déploie l'instance Amazon EC2. Les frais continuent de s'ajouter tant que vous n'avez pas supprimé la pile AWS CloudFormation, que vous utilisiez ou non l'instance Amazon EC2 pour du streaming en direct. Pour plus de détails, allez à la page Adobe Media Server 5 Extended du site Web d'AWS Marketplace. Une fois votre événement en direct terminé, supprimez la pile créée pour le streaming en direct. Les ressources AWS créées pour votre événement de streaming en direct sont alors supprimées et la facturation AWS des ressources est interrompue. Pour de plus amples informations, veuillez consulter Suppression d'une pile AWS CloudFormation et d'un volume Amazon EBS pour le streaming en direct (p. 308). Pour plus d'informations sur AWS CloudFormation, consultez la documentation AWS CloudFormation. API Version 2016-01-13 302 Amazon CloudFront Guide du développeur Création d'une pile AWS CloudFormation pour le streaming en direct Pour créer une pile AWS CloudFormation pour le streaming en direct 1. Pour lancer l'assistant Create Stack, cliquez sur l'une des régions Amazon EC2 suivantes : • Créer une pile dans USA Est (Virginie du Nord) • Créer une pile dans USA Ouest (Oregon) • Créer une pile dans USA Ouest (Californie du Nord) • Créer une pile dans UE (Irlande) • Créer une pile dans Asie-Pacifique (Singapour) • Créer une pile dans Asie-Pacifique (Tokyo) • Créer une pile dans Asie-Pacifique (Sydney) • Créer une pile dans Amérique du Sud (São Paulo) L'assistant démarre et l'URL applicable s'affiche automatiquement dans le champ Provide an S3 URL to template. Note Si vous souhaitez que des utilisateurs puissent voir votre streaming en direct avec un lecteur sous Flash hébergé sur votre propre domaine, consultez Comment mettre à jour crossdomain.xml pour un flux basé sur Flash et hébergé sur mon propre domaine ? (p. 310). 2. Si vous n'êtes pas déjà connecté à AWS Management Console, faites-le quand vous y êtes invité. 3. (Facultatif) Modifiez le Stack Name. Le nom de la pile ne doit pas contenir d'espaces et doit être unique au sein de votre compte AWS. Ne modifiez pas l'option Template ou l'adresse de Provide an S3 URL to template. 4. Cliquez sur Next Step. 5. Sur la page Specify Parameters, pour AMSAdminPassword, entrez un mot de passe (minimum 8 caractères) pour AMS Administration Console. 6. Pour AMSAdminUserName, entrez un nom utilisateur. Vous utiliserez cette valeur et le mot de passe saisi à l'étape précédente pour vous connecter à AMS Administration Console après avoir créé votre instance Amazon EC2 Adobe Media Server. 7. Pour InstanceType, entrez un type d'instance, ce qui détermine la tarification de votre instance Adobe Media Server. Pour plus d'informations sur les types d'instances EC2, consultez Types d'instance disponibles dans le manuel Guide de l'utilisateur Amazon EC2 pour les instances Linux. Pour plus de détails sur la tarification, allez à la page Adobe Media Server 5 Extended du site Web d'AWS Marketplace. 8. Pour KeyPair, entrez le nom d'une paire de clés Amazon EC2 dans la même région que celle que vous avez choisie à l'étape 1. La paire de clés doit être associée au compte avec lequel vous êtes actuellement connecté. Si vous avez créé une paire de clés lors de l'exécution de la procédure décrite dans Création d'une paire de clés Amazon EC2 (p. 301), entrez le nom de cette paire de clés. 9. Pour StreamName, entrez un nom bref (sans espaces) pour votre flux en direct. 10. Cliquez sur Next Step. 11. (Facultatif) À la page Add Tags, ajoutez une ou plusieurs balises. 12. (Facultatif) Pour configurer une notification SNS, spécifier la durée que vous êtes prêt à attendre pour que la pile soit créée, choisir d'annuler les modifications en cas d'échec de création de la pile et entrer une stratégie de pile, cliquez sur Advanced et réglez les paramètres comme souhaité. 13. Cliquez sur Next Step. 14. Vérifiez les paramètres de la pile. Lorsque vous êtes satisfait de vos paramètres, cliquez sur Create, afin que AWS CloudFormation crée une pile. API Version 2016-01-13 303 Amazon CloudFront Guide du développeur Vérification de l'exécution d'Adobe Media Server La création de votre pile peut prendre plusieurs minutes. Pour suivre la progression de la création de la pile, sélectionnez cette dernière et cliquez sur l'onglet Events dans le cadre du bas. Si AWS CloudFormation ne peut pas créer la pile, l'onglet Events affiche les messages d'erreur. Lorsque votre pile est prête, son statut passe sur CREATE_COMPLETE dans le cadre du haut. Lorsque votre pile est créée, cliquez sur l'onglet Outputs pour afficher les sorties de création de pile. Vous utiliserez ces valeurs lors de la configuration d'Adobe Flash Media Live Encoder par la suite. Suivant: Vérification de l'exécution d'Adobe Media Server (p. 304) Vérification de l'exécution d'Adobe Media Server Après qu'AWS CloudFormation a créé la pile, procédez comme indiqué ci-dessous pour vérifier si Adobe Media Server est en cours d'exécution sur l'instance Amazon Amazon EC2 que vous avez mise en service avec AWS CloudFormation. Pour vérifier si Adobe Media Server est en cours d'exécution 1. 2. 3. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. Dans le volet supérieur, sélectionnez la pile créée dans Création d'une pile AWS CloudFormation pour le streaming en direct (p. 302). Dans le volet inférieur, cliquez sur l'onglet Outputs. 4. Cliquez sur la valeur de la clé AMSServer, qui est l'URL vers l'instance Amazon EC2 que vous avez mise en service lorsque vous avez effectué la procédure sous Création d'une pile AWS CloudFormation pour le streaming en direct (p. 302). 5. La page Adobe Media Server apparaît et lance le streaming du contenu, ce qui indique le fonctionnement d'Adobe Media Server. Si le streaming ne commence pas, retournez à Présentation (p. 299) et vérifiez si les valeurs spécifiées dans les quatre premiers points sont correctes. Si toutes ces valeurs sont correctes sans que le streaming n'ait démarré pour autant, consultez Comment dépanner mon instance Amazon EC2 si le streaming ne démarre pas ? (p. 313). Suivant: Configuration d'Adobe Flash Media Live Encoder pour publier un streaming en direct (p. 304) Configuration d'Adobe Flash Media Live Encoder pour publier un streaming en direct Adobe Media Server sur Amazon Web Services inclut une application appelée livepkgr qui empaquette des flux publiés pour la diffusion via HTTP Dynamic Streaming (HDS) et HTTP Live Streaming (HLS). La procédure suivante explique comment configurer Adobe Flash Media Live Encoder (FMLE) afin de publier votre streaming en direct sur l'application livepkgr sur Adobe Media Server 5.0. Note La version Windows de Flash Media Live Encoder ne prend pas en charge le format audio AAC. Pour ajouter la prise en charge d'AAC, Adobe recommande d'acheter l'encodeur AAC MainConcept. API Version 2016-01-13 304 Amazon CloudFront Guide du développeur Configuration d'Adobe Flash Media Live Encoder pour publier un streaming en direct Pour spécifier des paramètres de streaming en direct dans Flash Media Live Encoder 1. Connectez-vous avec l'ordinateur que vous utiliserez pour diffuser le flux en direct. 2. Ouvrez un navigateur Web et allez à la page Adobe Flash Media Live Encoder. 3. Téléchargez et installez Flash Media Live Encoder. Note Flash Media Live Encoder est gratuit mais pour le télécharger vous devez posséder un compte Adobe (également gratuit). 4. Ouvrez le fichier Flash Media Live Encoder config.xml dans un éditeur de texte. L'emplacement d'installation par défaut dépend de votre système d'exploitation : • Windows 32 bits : C:\Program Files\Adobe\Flash Media Live Encoder 3.2. • Windows 64 bits : C:\Program Files (x86)\Adobe\Flash Media Live Encoder 3.2\Conf. • Macintosh : Applications:Adobe:Flash Media Live Encoder 3.2. 5. Dans config.xml, définissez la valeur de l'élément <enable> suivant sur true : <flashmedialiveencoder_config> ... <mbrconfig> ... <streamsynchronization> ... <!-- "true" to enable this feature, "false" to disable. --> <enable>true</enable> 6. Sauvegardez le fichier. 7. Exécutez Flash Media Live Encoder. 8. Sur l'onglet Encoding Options, pour Preset, sélectionnez High Bandwidth (800 Kbps) — H.264. 9. Sur l'onglet Encoding Options, sous la case à cocher Audio, pour Format, sélectionnez AAC. 10. Dans la section Video de l'onglet Encoding Options, cliquez sur l'icône de clé à droite de la liste Format pour ouvrir la boîte de dialogue Advanced Encoder Settings. 11. Dans la boîte de dialogue Advanced Encoder Settings, pour Keyframe Frequency, sélectionnez 4 Seconds. Vous pouvez également utiliser un multiple de la valeur de l'élément <FragmentDuration> dans le fichier applications/livepkgr/events/_definst_/liveevent/Event.xml. La valeur par défaut de <FragmentDuration> est 4000 millisecondes (4 secondes). 12. Cliquez sur OK pour enregistrer la configuration et retourner à la page principale. La sélection de la liste Preset devient Custom. 13. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 14. Cochez la case de la pile créée pour le streaming en direct. 15. Dans le volet inférieur, cliquez sur l'onglet Outputs. 16. Copiez la valeur de la clé AMSURL, soit par exemple rtmp://ec2-00-11-22-33.uswest-1.compute.amazonaws.com/livepkgr. API Version 2016-01-13 305 Amazon CloudFront Guide du développeur Intégration de Strobe Media Playback pour un flux HTTP en direct Amazon CloudFront dans une application Web 17. Dans Flash Media Live Encoder, dans la section Stream to Flash Media Server, pour le paramètre FMS URL, collez la valeur de la clé AMSURL que vous avez copiée à partir de la console AWS CloudFormation. 18. Dans la console AWS CloudFormation, copiez la valeur de la clé Stream, soit par exemple livestream?adbe-live-event=liveevent. 19. Dans Flash Media Live Encoder, dans le paramètre Stream, collez la valeur de la clé Stream que vous avez copiée à partir de la console AWS CloudFormation. Note Si vous prévoyez devoir arrêter et relancer le flux en direct, entrez la valeur suivante dans le champ Stream à la place : livestream?adbe-live-event=liveevent&adbe-record-mode=record Si vous publiez un flux en direct en mode d'enregistrement (adbe-recordmode=record), puis l'arrêtez avant de le redémarrer, Adobe Media Server supprimera le flux précédent et en lancera un nouveau au lieu d'effectuer un ajout au flux précédent au redémarrage. Néanmoins, si vous n'utilisez pas le mode d'enregistrement et si vous arrêtez le flux en direct, vous devez reconfigurer le streaming en direct avant de pouvoir relancer le flux. 20. Supprimez la coche de Save to File. 21. Cliquez sur Connect pour vous connecter à votre instance Adobe Media Server. 22. Cliquez sur Start pour lancer l'encodage et la publication de votre flux en direct sur l'application livepkgr de votre instance Adobe Media Server. Suivant: Intégration de Strobe Media Playback pour un flux HTTP en direct Amazon CloudFront dans une application Web (p. 306) Intégration de Strobe Media Playback pour un flux HTTP en direct Amazon CloudFront dans une application Web Suivez l'une de ces procédures pour obtenir le code intégré que vous inclurez dans votre page Web pour le flux en direct : • Pour intégrer Strobe Media Playback pour votre flux HTTP (p. 306) • Pour lire votre flux HLS en direct sur un appareil Apple via CloudFront (p. 307) Pour intégrer Strobe Media Playback pour votre flux HTTP 1. Téléchargez la dernière version d'Open Source Media Framework (OSMF), qui contient Strobe Media Playback. OSMF est disponible sur http://sourceforge.net/projects/osmf.adobe/files/. 2. Décompressez le fichier que vous avez téléchargé à l'étape 1. 3. À l'emplacement où vous avez extrait le fichier téléchargé, recherchez StrobeMediaPlayback.swf, et copiez-le à un emplacement, tel un compartiment Amazon S3, qui est accessible à vos utilisateurs de streaming en direct. 4. Vérifiez si vos utilisateurs disposent des autorisations nécessaires pour accéder à StrobeMediaPlayback.swf. API Version 2016-01-13 306 Amazon CloudFront Guide du développeur Intégration de Strobe Media Playback pour un flux HTTP en direct Amazon CloudFront dans une application Web 5. Modifiez les autorisations du fichier crossdomain.xml pour permettre aux utilisateurs de voir le flux en direct au moyen de Strobe Media Playback. Pour de plus amples informations, veuillez consulter Comment mettre à jour crossdomain.xml pour un flux basé sur Flash et hébergé sur mon propre domaine ? (p. 310) 6. Là où vous avez extrait le fichier téléchargé, recherchez setup.html ou ouvrez-le dans un navigateur Web. 7. Sur la page Change Your Flash Vars, dans la section Embed Parameters, dans le champ Source, entrez l'URL toute entière pour StrobeMediaPlayback.swf. Il s'agit du fichier copié à l'étape 3. Exemples : https://myawsbucket.s3.amazonaws.com/LiveStreaming/StrobeMediaPlayback.swf 8. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 9. Sélectionnez la pile pour le streaming en direct. 10. Dans le volet inférieur, cliquez sur l'onglet Outputs. 11. Copiez la valeur de la clé LiveHDSManifest, comme indiqué dans l'exemple suivant : http://d123.cloudfront.net/hds-live/livepkgr/_definst_/liveevent/ livestream.f4m 12. De retour à la page Change Your Flash Vars, dans la section Flash Vars, dans le champ src, collez la valeur que vous avez copiée à l'étape 11. 13. En bas de la page Change Your Flash Vars, cliquez sur Preview and Update. 14. Lisez la vidéo pour vous assurer que vous êtes satisfait des paramètres actuels que vous pouvez éventuellement modifier. 15. Si vous procédez à des modifications, cliquez à nouveau sur Preview and Update. 16. Pour intégrer Strobe Media Playback à une page Web, copiez le contenu de la boîte de texte Preview Code, et collez-le dans le code HTML de votre site Web. Pour lire votre flux HLS en direct sur un appareil Apple via CloudFront 1. Modifiez les autorisations du fichier crossdomain.xml pour permettre aux utilisateurs de voir le flux en direct sur un appareil Apple. Pour de plus amples informations, veuillez consulter Comment mettre à jour crossdomain.xml pour un flux basé sur Flash et hébergé sur mon propre domaine ? (p. 310) 2. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 3. Sélectionnez la pile pour le streaming en direct. 4. Dans le volet inférieur, cliquez sur l'onglet Outputs. 5. Copiez la valeur de la clé LiveHLSManifest, comme indiqué dans l'exemple suivant : http://d123.cloudfront.net/hls-live/livepkgr/_definst_/liveevent/ livestream.m3u8. 6. Rendez-vous sur cette URL avec un appareil sous iOS pour vérifier le bon fonctionnement du streaming HLS. Pour plus de détails sur l'emplacement où utiliser l'URL pour assure la diffusion vers plusieurs périphériques iOS, QuickTime et Safari, consultez HTTP Live Streaming Overview dans l'iOS Developer Library. Pour plus de détails sur la publication et la lecture de flux en direct sur HTTP, consultez URLs for publishing and playing live streams over HTTP dans le manuel Adobe Media Server 5.0.1 Developer's Guide. API Version 2016-01-13 307 Amazon CloudFront Guide du développeur Suppression d'une pile AWS CloudFormation et d'un volume Amazon EBS pour le streaming en direct Suivant: Suppression d'une pile AWS CloudFormation et d'un volume Amazon EBS pour le streaming en direct (p. 308) Suppression d'une pile AWS CloudFormation et d'un volume Amazon EBS pour le streaming en direct Une fois votre événement en direct terminé, supprimez la pile créée pour le streaming en direct. La plupart des ressources AWS créées pour votre événement de streaming en direct sont supprimées et la facturation AWS de la plupart des ressources est interrompue. Vous pouvez aussi supprimer le volume Amazon EBS créé par AWS CloudFormation, mais il n'est pas supprimé en même temps que la pile. Ceci arrête la facturation du reste des frais AWS pour les ressources. Pour supprimer une pile AWS CloudFormation et un volume Amazon EBS pour le streaming en direct 1. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. 2. Recherchez la pile AWS CloudFormation que vous avez créée pour le streaming en direct et notez l'heure de création. Vous pourrez ainsi identifier le volume Amazon EBS que vous supprimerez plus tard au cours de cette procédure. 3. Sélectionnez la pile, puis cliquez sur Delete Stack. 4. Cliquez sur Yes, Delete pour confirmer. 5. Pour suivre la progression de la suppression de la pile, sélectionnez cette dernière et cliquez sur l'onglet Events dans le cadre du bas. 6. Accédez à la console Amazon EC2. 7. Dans le volet de navigation, cliquez sur Volumes. 8. Sélectionnez le volume créé par la pile AWS CloudFormation, cliquez sur Actions, puis sur Delete Volume. Si vous avez plusieurs volumes Amazon EBS, utilisez la date et l'heure notées à l'étape 2 pour localiser le volume créé par la pile AWS CloudFormation. 9. Si vous ne prévoyez pas d'utiliser bientôt à nouveau le streaming en direct, vous pouvez annuler votre abonnement à Adobe Media Server sur AWS Marketplace. Pour annuler votre abonnement, rendez-vous sur la page des abonnements d'AWS Marketplace, recherchez la ligne correspondant à Adobe Media Server, cliquez sur Cancel Subscription et suivez les invites à l'écran. Questions fréquentes (FAQ) • Comment utiliser Secure Shell (SSH) pour me connecter à mon instance Amazon EC2 qui exécute Adobe Media Server 5.0 ? (p. 309) • Comment mettre à jour crossdomain.xml pour un flux basé sur Flash et hébergé sur mon propre domaine ? (p. 310) • Combien coûte le streaming HTTP en direct avec CloudFront et Adobe Media Server 5.0 ? (p. 310) • Comment créer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? (p. 310) • Comment me connecter à la console d'administration d'Adobe Media Server ? (p. 310) • Puis-je diffuser simultanément mon événement en direct sur des appareils Apple et des appareils compatibles Flash Player ? (p. 312) • Adobe Media Server 5.0 prend-elle en charge HTML5 ? (p. 312) • Adobe Media Server produit-il des journaux ? (p. 312) • Comment activer l'authentification sur Adobe Media Server ? (p. 312) API Version 2016-01-13 308 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) • Quels sont les paramètres de contrôle de cache par défaut sur les fichiers liés à HDS et HLS ? (p. 312) • Quelle est la différence entre HLS et HDS ? (p. 313) • Comment dépanner mon instance Amazon EC2 si le streaming ne démarre pas ? (p. 313) • Où trouver la documentation pour le streaming en direct avec Adobe Flash Media Server 4.5 ? (p. 313) Comment utiliser Secure Shell (SSH) pour me connecter à mon instance Amazon EC2 qui exécute Adobe Media Server 5.0 ? Note Par défaut, le port SSH de l'instance Amazon EC2 (port 22) est désactivé pour des raisons de sécurité. La procédure suivantes explique comment activer le port SSH et utiliser SSH pour vous connecter à votre instance Amazon EC2. Pour activer l'accès au port 22 de votre instance Amazon EC2 exécutant Adobe Media Server 5.0 1. Recherchez le nom du groupe de sécurité Amazon EC2 associé à votre instance Amazon EC2 : a. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. b. Dans la liste Region, sélectionnez la région dans laquelle vous avez créé votre instance Amazon EC2. c. Cliquez sur la ligne de votre pile AWS CloudFormation. d. Dans le volet inférieur, cliquez sur l'onglet Resources. e. Dans la colonne de gauche de la table Stack Resources, recherchez la ligne pour laquelle la valeur est AMSOriginServerSecurityGroup. f. Pour cette ligne, notez la valeur de la colonne Physical ID. 2. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 3. Dans le volet de navigation, cliquez sur Security Groups. 4. Sur la page Security Groups, sélectionnez la ligne dans laquelle la colonne Name correspond à l'ID physique obtenu à l'étape 1f. 5. Dans le volet inférieur, cliquez sur l'onglet Inbound. 6. Pour Create a new rule, sélectionnez SSH. 7. Cliquez sur Add Rule. 8. Cliquez sur Apply Rule Changes. Pour utiliser SSH et vous connecter à votre instance Amazon EC2 qui exécute Adobe Media Server 5.0 1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans le volet de navigation, cliquez sur Instances. 3. Cliquez avec le bouton droit sur l'instance appropriée, puis cliquez sur Connect pour afficher les instructions relatives à l'utilisation de SSH afin de vous connecter à votre instance Amazon EC2. API Version 2016-01-13 309 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) Comment mettre à jour crossdomain.xml pour un flux basé sur Flash et hébergé sur mon propre domaine ? Vous pouvez modifier les autorisations sous crossdomain.xml avant ou après avoir créé la pile AWS CloudFormation : • Si vous n'avez pas créé de pile AWS CloudFormation, téléchargez le modèle AWS CloudFormation pour le streaming en direct au moyen d'Amazon CloudFront et d'Adobe Media Server 5.0 sur https://s3.amazonaws.com/cloudfront-live/live-http-streaming-ams-5-0-1-using-cloudfront.txt. Dans ce modèle, modifiez la section UserData qui contient les paramètres crossdomain.xml, puis enregistrez le modèle à jour sur votre ordinateur local. Créez ensuite votre pile AWS CloudFormation avec ce modèle modifié. • Si vous avez déjà créé votre pile AWS CloudFormation, connectez-vous à Adobe Media Server exécuté sur votre instance Amazon EC2, et changez les autorisations dans le fichier de stratégies inter-domaines, /mnt/webroot/crossdomain.xml. Pour plus d'informations sur la modification du fichier crossdomain.xml, consultez Adobe Cross Domain Policy File Specification. Combien coûte le streaming HTTP en direct avec CloudFront et Adobe Media Server 5.0 ? En plus du coût mensuel de 5,00 USD correspondant à l'abonnement à Adobe Media Server sur Amazon EC2, vous payez uniquement pour les ressources AWS consommées : • Pour les informations de tarification relatives à Adobe Media Server exécuté sur Amazon EC2, consultez Adobe Media Server 5 on Amazon Web Services / Pricing. • Pour les informations de tarification relatives à CloudFront, consultez Tarification Amazon CloudFront. Aucun frais supplémentaire ne s'applique pour l'utilisation de AWS CloudFormation. Comment créer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? Votre instance Amazon EC2 exécutant Adobe Media Server 5.0 est fournie avec un nom DNS externe et un nom DNS interne. Amazon EC2 ne permet pas de modifier ces paramètres DNS. Si vous voulez mapper un nom de domaine existant à votre instance Amazon EC2 exécutant Adobe Media Server, utilisez un fournisseur de services DNS tel qu'Amazon Route 53. Lors de l'utilisation de votre propre nom de domaine, nous vous recommandons un mappage vers le nom DNS externe de l'instance avec un CNAME, et non pas avec un enregistrement A qui dirige vers l'adresse IP de l'instance. Pour mapper votre nom de domaine et votre distribution CloudFront, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Comment me connecter à la console d'administration d'Adobe Media Server ? Pour se connecter à la console d'administration d'Adobe Media Server 1. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. API Version 2016-01-13 310 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) 2. Sélectionnez la pile pour le streaming en direct. 3. 4. 5. Dans le volet inférieur, cliquez sur l'onglet Outputs. Copiez la valeur de la clé AMSAdminConsoleServerAddress. Cliquez sur la valeur de la clé AMSServerAdminConsole, soit par exemple http:// ec2-00-11-22-33.us-west-1.compute.amazonaws.com/ams_adminConsole.htm. 6. À la page de connexion de la console d'administration d'Adobe Media Server, sous Server Address, collez la clé AMSAdminConsoleServerAddress que vous avez copiée à l'étape 4. 7. Dans les champs Username et Password, entrez les valeurs que vous avez spécifiées sous Création d'une pile AWS CloudFormation pour le streaming en direct (p. 302). 8. Cliquez sur Login. Pour des informations sur l'utilisation d'Adobe Media Server 5.0 Administration Console, reportez-vous à la documentation sur Adobe Media Server. Note Adobe recommande de bloquer tout accès externe au port 1111 afin de limiter l'accès à la console d'administration aux clients qui se trouvent dans votre pare-feu. Il est aussi possible de limiter l'accès au serveur au moyen de restrictions basées sur les domaines. Pour plus d'informations, consultez Limit access to Adobe Media Administration Server dans la documentation d'Adobe. Pour désactiver ou restreindre l'accès au port 1111 sur votre Adobe Media Server 1. Recherchez le nom du groupe de sécurité Amazon EC2 associé à votre instance Amazon EC2 : a. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. b. Pour Region, cliquez sur le nom de la région dans laquelle vous avez créé votre instance Amazon EC2. c. d. Sélectionnez la ligne de votre pile AWS CloudFormation. Dans le volet inférieur, cliquez sur l'onglet Resources. e. Dans la table Stack Resources, recherchez la ligne AMSOriginServerSecurityGroup, puis écrivez la valeur de la colonne Physical ID. 2. 3. 4. Affichez la console Amazon EC2. Dans le volet de navigation, cliquez sur Security Groups. Dans le volet Security Groups, sélectionnez le groupe de sécurité créé par AWS CloudFormation pour votre instance Amazon EC2. Le nom est la valeur que vous avez notée à l'étape 1e. 5. 6. Dans le volet inférieur, cliquez sur l'onglet Inbound. Pour désactiver complètement l'accès à la console d'administration d'Adobe Media Server : a. b. 7. Dans la colonne TCP Port (Service), recherchez 1111. Dans la colonne Action pour cette ligne, cliquez sur Delete. c. Cliquez sur Apply Rule Changes. Pour restreindre l'accès aux adresses IP sélectionnées : a. b. c. Dans la colonne TCP Port (Service), recherchez 1111, puis cliquez sur Delete. Pour Create a new rule, acceptez la valeur par défaut, Custom TCP rule. Pour Port range, entrez 1111. d. Pour Source, entrez une plage ou une adresse IP, ou indiquez le nom d'un autre groupe de sécurité. Pour plus d'informations, cliquez sur Help. Cliquez sur Add Rule. e. API Version 2016-01-13 311 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) f. Pour créer des règles supplémentaires, répétez les étapes b à e. g. Cliquez sur Apply Rule Changes. Puis-je diffuser simultanément mon événement en direct sur des appareils Apple et des appareils compatibles Flash Player ? Oui, Adobe Media Server 5.0 permet la diffusion de flux en direct simultanément sur des appareils sous iOS et basés sur Flash. Vous pouvez diffuser sur navigateur Safari avec un lecteur HTML5 ou une application Objective C (« native »). Vous pouvez utiliser Adobe AIR for iOS pour développer une expérience vidéo exceptionnelle sur iOS. Adobe Media Server 5.0 prend-elle en charge HTML5 ? Oui. Adobe Media Server peut diffuser du contenu HTML5 à des appareils sous Apple iOS au moyen du format de streaming HLS. Pour les autres navigateurs prenant en charge HTML5, vous pouvez utiliser Adobe Media Server pour une diffusion progressive. Adobe Media Server produit-il des journaux ? Oui. Des journaux ASCII conformes W3C, un moniteur d'utilisation en temps réel et une API complète pour les événements de streaming et de serveurs vous offrent tous les outils dont vous pouvez avoir besoin pour suivre l'utilisation du contenu par votre public et pour créer des rapports. Pour plus d'informations sur la surveillance et la gestion des fichiers de journaux dans Adobe Media Server 5.0, consultez Monitoring and Managing Log Files dans la documentation Adobe. Comment activer l'authentification sur Adobe Media Server ? Vous pouvez restreindre l'accès au port RTMP 1935 (à la fois pour TCP et UDP) dans le groupe de sécurité créé par AWS CloudFormation pour votre instance Adobe Media Server Amazon EC2. Il suffit de créer de nouvelles règles TCP et UDP pour le port 1935, puis de supprimer les règles TCP et UDP existantes pour ce même port qui permettent l'accès à toutes les adresses IP. Pour une présentation rapide de l'ajout d'une règle à un groupe de sécurité, consultez Comment me connecter à la console d'administration d'Adobe Media Server ? (p. 310). Pour plus d'informations sur les groupes de sécurité Amazon EC2, consultez Amazon EC2 Security Groups dans le manuel Guide de l'utilisateur Amazon EC2 pour les instances Linux. Quels sont les paramètres de contrôle de cache par défaut sur les fichiers liés à HDS et HLS ? Les en-têtes de contrôle de cache par défaut des fichiers liés à HDS et HLS sont définis avec les valeurs suivantes : Type de fichier Paramètre Cache-Control (secondes) .bootstrap 2 Fragment HDS 60 .f4m 2 .m3u8 2 API Version 2016-01-13 312 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) Type de fichier Paramètre Cache-Control (secondes) .ts 60 Les serveurs de mise en cache périphérique CloudFront acceptent ces en-têtes de contrôle de mise en cache. Vous pouvez modifiez les paramètres par défaut en changeant les valeurs des paramètres HttpStreamingF4MMaxAge, HttpStreamingBootstrapMaxAge et HttpStreamingFragMaxAge sur le serveur. Pour plus d'informations, consultez HTTP streaming configuration file reference dans la documentation Adobe. Quelle est la différence entre HLS et HDS ? HLS est un format de conteneur de fichiers optimisé pour les appareils Apple. Ce conteneur prend en charge les fichiers audio et la vidéo encodés H.264/AAC ; il est basé sur le protocole MPEG-2 transport stream (TS). Toutes les vidéos diffusées pour iOS (y compris AIR for IOS) doivent utiliser ce format. HDS est un format de conteneur de fichiers optimisé pour les applications utilisant Flash Player. Ce conteneur prend aussi en charge les fichiers audio et la vidéo encodés H.264/AAC ; il est basé sur le protocole MPEG-4 TS. HDS n'est pas pris en charge par AIR for iOS. Comment dépanner mon instance Amazon EC2 si le streaming ne démarre pas ? Si vous avez effectué la procédure Pour vérifier si Adobe Media Server est en cours d'exécution (p. 304) et que le streaming n'a toujours pas commencé, procédez comme indiqué cidessous pour vérifier si l'instance Amazon EC2 fonctionne correctement. Pour dépanner votre instance Amazon EC2 exécutant Adobe Media Server 5.0 1. Sélectionnez la pile dans le volet supérieur de la console AWS CloudFormation. 2. Dans le volet inférieur, cliquez sur l'onglet Resources. 3. Pour la ligne AMSOriginServer, notez par écrit la valeur de la colonne Physical ID. 4. Accédez à la console Amazon EC2. 5. Dans la liste Region, sélectionnez la région dans laquelle vous avez créé la pile AWS CloudFormation. 6. Dans le volet de navigation, cliquez sur Instances. 7. Dans la colonne Instance, recherchez la valeur que vous avez notée à l'étape c. 8. Sélectionnez la ligne correspondante. 9. Dans le panneau du bas, consultez les informations de l'onglet Status Checks et prenez les mesures recommandées. 10. Retournez à la procédure Pour vérifier si Adobe Media Server est en cours d'exécution (p. 304), puis répétez les étapes 2 à 5. Où trouver la documentation pour le streaming en direct avec Adobe Flash Media Server 4.5 ? Pour la documentation sur le streaming en direct avec Adobe Flash Media Server 4.5, consultez « Live Streaming Using CloudFront and Adobe Flash Media Server 4.5 » dans le chapitre « CloudFront Tutorials » du manuel Amazon CloudFront Manuel du développeur pour CloudFront API version 2012-07-01. API Version 2016-01-13 313 Amazon CloudFront Guide du développeur Documentation supplémentaire Documentation supplémentaire Documentation Adobe • Using Adobe Media Server on Amazon Web Services • Adobe Cross Domain Policy File Specification • Flash Media Live Encoder • Flash Media Live Encoder FAQ • Video Encoding and Transcoding Recommendations for HTTP Dynamic Streaming on the Adobe Media Server Platform • Adobe Media Server Technical Overview Documentation Amazon Web Services • Documentation Amazon Elastic Compute Cloud • Documentation AWS CloudFormation API Version 2016-01-13 314 Amazon CloudFront Guide du développeur Live Smooth Streaming avec Amazon CloudFront et IIS Media Services 4.1 Live Smooth Streaming avec Amazon CloudFront et IIS Media Services 4.1 Rubriques • Présentation de Live Smooth Streaming avec Amazon Web Services (p. 315) • Création d'un compte Amazon Web Services (p. 316) • Création d'une paire de clés Amazon EC2 (p. 317) • Création d'une pile AWS CloudFormation pour Live Smooth Streaming (p. 317) • Vérification de l'exécution de votre instance Amazon EC2 Windows Server Instance (p. 319) • Obtention de votre mot de passe de Windows (p. 319) • Encodage de votre streaming en direct (p. 320) • Affichage de votre Live Smooth Stream (p. 320) • Suppression de votre pile AWS CloudFormation Live Smooth Streaming (p. 321) • Questions fréquentes (FAQ) (p. 321) • Documentation supplémentaire (p. 323) Présentation de Live Smooth Streaming avec Amazon Web Services Smooth Streaming est l'implémentation Microsoft de la technologie de streaming adaptatif, c'est-à-dire une forme de diffusion de contenu multimédia basée sur le Web qui utilise la norme HTTP. Smooth Streaming est une extension d'IIS Media Services qui permet un streaming adaptatif d'événements en direct à des clients Smooth Streaming tels que Microsoft Silverlight. Lorsque vous configurez Smooth Streaming de manière à utiliser CloudFront, vous bénéficiez de l'envergure du réseau HTTP mondial de CloudFront et de l'acheminement de visionneuses basé sur la latence vers les nœuds périphériques du réseau. Pour en savoir plus sur CloudFront, consultez la page de présentation de CloudFront. Le contenu Smooth Streaming est diffusé aux clients sous la forme d'une série de fragments MPEG-4 (MP4) qui peuvent être mis en cache sur les serveurs périphériques de CloudFront. Les clients compatibles avec Smooth Streaming utilisent une heuristique spéciale pour contrôler de manière dynamique les conditions actuelles du réseau et des ordinateurs locaux, et modifier en toute transparence la qualité vidéo de la présentation Smooth Streaming reçue par les clients. Tandis que les clients lisent les fragments, les conditions du réseau peuvent changer (la bande passante peut se réduire, par exemple) ou le traitement vidéo peut être modifié par d'autres applications exécutées au niveau du client. Les clients peuvent immédiatement demander que le fragment suivant vienne d'un flux codé dans un débit binaire différent pour répondre aux changements de conditions. Ceci permet aux clients de lire le fichier multimédia sans blocage, à-coup ou mise en tampon. Les utilisateurs peuvent donc ainsi profiter d'une lecture de haute qualité sans interruption du débit. Pour coder une diffusion en direct en format Smooth Streaming, vous devez utiliser Microsoft Expression Encoder 4 Pro. Pour diffuser le Smooth Stream codé, vous pouvez ensuite utiliser une Amazon EC2 Amazon Machine Image (AMI) qui exécute Windows IIS Media Services. CloudFront met en cache le contenu audio et vidéo en direct, et les visionneuses se connectent aux serveurs périphériques de CloudFront pour la lecture au moyen d'un client compatible Smooth Streaming tel que Microsoft Silverlight. Ce didacticiel couvre tout le processus de configuration. Note Microsoft Expression Encoder 4 Pro avec Service Pack 2 n'est pas inclus dans l'Amazon EC2 Amazon Machine Image (AMI) qui exécute Windows IIS Media Services, et il ne fait pas API Version 2016-01-13 315 Amazon CloudFront Guide du développeur Création d'un compte Amazon Web Services l'objet d'un téléchargement gratuit. Pour plus d'informations sur les fonctions et la tarification, reportez-vous à la page Expression Encoder 4 Pro du site Web Microsoft Store. Vous pouvez aussi utiliser un outil d'encodage tiers afin d'encoder votre vidéo pour Live Smooth Streaming. Pour une liste des partenaires Microsoft qui fournissent un logiciel d'encodage, consultez l'onglet des partenaires sur la page IIS Media Services du site Web de Microsoft. Note Ce didacticiel explique comment intégrer CloudFront à Microsoft Live Smooth Streaming exécuté sur une instance Amazon EC2. Pour plus d'informations sur la gestion et la sécurisation de votre instance Amazon EC2, consultez la documentation Amazon EC2. Pour plus d'informations sur les options Microsoft Live Smooth Streaming non traitées dans ce didacticiel, consultez les rubriques sous Documentation Microsoft (p. 323). Pour configurer Live Smooth Streaming avec Amazon Web Services (AWS), reportez-vous aux exigences système pour IIS Smooth Streaming dans le manuel Smooth Streaming Deployment Guide. Exécutez ensuite les procédures des sections suivantes : 1. Création d'un compte Amazon Web Services (p. 316) 2. Création d'une paire de clés Amazon EC2 (p. 317) 3. Création d'une pile AWS CloudFormation pour Live Smooth Streaming (p. 317) 4. Vérification de l'exécution de votre instance Amazon EC2 Windows Server Instance (p. 319) 5. Obtention de votre mot de passe de Windows (p. 319) 6. Encodage de votre streaming en direct (p. 320) 7. Affichage de votre Live Smooth Stream (p. 320) 8. Suppression de votre pile AWS CloudFormation Live Smooth Streaming (p. 321) Pour les questions fréquentes, consultez Questions fréquentes (FAQ) (p. 321). Pour des liens vers plus de documentation Microsoft et AWS, consultez Documentation supplémentaire (p. 323). Création d'un compte Amazon Web Services Si vous avez déjà un compte AWS, passez directement à Création d'une paire de clés Amazon EC2 (p. 317). Si ce n'est pas le cas, observez la procédure suivante pour en créer un. Note Lorsque vous créez un compte, AWS l'inscrit automatiquement à tous les services. Seuls les services que vous utilisez vous sont facturés. Pour créer un compte AWS 1. Accédez à http://aws.amazon.com, puis cliquez sur Créer votre compte. 2. Suivez les instructions à l'écran. Dans le cadre de la procédure d'inscription, vous recevrez un appel téléphonique et vous saisirez un code PIN en utilisant le clavier numérique du téléphone. Suivant: Création d'une paire de clés Amazon EC2 (p. 317) API Version 2016-01-13 316 Amazon CloudFront Guide du développeur Création d'une paire de clés Amazon EC2 Création d'une paire de clés Amazon EC2 Si vous avez déjà une paire de clés Amazon EC2 pour la région Amazon EC2 dans laquelle vous voulez configurer Live Smooth Streaming, passez à Création d'une pile AWS CloudFormation pour Live Smooth Streaming (p. 317). Dans le cas contraire, procédez comme indiqué ci-dessous. Une paire de clés constitue une information d'identification de sécurité semblable à un mot de passe. Vous devrez spécifier une paire de clés lors de la création d'une pile AWS CloudFormation pour le streaming en direct plus tard dans ce processus. Une fois le streaming en direct configuré, la paire de clés permet de récupérer le mot de passe de votre instance Amazon EC2 Windows Server. Pour créer une paire de clés Amazon EC2 1. Connectez-vous à AWS Management Console et ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans la liste Region, cliquez sur la région dans laquelle vous voulez créer la paire de clés. Vous devez créer la paire de clés dans la même région que celle utilisée plus tard dans ce processus afin de créer votre pile AWS CloudFormation pour le streaming en direct. Il est recommandé de créer la paire de clés et la pile du streaming en direct dans la région la plus proche de l'emplacement de votre événement en direct. 3. Dans le volet de navigation, cliquez sur Key Pairs. 4. Dans le volet Key Pairs, cliquez sur Create Key Pair. 5. Dans la boîte de dialogue Create Key Pair, entrez un nom pour la paire de clés et notez-le. Vous entrerez cette valeur lorsque vous créerez une pile AWS CloudFormation pour le streaming en direct plus loin dans le processus de configuration de streaming en direct. 6. Cliquez sur Create afin d'accéder à la boîte de dialogue Opening <key_pair_name>.pem. 7. Enregistrez le fichier .pem en sûreté sur votre ordinateur. 8. Cliquez sur Close pour fermer la boîte de dialogue Create Key Pair. Suivant: Création d'une pile AWS CloudFormation pour Live Smooth Streaming (p. 317) Création d'une pile AWS CloudFormation pour Live Smooth Streaming La procédure suivante utilise un modèle AWS CloudFormation pour créer une pile qui lance les ressources AWS requises pour Live Smooth Streaming, y compris une instance Amazon EC2. Important La facturation horaire d'une instance Amazon EC2 démarre quand vous créez la pile AWS CloudFormation qui déploie l'instance Amazon EC2. Les frais continuent de s'ajouter tant que vous n'avez pas supprimé la pile AWS CloudFormation, que vous utilisiez ou non l'instance Amazon EC2 pour du streaming en direct. Pour plus de détails, consultez Tarification sur la page d'informations d'Amazon Elastic Compute Cloud (Amazon EC2). Une fois votre événement en direct terminé, supprimez la pile créée pour Live Smooth Streaming. Les ressources AWS créées pour votre événement de streaming en direct sont alors supprimées et la facturation AWS des ressources est interrompue. Pour de plus amples informations, veuillez consulter Suppression de votre pile AWS CloudFormation Live Smooth Streaming (p. 321). API Version 2016-01-13 317 Amazon CloudFront Guide du développeur Création d'une pile AWS CloudFormation pour Live Smooth Streaming Pour créer une pile AWS CloudFormation pour le streaming en direct 1. Dans la liste suivante, cliquez sur la région Amazon EC2 dans laquelle vous voulez supprimer la pile. L'assistant Create Stack démarre et la valeur spécifique de la région est automatiquement entrée dans le champ Provide a Template URL. USA Est (Virginie du Nord) USA Ouest (Oregon) USA Ouest (Californie du Nord) UE (Irlande) Asie-Pacifique (Singapour) Asie-Pacifique (Tokyo) Amérique du Sud (São Paulo) 2. Si vous n'êtes pas déjà connecté à AWS Management Console, faites-le quand vous y êtes invité. 3. Facultatif : dans l'assistant Create Stack, modifiez la valeur du champ Stack Name. Le nom de la pile ne doit pas contenir d'espaces et doit être unique au sein de votre compte AWS. 4. Ne modifiez pas l'option Stack Template Source ni la valeur de Provide a Template URL. 5. Facultatif : pour configurer une notification SNS, pour spécifier la durée pendant laquelle vous être prêt à patienter pour que la pile soit créée et pour choisir d'annuler les modifications en cas d'échec de la création de la pile, cochez la case Show Advanced Options et spécifiez les valeurs en question. 6. Cliquez sur Continuer. 7. Sur la page Specify Parameters, dans le champ KeyPair, entrez le nom d'une paire de clés Amazon EC2 dans la région dans laquelle vous voulez créer la pile pour le streaming en direct. La paire de clés doit être associée au compte avec lequel vous êtes actuellement connecté. Si vous avez créé une paire de clés lors de l'exécution de la procédure décrite dans Création d'une paire de clés Amazon EC2 (p. 317), entrez le nom de cette paire de clés. 8. Dans le champ InstanceType, entrez un type d'instance, puis cliquez sur Continue. La valeur par défaut est m1.xlarge. Le type d'instance détermine la tarification pour l'instance Amazon EC2 qui exécute Windows Server. Pour plus d'informations sur les types d'instance Amazon EC2 pour Windows, y compris les informations de tarification, allez à Amazon EC2 exécutant Microsoft Windows Server et SQL Server. 9. Vérifiez les paramètres de la pile. Lorsque vous êtes satisfait de vos paramètres, cliquez sur Create Stack. La création de votre pile peut prendre plusieurs minutes. Pour suivre la progression de la création de la pile, sélectionnez cette dernière et cliquez sur l'onglet Events dans le cadre du bas. Si AWS CloudFormation ne peut pas créer la pile, l'onglet Events affiche les messages d'erreur. Lorsque votre pile est prête, son statut passe sur CREATE_COMPLETE dans le cadre du haut. Lorsque votre pile est créée, cliquez sur l'onglet Outputs pour afficher les sorties de création de pile. Vous utiliserez ces valeurs lors de la configuration de Microsoft Expression Encoder par la suite. API Version 2016-01-13 318 Amazon CloudFront Guide du développeur Vérification de l'exécution de votre instance Amazon EC2 Windows Server Instance Suivant: Vérification de l'exécution de votre instance Amazon EC2 Windows Server Instance (p. 319) Vérification de l'exécution de votre instance Amazon EC2 Windows Server Instance Après qu'AWS CloudFormation a créé la pile, procédez comme indiqué ci-dessous pour vérifier si votre serveur Web Windows IIS Media Services est en cours d'exécution sur l'instance Amazon EC2 que vous avez mise en service via AWS CloudFormation. Pour vérifier si votre serveur Windows Server est en cours d'exécution 1. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. 2. Dans le volet supérieur, sélectionnez la pile créée dans Création d'une pile AWS CloudFormation pour Live Smooth Streaming (p. 317). 3. Dans le volet inférieur, cliquez sur l'onglet Outputs. 4. Cliquez sur la valeur de la clé SmoothStreamingServer, soit par exemple http:// ec2-00-11-22-33.us-west-1.compute.amazonaws.com. L'écran de la bannière de Windows IIS Server s'affiche pour indiquer que Microsoft Windows est en cours d'exécution. Suivant: Obtention de votre mot de passe de Windows (p. 319) Obtention de votre mot de passe de Windows Pour vous connecter à votre instance Amazon EC2 exécutant Windows Server 2008 R2 et IIS Media Services, procédez comme indiqué ci-dessous pour récupérer le mot de passe initial du compte administrateur de Windows Server. Vous n'aurez à récupérer ce mot de passe qu'une seule fois pour votre instance Amazon EC2. Une fois la procédure terminée, vous pourrez travailler avec votre instance Amazon EC2 comme avec n'importe quel ordinateur Windows Server. Pour plus d'informations sur la connexion à une instance Amazon EC2 exécutant Windows, consultez Getting Started with Amazon EC2 Windows Instances. Important Amazon EC2 peut prendre jusqu'à 30 minutes pour récupérer votre mot de passe auprès de Windows Server. Pour obtenir le mot de passe Windows pour votre instance Amazon EC2 1. 2. 3. 4. 5. Vérifiez que vous pouvez accéder au fichier de clé privée Amazon EC2 (le fichier .pem) créé dans Création d'une paire de clés Amazon EC2 (p. 317). Connectez-vous à AWS Management Console et ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. Dans la liste Region, cliquez sur la région dans laquelle vous avez créé l'instance Amazon EC2 pour Live Smooth Streaming. Dans le volet de navigation, cliquez sur Instances. Dans le volet My Instances, cliquez avec le bouton droit sur l'instance pour laquelle la valeur de la colonne Name est LiveSmoothStreaming, puis cliquez sur Get Windows Password. API Version 2016-01-13 319 Amazon CloudFront Guide du développeur Encodage de votre streaming en direct 6. Dans la page Retrieve Default Windows Administrator Password, cliquez sur Browse et accédez à l'emplacement où vous avez enregistré le fichier .pem sur votre ordinateur. 7. Sélectionnez le fichier .pem. Son contenu s'affiche alors dans la fenêtre. 8. Cliquez sur Decrypt Password. 9. Prenez note du mot de passe. Vous en aurez besoin pour vous connecter à l'instance Amazon EC2. 10. Facultatif mais recommandé : connectez-vous à l'instance Windows Server que vous venez de lancer et modifiez le mot de passe du compte Windows Server par défaut. Le nom utilisateur est Administrator. Vous pouvez également décider de créer un autre compte utilisateur et de l'ajouter au groupe Administrators. Un autre compte administrateur est une protection en cas d'oubli de votre mot de passe d'administrateur ou si vous rencontrez des problèmes avec le compte d'administrateur. Note Pour plus de détails sur la mise à jour des paramètres d'Amazon EC2 Security Group pour votre serveur Windows afin de pouvoir accéder au serveur avec le port 3389, consultez Comment activer l'accès au serveur Windows ? (p. 322). Pour plus d'informations sur la façon de vous connecter à l'instance avec le compte d'administrateur, consultez Comment puis-je me connecter en toute sécurité à mon instance Amazon EC2 exécutant Windows IIS Media Services ? (p. 323). Suivant: Encodage de votre streaming en direct (p. 320) Encodage de votre streaming en direct Vous êtes désormais prêt à publier votre streaming sur le point de publication Live Smooth Streaming de votre instance Amazon EC2 exécutant Windows Server et Windows IIS Media Services. Microsoft ne vend plus Expression Encoder 4 Pro. Pour une liste des partenaires Microsoft qui fournissent des outils d'encodage de tiers possibles à utiliser afin d'encoder votre vidéo pour Live Smooth Streaming, consultez la section Partners de la page IIS Media Services du site Web de Microsoft. Suivant: Affichage de votre Live Smooth Stream (p. 320) Affichage de votre Live Smooth Stream Procédez comme indiqué ci-dessous pour afficher votre Live Smooth Stream avec CloudFront. Vous pouvez également intégrer le code du lecteur Microsoft Silverlight dans votre propre page Web. 1. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. 2. Sélectionnez la pile pour le streaming en direct. 3. Dans le volet inférieur de la console AWS CloudFormation, cliquez sur l'onglet Outputs. 4. Cliquez sur la valeur de la clé LiveSmoothStreamingPlayer, soit par exemple http:// d123.cloudfront.net/LiveSmoothStreamingPlayer.html. 5. Pour intégrer le code du lecteur Silverlight dans votre page Web, dans l'onglet Outputs, copiez la valeur de la clé SilverlightEmbedCode. Note Microsoft recommande que les visionneuses disposent de la dernière version de Microsoft Silverlight afin d'optimiser les résultats. API Version 2016-01-13 320 Amazon CloudFront Guide du développeur Suppression de votre pile AWS CloudFormation Live Smooth Streaming 6. Pour voir votre streaming en direct sur un périphérique Apple, tel qu'un iPad ou un iPhone par exemple, affichez la console AWS CloudFormation à partir d'un périphérique Apple compatible et cliquez sur la valeur de la clé LiveHLSManifest. L'URL du fichier manifeste ressemble à http:// d123.cloudfront.net/LiveSmoothStream.isml/manifest(format=m3u8-aapl).m3u8. Pour plus de détails sur l'emplacement où utiliser l'URL afin d'assurer la diffusion vers plusieurs périphériques iOS, QuickTime et Safari, consultez HTTP Live Streaming Overview dans l'iOS Developer Library. Suivant: Suppression de votre pile AWS CloudFormation Live Smooth Streaming (p. 321) Suppression de votre pile AWS CloudFormation Live Smooth Streaming Une fois votre événement en direct terminé, supprimez la pile créée pour Live Smooth Streaming. Les ressources AWS créées pour votre événement en direct sont alors supprimées et la facturation AWS pour ces ressources est interrompue. Pour supprimer une pile AWS CloudFormation pour le streaming en direct 1. 2. 3. 4. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. Sélectionnez la case de la pile, puis cliquez sur Delete Stack. Cliquez sur Yes, Delete pour confirmer. Pour suivre la progression de la suppression de la pile, cochez la case de cette dernière, puis cliquez sur l'onglet Events dans le cadre du bas. Questions fréquentes (FAQ) • Combien coûte Smooth Streaming avec CloudFront ? (p. 321) • Puis-je diffuser ma vidéo de streaming en direct pour des clients Smooth Streaming et des périphériques Apple en même temps ? (p. 322) • Comment configurer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? (p. 322) • Comment activer l'accès au serveur Windows ? (p. 322) • Comment puis-je me connecter en toute sécurité à mon instance Amazon EC2 exécutant Windows IIS Media Services ? (p. 323) • Comme puis-je restreindre l'accès à mon contenu Live Smooth Streaming à partir d'un autre domaine ? (p. 323) Combien coûte Smooth Streaming avec CloudFront ? Pour appliquer Live Smooth Streaming à votre événement en direct, vous ne payez que les ressources AWS consommées. • Pour les informations de tarification relatives aux instances Amazon EC2 exécutant Windows Server, consultez Pricing sur la page Amazon EC2 exécutant Microsoft Windows Server et SQL Server. • Pour les informations de tarification relatives à CloudFront, consultez Tarification Amazon CloudFront. Aucun frais supplémentaire ne s'applique pour l'utilisation de AWS CloudFormation. API Version 2016-01-13 321 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) Puis-je diffuser ma vidéo de streaming en direct pour des clients Smooth Streaming et des périphériques Apple en même temps ? Oui. Vous pouvez utiliser Microsoft Expression Encoder 4 Pro pour encoder votre vidéo en direct pour les clients Smooth Streaming (comme par exemple Microsoft Silverlight) et des périphériques Apple à la fois (comme des iPad et des iPhone). Une fois votre pile AWS CloudFormation lancée, vous trouverez les URL des fichiers manifeste pour Live Smooth Streaming (.isml) et pour Apple HLS (.m3u8) dans l'onglet Outputs de votre modèle AWS CloudFormation. Comment configurer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? Votre instance Amazon EC2 Windows Server est fournie avec un nom DNS interne et un nom DNS externe. Amazon EC2 ne permet pas de modifier ces paramètres DNS. Si vous voulez mapper un nom de domaine existant à votre instance Amazon EC2 exécutant Windows Server, utilisez un fournisseur de services DNS tel qu'Amazon Route 53. Lors de l'utilisation de votre propre nom de domaine, nous vous recommandons un mappage vers le nom DNS externe de l'instance avec un CNAME, et non pas avec un enregistrement A qui dirige vers l'adresse IP de l'instance. Pour mapper votre nom de domaine et votre distribution CloudFront, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Comment activer l'accès au serveur Windows ? Pour activer l'accès au port 3389 sur votre serveur Windows via des adresses IP sélectionnées Par défaut, le port 3389 n'est pas activé pour le groupe de sécurité Amazon EC2 de votre instance de serveur Windows. Il s'agit du port employé pour administrer le serveur Windows. Si vous souhaitez vous connecter à votre instance de serveur Windows, procédez comme indiqué ci-dessous pour activer l'accès via le port 3389. 1. Connectez-vous à AWS Management Console et ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans la liste Region, cliquez sur la région Amazon EC2 dans laquelle vous avez utilisé AWS CloudFormation pour créer votre instance Amazon EC2. 3. Dans le volet de navigation, cliquez sur Security Groups. 4. Dans le volet Security Groups, cliquez sur la ligne pour laquelle la valeur de la colonne Name commence par le nom de la pile AWS CloudFormation que vous avez créée dans Création d'une pile AWS CloudFormation pour Live Smooth Streaming (p. 317). 5. Dans le volet inférieur, cliquez sur l'onglet Inbound. 6. Pour activer l'accès à votre serveur Windows et spécifier les adresses IP de clients autorisés à accéder au serveur : a. Dans la liste Create a new rule, ne modifiez pas la valeur par défaut Custom TCP rule. b. Dans le champ Port range, entrez 3389. c. Dans le champ Source, entrez une plage ou une adresse IP, ou indiquez le nom d'un autre groupe de sécurité. Pour plus d'informations, cliquez sur Help. d. Cliquez sur Add Rule. e. Pour créer des règles supplémentaires, répétez les étapes a à d. f. Cliquez sur Apply Rule Changes. API Version 2016-01-13 322 Amazon CloudFront Guide du développeur Documentation supplémentaire Comment puis-je me connecter en toute sécurité à mon instance Amazon EC2 exécutant Windows IIS Media Services ? Pour vous connecter à votre instance de serveur Windows, vous devez récupérer le mot de passe initial du compte administrateur, puis l'utiliser pour la connexion à Windows Remote Desktop. Vous aurez également besoin du contenu du fichier de clé privée que vous avez créée, par exemple <keypairname.pem>.pem. Pour plus de détails, consultez Getting Started with Amazon EC2 Windows Instances. Comme puis-je restreindre l'accès à mon contenu Live Smooth Streaming à partir d'un autre domaine ? Microsoft Silverlight inclut la prise en charge de la connectivité inter-domaines, ce qui permet au lecteur Silverlight d'accéder à du contenu à partir d'emplacements différents du domaine d'où provient le contenu Smooth Streaming. Le système de stratégie de sécurité dans Silverlight exige qu'un fichier de stratégie Silverlight nommé ClientAccessPolicy.xml soit téléchargé à partir d'un domaine cible avant qu'une connexion à un réseau ne soit autorisée pour accéder à une ressource de réseau sous ce domaine cible. Un fichier de stratégie par défaut est déjà inclus à la racine du site Web par défaut sur votre serveur Windows exécuté sur Amazon EC2. Pour restreindre l'accès inter-domaines, connectez-vous à votre serveur Windows et mettez le fichier ClientAccessPolicy.xml à jour. Documentation supplémentaire Documentation Microsoft • IIS Smooth Streaming Deployment Guide • IIS Media Services 4.1 Readme • IIS Smooth Streaming Management REST Services • Configuring Authentication in IIS 7 • Blog de Microsoft Expression Encoder • Managing live publishing points from Microsoft Expression Encoder 4 Pro SP2 • Live IIS Smooth Streaming in Expression Encoder 4 Pro • Apple HTTP Live Streaming with IIS Media Services Documentation Amazon Web Services • Amazon EC2 exécutant Microsoft Windows Server et SQL Server • Amazon Elastic Compute Cloud Microsoft Windows Guide • Amazon CloudFront • AWS CloudFormation API Version 2016-01-13 323 Amazon CloudFront Guide du développeur Streaming en direct avec Wowza Streaming Engine 4.2 Streaming en direct HTTP avec Wowza Streaming Engine 4.2 Vous pouvez utiliser Wowza Streaming Engine 4.2 pour créer des sessions de streaming en direct en vue d'une diffusion globale avec CloudFront. Wowza Streaming Engine 4.2 prend en charge les protocoles de streaming HTTP suivants : • HLS (HTTP Live Streaming) • HDS (HTTP Dynamic Streaming) • Smooth Streaming • MPEG DASH Quand un utilisateur diffuse une vidéo à l'aide de l'un des protocoles ci-dessus, la vidéo est scindée en fragments mis en cache dans le réseau CloudFront afin d'améliorer les performances et l'évolutivité. Le didacticiel explique comment intégrer CloudFront à Wowza Streaming Engine 4.2 exécuté sur une instance Amazon EC2. Pour plus d'informations sur la gestion et la sécurisation de votre instance Amazon EC2, consultez la documentation Amazon EC2. Pour plus d'informations sur les options Wowza Streaming Engine non traitées dans ce didacticiel, consultez la documentation Wowza. Rubriques • Création d'un compte Amazon Web Services (p. 324) • Création d'une paire de clés Amazon EC2 (p. 325) • Obtention d'une licence pour Wowza Streaming Engine 4.2 (p. 325) • Abonnement à Wowza Streaming Engine 4.2 via AWS Marketplace (p. 325) • Création d'une pile AWS CloudFormation pour le streaming en direct (p. 326) • Vérification de l'exécution de Wowza Streaming Engine 4.2 (p. 328) • Configuration d'un encodeur pour publier un flux en direct (p. 328) • Lecture du flux en direct dans une application web (p. 330) • Suppression d'une pile AWS CloudFormation pour le streaming en direct (p. 331) • Questions fréquentes (FAQ) (p. 331) • Documentation supplémentaire (p. 333) Création d'un compte Amazon Web Services Si vous avez déjà un compte AWS, passez directement à Création d'une paire de clés Amazon EC2 (p. 325). Si ce n'est pas le cas, observez la procédure suivante pour en créer un. Pour créer un compte AWS 1. Ouvrez http://aws.amazon.com/, puis choisissez Create an AWS Account. 2. Suivez les instructions en ligne. Dans le cadre de la procédure d'inscription, vous recevrez un appel téléphonique et vous saisirez un code PIN en utilisant le clavier numérique du téléphone. Suivant: Création d'une paire de clés Amazon EC2 (p. 325) API Version 2016-01-13 324 Amazon CloudFront Guide du développeur Création d'une paire de clés Amazon EC2 Création d'une paire de clés Amazon EC2 Si vous avez déjà une paire de clés Amazon EC2 pour la région Amazon EC2 dans laquelle vous voulez configurer le streaming en direct, passez à Obtention d'une licence pour Wowza Streaming Engine 4.2 (p. 325). Dans le cas contraire, suivez les étapes ci-après. Une paire de clés constitue une information d'identification de sécurité, similaire à un mot de passe et spécifique à une région AWS. Vous devez spécifier une paire de clés lorsque vous créerez une pile AWS CloudFormation pour le streaming en direct, ultérieurement dans le processus. Une fois le streaming en direct configuré, la paire de clés permet une connexion en toute sécurité à votre instance Amazon EC2. Pour créer une paire de clés Amazon EC2 1. Connectez-vous à AWS Management Console et ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans le sélecteur de région, choisissez la région dans laquelle vous voulez créer la paire de clés. Vous devez créer la paire de clés dans la même région que celle utilisée plus tard dans ce processus afin de créer votre pile AWS CloudFormation pour le streaming en direct. Il est recommandé de créer la paire de clés et la pile du streaming en direct dans la région la plus proche de l'emplacement à partir duquel le flux en direct sera publié. 3. Dans le volet de navigation de gauche, choisissez Key Pairs. 4. Dans le volet des paires de clés, choisissez Create Key Pair. 5. Dans la boîte de dialogue Create Key Pair, entrez un nom pour la paire de clés et notez-le. Vous en aurez besoin par la suite lorsque vous créerez une pile de streaming en direct. 6. Choisissez Create et, lorsque vous y êtes invité, enregistrez le fichier .pem sur un emplacement sécurisé de votre ordinateur. Notez que vous ne pourrez pas télécharger à nouveau le fichier. 7. Choisissez Close pour fermer la boîte de dialogue Create Key Pair. Suivant: Obtention d'une licence pour Wowza Streaming Engine 4.2 (p. 325) Obtention d'une licence pour Wowza Streaming Engine 4.2 Une licence est nécessaire pour que Wowza Streaming Engine 4.2 configure le streaming en direct. Vous avez deux options: • Si vous avez déjà une licence, vous pouvez l'utiliser pour configurer le streaming en direct. Passez à la procédure suivante. • Pour acheter une licence avec votre compte AWS, accédez à la page Pricing du site web Wowza et achetez la licence Wowza Streaming Engine qui vous convient le mieux. Suivant: Abonnement à Wowza Streaming Engine 4.2 via AWS Marketplace (p. 325) Abonnement à Wowza Streaming Engine 4.2 via AWS Marketplace L'étape suivante consiste à s'abonner à Wowza Streaming Engine 4.2 dans AWS Marketplace. API Version 2016-01-13 325 Amazon CloudFront Guide du développeur Création d'une pile AWS CloudFormation pour le streaming en direct Pour commander Wowza Streaming Engine pour Amazon Web Services 1. Accédez à la page Amazon Web Services et connectez-vous à l'aide de votre compte Amazon.com ou créez un nouveau compte. 2. Si vous utilisez votre propre licence, accédez à https://aws.amazon.com/marketplace/pp/ B013FEULQA. Vérifiez les détails et choisissez Continue. Si vous acquérez une licence à l'aide de votre compte AWS, accédez à https://aws.amazon.com/ marketplace/pp/B012BW3WB8. Vérifiez les détails et choisissez Continue. 3. Choisissez l'onglet Manual Launch. 4. Passez en revue les informations de tarification et choisissez Accept Terms. Important N'utilisez pas les boutons de cette page pour lancer Wowza. Suivant: Création d'une pile AWS CloudFormation pour le streaming en direct (p. 326) Création d'une pile AWS CloudFormation pour le streaming en direct La procédure suivante utilise un modèle AWS CloudFormation pour créer une pile qui lance les ressources AWS requises par le streaming en direct, y compris une instance Amazon EC2. Important La facturation horaire d'une instance Amazon EC2 démarre quand vous créez la pile AWS CloudFormation qui déploie l'instance. Les frais continuent de s'ajouter tant que vous n'avez pas supprimé la pile AWS CloudFormation, que vous utilisiez ou non l'instance Amazon EC2 pour du streaming en direct. Une fois votre événement en direct terminé, supprimez la pile créée pour le streaming en direct. Les ressources AWS créées pour votre événement de streaming en direct sont alors supprimées et la facturation AWS des ressources est interrompue. Pour de plus amples informations, veuillez consulter Suppression d'une pile AWS CloudFormation pour le streaming en direct (p. 331). Pour créer une pile AWS CloudFormation pour le streaming en direct 1. Pour démarrer l'Assistant qui crée une pile AWS CloudFormation, choisissez le lien applicable : Si vous disposez de votre propre licence Wowza, choisissez la région Amazon EC2 dans laquelle vous voulez que AWS CloudFormation lance une instance Amazon EC2 : • Créer une pile dans USA Est (Virginie du Nord) • Créer une pile dans USA Ouest (Oregon) • Créer une pile dans USA Ouest (Californie du Nord) • Créer une pile dans UE (Irlande) • Créer une pile dans UE (Francfort) • Créer une pile dans Asie-Pacifique (Singapour) • Créer une pile dans Asie-Pacifique (Sydney) • Créer une pile dans Asie-Pacifique (Tokyo) • Créer une pile dans Amérique du Sud (São Paulo) API Version 2016-01-13 326 Amazon CloudFront Guide du développeur Création d'une pile AWS CloudFormation pour le streaming en direct Si vous souhaitez facturer une licence Wowza sur votre compte AWS, choisissez la région Amazon EC2 où vous voulez que AWS CloudFormation lance une instance Amazon EC2 : • Créer une pile dans USA Est (Virginie du Nord) • Créer une pile dans USA Ouest (Oregon) • Créer une pile dans USA Ouest (Californie du Nord) • Créer une pile dans UE (Irlande) • Créer une pile dans UE (Francfort) • Créer une pile dans Asie-Pacifique (Singapour) • Créer une pile dans Asie-Pacifique (Sydney) • Créer une pile dans Asie-Pacifique (Tokyo) • Créer une pile dans Amérique du Sud (São Paulo) 2. Si vous n'êtes pas déjà connecté à AWS Management Console, faites-le quand vous y êtes invité. L'Assistant démarre et l'URL sélectionnée s'affiche automatiquement sous Provide an S3 URL to template. 3. (Facultatif) Dans l'Assistant Create a New Stack, vous pouvez modifier le nom de la pile en un nom approprié à votre événement de streaming en direct. Le nom de la pile ne doit pas contenir d'espaces et doit être unique au sein de votre compte AWS. Ne modifiez pas l'option Template ou l'adresse de Provide an S3 URL to template. 4. Choisissez Next Step. 5. Sur la page Specify Parameters, pour ApplicationName, entrez un nom bref (sans espaces) pour votre application Wowza, ou conservez la valeur par défaut. 6. Pour InstanceType, entrez un type d'instance, ce qui détermine la tarification de votre instance Wowza. Pour plus d'informations sur les types d'instance Amazon EC2, consultez Types d'instance disponibles. Pour plus d'informations sur la tarification, consultez Tarification Amazon EC2. 7. Pour KeyPair, entrez le nom d'une paire de clés Amazon EC2 pour la région dans laquelle vous voulez créer le pack de streaming continu. La paire de clés doit être associée au compte avec lequel vous êtes actuellement connecté. Si vous avez créé une paire de clés lors de l'exécution de la procédure dans Création d'une paire de clés Amazon EC2 (p. 325), entrez ce nom ici. 8. Pour StartupPackageURL, entrez une URL qui pointe sur un package de démarrage pour configurer Wowza Streaming Engine selon vos besoins, ou conservez la valeur par défaut. 9. Pour StreamName, entrez un nom bref (sans espaces) pour votre flux en direct, ou conservez la valeur par défaut. 10. Entrez votre clé de licence dans le champ WowzaLicenseKey. Il s'agit de la clé d'une licence que vous possédez déjà ou d'une clé que vous avez obtenue lors de l'exécution de la procédure décrite dans la rubriqueObtention d'une licence pour Wowza Streaming Engine 4.2 (p. 325). Si vous avez acheté des modules complémentaires, vous pouvez inclure des clés de licence en séparant leurs valeurs avec le caractère pipe (|). 11. Choisissez Next Step. 12. (Facultatif) Sur la page Options, ajoutez les paires clé-valeur des balises que vous prévoyez d'utiliser. Pour plus d'informations sur l'utilisation des balises, consultez Ajout de balises à votre pile AWS CloudFormation. 13. (Facultatif) Pour configurer une notification SNS, spécifier la durée que vous êtes prêt à attendre pour que la pile soit créée, choisir d'annuler les modifications en cas d'échec de la création de la pile et entrer une stratégie de pile, choisissez Advanced et réglez les paramètres comme souhaité. 14. Choisissez Next Step. API Version 2016-01-13 327 Amazon CloudFront Guide du développeur Vérification de l'exécution de Wowza Streaming Engine 4.2 15. Passez en revue les paramètres de la pile, puis choisissez Create. AWS CloudFormation crée la pile. La création de votre pile peut prendre plusieurs minutes. Pour suivre l'avancement de la création de la pile, sélectionnez la pile, puis choisissez l'onglet Events. Si AWS CloudFormation ne peut pas créer la pile, l'onglet Events affiche les messages d'erreur. Lorsque votre pile est prête, dans la liste des piles, son état devient CREATE_COMPLETE. Lorsque votre pile est créée, choisissez l'onglet Outputs, qui affiche les sorties de la création de la pile. Vous utiliserez ces valeurs lorsque vous installerez l'encodeur, ultérieurement dans le processus. Suivant: Vérification de l'exécution de Wowza Streaming Engine 4.2 (p. 328) Vérification de l'exécution de Wowza Streaming Engine 4.2 Après que AWS CloudFormation a créé la pile, exécutez les étapes suivantes pour vérifier que Wowza Streaming Engine 4.2 s'exécute sur l'instance Amazon EC2 que vous avez mise en service via AWS CloudFormation. Pour vérifier que Wowza Streaming Engine 4.2 est en cours d'exécution 1. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. 2. Dans le sélecteur de région, choisissez la région dans laquelle vous avez créé la pile AWS CloudFormation. 3. Dans la liste des piles, sélectionnez celle créée dans Création d'une pile AWS CloudFormation pour le streaming en direct (p. 326). 4. Choisissez l'onglet Outputs. 5. Sous l'onglet Outputs, obtenez la valeur de la clé WowzaServerLoginInfo, que vous utiliserez comme informations d'identification dans la prochaine étape. 6. Choisissez l'URL de la clé WowzaEngineManagerURL : par exemple, http://ec2-xx-xx-xxxxxx.compute-1.amazonaws.com:8088/enginemanager. Lorsque vous êtes invité à renseigner les informations d'identification de connexion, utilisez la valeur de la clé WowzaServerLoginInfo que vous avez obtenue à l'étape 5. Important L'URL utilise le port 8088 pour se connecter à l'instance Amazon EC2 qui exécute Wowza Streaming Engine. Selon les paramètres de votre pare-feu, il se peut que vous ne puissiez pas vous connecter à l'instance Amazon EC2. En cas de difficulté, contactez votre administrateur réseau. Suivant: Configuration d'un encodeur pour publier un flux en direct (p. 328) Configuration d'un encodeur pour publier un flux en direct Vous devez encoder le flux en direct capturé par votre appareil avant de l'envoyer à Wowza Streaming Engine 4.2. Vous pouvez encoder le flux en direct à l'aide de l'application Wowza GoCoder pour les appareils iOS ou d'encodeurs qui prennent en charge l'encodage RTMP, comme Telestream Wirecast. API Version 2016-01-13 328 Amazon CloudFront Guide du développeur Configuration d'un encodeur pour publier un flux en direct Les étapes de publication d'un flux depuis votre encodeur vers Wowza Streaming Engine varient selon votre choix d'encodeur : Pour plus d'informations sur la configuration de votre encodeur, consultez Specific Encoding Technologies sur le site Wowza ou lisez la documentation de votre encodeur. Encodez les flux Apple HLS à l'aide des formats suivants : • Vidéo: • Apple iPhone, iPod et iPod touch – H.264 Baseline Profile Level 3.0. N'utilisez pas les images de type b lorsque vous ciblez les appareils iPhone et iPod. • Apple iPad – H.264 Main Profile Level 3.1 • Audio : AAC-LC jusqu'à 48 kHz, audio stéréo. Les flux Smooth Streaming doivent avoir l'audio et la vidéo. La fréquence d'image clé doit être comprise entre 1 et 4 secondes. Nous recommandons une fréquence de deux secondes. Wowza Gocoder Pour configurer Wowza GoCoder et publier un flux en direct, exécutez les étapes suivantes. Note Wowza GoCoder est disponible à l'achat sur l'AppStore d'Apple. 1. Accédez au didacticiel Wowza How to use Wowza GoCoder video broadcasting iOS app with Wowza Streaming Engine. 2. Suivez la procédure de la section Configure Wowza GoCoder App du didacticiel. Spécifiez les valeurs suivantes pour les paramètres Host : 3. 4. a. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. b. Sur la console AWS CloudFormation, choisissez l'onglet Outputs. c. Copiez la valeur de la clé WowzaEngineDomainName : par exemple, ec2-xx-xx-xxxxxx.compute-1.amazonaws.com. d. Pour Server, collez la valeur que vous venez de copier. e. Pour Port, entrez 1935. Spécifiez les valeurs suivantes pour les paramètres Application : a. Pour Application, entrez le nom de l'application que vous avez spécifié lorsque vous avez créé la pile : par exemple, livecf. b. Sous l'onglet Outputs de la console AWS CloudFormation, copiez la valeur de la clé PublishStreamName : par exemple, myStream. c. Pour StreamName, collez la valeur que vous venez de copier à l'étape précédente. Modifiez d'autres valeurs le cas échéant. Encodeur RTMP Les encodeurs RTMP utilisent généralement les paramètres suivants : Publish URL Il s'agit de la valeur de la clé AWS CloudFormation PublishRTMPURL : par exemple, rtmp:// ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com/livecf. Nom du flux Il s'agit de la valeur de la clé AWS CloudFormation PublishStreamName : par exemple, myStream. API Version 2016-01-13 329 Amazon CloudFront Guide du développeur Lecture du flux en direct dans une application web Login Credentials Si vous êtes invité à entrer les informations d'identification de connexion, utilisez les valeurs de la clé AWS CloudFormation WowzaServerLoginInfo : par exemple, username=wowza, password=i-1234a567. Suivant: Lecture du flux en direct dans une application web (p. 330). Lecture du flux en direct dans une application web Wowza Media Services fournit les pages web d'un exemple de lecteur en ligne que vous pouvez utiliser pour lire le flux en direct depuis votre distribution Wowza Streaming Engine. Ces lecteurs peuvent vous aider à vérifier que votre pile de streaming a été correctement définie. Vous pouvez utiliser les mêmes URL de manifeste de streaming pour les autres lecteurs qui prennent en charge le protocole de streaming que vous voulez utiliser. Exécutez la procédure applicable pour obtenir le code intégré que vous inclurez dans votre page web pour le flux en direct. Note Attendez au moins 30 secondes après avoir exécuté la procédure applicable dans Configuration d'un encodeur pour publier un flux en direct (p. 328) avant d'exécuter les étapes ci-dessous pour lire le flux. • Pour lire votre flux HDS en direct sur Adobe Flash Player via CloudFront (p. 330) • Pour lire votre flux HLS en direct sur un appareil Apple ou autre via CloudFront (p. 330) • Pour livre votre flux Smooth Streaming en direct via CloudFront (p. 331) Pour lire votre flux HDS en direct sur Adobe Flash Player via CloudFront 1. 2. 3. 4. 5. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. Sélectionnez la pile pour le streaming en direct HTTP. Sur la console AWS CloudFormation, choisissez l'onglet Outputs. Copiez la valeur de la clé PlaybackHDSURL : par exemple, http://d111111abcdef8.cloudfront.net/ livecf/myStream/manifest.f4m. Accédez à l' exemple de page web Flash HTTP Player sur le site Wowza, collez l'URL que vous avez copiée à l'étape précédente dans le champ Stream et choisissez Connect. Pour lire votre flux HLS en direct sur un appareil Apple ou autre via CloudFront 1. 2. 3. 4. 5. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. Sélectionnez la pile pour le streaming en direct. Dans la console AWS CloudFormation, choisissez l'onglet Outputs. Copiez la valeur de la clé PlaybackHLSURL : par exemple, http://d111111abcdef8.cloudfront.net/ livecf/myStream/playlist.m3u8. A l'aide de l'une des applications suivantes, accédez à l'exemple de page web iOS/Mac OS X sur le site web Wowza, collez l'URL que vous avez copiée à l'étape précédente dans le champ Stream, puis choisissez Connect: • Navigateur web Safari sur un ordinateur exécutant Mac OS X Snow Leopard (version 10.6) ou version ultérieure API Version 2016-01-13 330 Amazon CloudFront Guide du développeur Suppression d'une pile AWS CloudFormation pour le streaming en direct • QuickTime Player 10.x ou version ultérieure sur un ordinateur exécutant Mac OS X Snow Leopard (version 10.6) ou version ultérieure • Navigateur web Safari sur un appareil Apple iOS Pour livre votre flux Smooth Streaming en direct via CloudFront 1. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 2. Sélectionnez la pile pour le streaming en direct. 3. Dans la console AWS CloudFormation, choisissez l'onglet Outputs. 4. Copiez la valeur de la clé PlaybackSmoothURL, par exemple, http:// d111111abcdef8.cloudfront.net/livecf/myStream/Manifest. 5. Accédez à l'exemple de page web Silverlight sur le site web Wowza, collez l'URL que vous avez copiée à l'étape précédente dans le champ Stream, puis choisissez Connect. Suivant: Suppression d'une pile AWS CloudFormation pour le streaming en direct (p. 331). Suppression d'une pile AWS CloudFormation pour le streaming en direct Une fois votre événement en direct terminé, supprimez la pile créée pour le streaming en direct. Les ressources AWS créées pour votre événement de streaming en direct sont alors supprimées et la facturation à la demande des ressources est interrompue. Pour supprimer une pile AWS CloudFormation pour le streaming en direct 1. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 2. Dans le coin supérieur droit, choisissez la région dans laquelle vous avez créé votre pile. 3. Sélectionnez la pile, puis choisissez Delete Stack. 4. Choisissez Yes, Delete pour confirmer. 5. Pour suivre l'avancement de la suppression de la pile, sélectionnez cette dernière et choisissez l'onglet Events. Questions fréquentes (FAQ) • Quel est le prix du streaming en direct HTTP avec CloudFront et Wowza Streaming Engine 4.2 ? (p. 332) • Comment utiliser Secure Shell (SSH) pour me connecter à mon instance Amazon EC2 qui exécute Wowza Streaming Engine 4.2 ? (p. 332) • Comment créer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? (p. 332) • Puis-je diffuser simultanément mon événement en direct sur les appareils compatibles Flash Player, les appareils Apple et les lecteurs Smooth Streaming ? (p. 332) • Wowza Streaming Engine 4.2 prend-il en charge HTML5 ? (p. 333) • Puis-je traiter des flux en direct privés avec Wowza et CloudFront ? (p. 333) API Version 2016-01-13 331 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) Quel est le prix du streaming en direct HTTP avec CloudFront et Wowza Streaming Engine 4.2 ? Les frais du streaming en direct HTTP avec CloudFront et Wowza Streaming Engine 4.2 sont les suivants : • Logiciel Wowza Streaming Engine et modules complémentaires : pour plus d'informations, consultez Licenses Built For You sur le site web Wowza. • Amazon EC2 : pour plus d'informations, consultez l'onglet Linux dans la table Tarification des instances à la demande. • CloudFront : pour plus d'informations, consultez Amazon CloudFront Pricing. Aucun frais supplémentaire ne s'applique pour l'utilisation de AWS CloudFormation. Comment utiliser Secure Shell (SSH) pour me connecter à mon instance Amazon EC2 qui exécute Wowza Streaming Engine 4.2 ? Vous pouvez utiliser SSH pour vous connecter à votre instance Amazon EC2 en quelques étapes simplement. Pour utiliser SSH et se connecter à votre instance Amazon EC2 qui exécute Wowza Streaming Engine 4.2 1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans le volet gauche de navigation, choisissez Instances. 3. Cliquez avec le bouton droit sur l'instance appropriée et choisissez Connect pour afficher les instructions sur l'utilisation de SSH et vous connecter à votre instance Amazon EC2. Le nom utilisateur est ec2-user. Comment créer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? Votre instance Amazon EC2 exécutant Wowza Streaming Engine 4.2 est fournie avec un nom DNS externe et un nom DNS interne. Amazon EC2 ne permet pas de modifier ces paramètres DNS. Si vous voulez mapper un nom de domaine existant et votre instance Amazon EC2 exécutant Wowza Streaming Engine, utilisez un fournisseur de services DNS tel que Amazon Route 53. Lors de l'utilisation de votre propre nom de domaine, nous vous recommandons un mappage vers le nom DNS externe de l'instance avec un CNAME, et non pas avec un enregistrement A qui dirige vers l'adresse IP de l'instance. Pour mapper votre nom de domaine et votre distribution CloudFront, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Puis-je diffuser simultanément mon événement en direct sur les appareils compatibles Flash Player, les appareils Apple et les lecteurs Smooth Streaming ? Oui, Wowza Streaming Engine 4.2 permet la diffusion simultanée de flux en direct dans les formats Adobe HTTP Dynamic Streaming (Adobe HDS), Apple HTTP Live Streaming (Apple HLS) et Microsoft API Version 2016-01-13 332 Amazon CloudFront Guide du développeur Documentation supplémentaire Smooth Streaming, ce qui permet une lecture sur les applications Adobe Flash Player, les appareils Apple iOS et les lecteurs Smooth Streaming, respectivement. Wowza Streaming Engine 4.2 prend-il en charge HTML5 ? Oui, Wowza Streaming Engine peut diffuser un contenu en HTML5 dans les configurations suivantes : • Vous pouvez utiliser le format de streaming Apple HLS sur les appareils Apple iOS. • Vous pouvez utiliser le format Smooth Streaming sur les appareils Windows 8. Pour plus d'informations, consultez Walkthrough: Building Your First HTML5 Smooth Streaming Player sur le site web MSDN. • Pour les autres navigateurs prenant en charge HTML5, vous pouvez utiliser Wowza Streaming Engine pour diffuser une vidéo via un téléchargement progressif. Puis-je traiter des flux en direct privés avec Wowza et CloudFront ? A ce jour, les flux en direct ne peuvent pas être diffusés en toute sécurité avec les URL signées CloudFront. Cependant, les supports téléchargés progressivement peuvent être diffusés en privé à l'aide d'URL signées. Pour de plus amples informations, veuillez consulter Service d'un contenu privé via CloudFront (p. 168). Documentation supplémentaire Les ressources suivantes peuvent vous aider tandis que vous travaillez avec Wowza. Documentation Wowza Le site web Wowza inclut des articles, de la documentation et des informations de tarification sur l'utilisation de flux en direct Wowza avec Amazon Web Services : • Wowza for Amazon EC2 Articles • Wowza Streaming Engine User's Guide • Wowza on Amazon Web Services Documentation Amazon Web Services Les ressources suivantes incluent les guides de l'utilisateur et les manuels de référence pour Amazon Web Services. • Documentation Amazon Elastic Compute Cloud • Documentation AWS CloudFormation API Version 2016-01-13 333 Amazon CloudFront Guide du développeur Streaming HTTP en direct avec CloudFront et une origine HTTP Streaming HTTP en direct avec CloudFront et une origine HTTP Avec le streaming en direct Amazon CloudFront, vous pouvez utiliser tout encodeur en direct, tel qu'Elemental Live, qui produit des flux HTTP pour diffuser des représentations en direct, des webinaires et autres événements. Ce didacticiel explique le processus de configuration du streaming en direct. Note Le didacticiel présume que vous avez déjà configuré votre encodeur en direct. Rubriques • Création d'une distribution CloudFront pour le streaming en direct (p. 334) • Configuration des lecteurs web pour lire le flux en direct (p. 335) • (Facultatif) Suppression d'une pile AWS CloudFormation Stack pour le streaming en direct (p. 335) Création d'une distribution CloudFront pour le streaming en direct La procédure suivante utilise un modèle AWS CloudFormation pour créer une distribution CloudFront que vous utiliserez pour votre flux en direct. Pour créer une distribution AWS CloudFormation pour le streaming en direct 1. Accédez à la page Amazon Web Services et connectez-vous à l'aide de votre compte Amazon.com ou créez un nouveau compte. 2. Pour démarrer l'Assistant qui crée une distribution CloudFront, choisissez le lien applicable : Créer une distribution CloudFront pour le streaming HTTP en direct 3. Sur la page Select Template, choisissez Next. 4. Sur la page Specify Details, entrez les valeurs suivantes : Nom de la pile Entrez un nom descriptif pour votre pile de streaming en direct ou acceptez le nom par défaut. CustomOriginDNSName Tapez le nom DNS de l'origine personnalisée à partir de laquelle CloudFront obtient le flux en direct. CustomOriginHTTPPort Tapez le port TCP HTTP que CloudFront doit utiliser pour communiquer avec votre origine personnalisée. DistributionComment Tapez un commentaire pour vous aider à identifier votre distribution, ce qui est utile si vous gérez plusieurs distributions. La valeur que vous entrez ici apparaît dans la console CloudFront. 5. Choisissez Next. 6. (Facultatif) Sur la page Options, ajoutez les paires clé-valeur des balises que vous prévoyez d'utiliser. De plus, pour configurer une notification SNS, spécifier la durée que vous êtes prêt API Version 2016-01-13 334 Amazon CloudFront Guide du développeur Configuration des lecteurs web pour lire le flux en direct à attendre pour que la pile soit créée, choisir d'annuler les modifications en cas d'échec de la création de la pile et entrer une stratégie de pile, choisissez Advanced et réglez les paramètres comme souhaité. Pour plus d'informations, consultez Définition des options de pile AWS CloudFormation. 7. Choisissez Next. 8. Passez en revue les paramètres de la pile, puis choisissez Create. AWS CloudFormation crée la pile. La création de votre pile peut prendre plusieurs minutes. Pour suivre l'avancement de la création de la pile, sélectionnez la pile, puis choisissez l'onglet Events. Si AWS CloudFormation ne peut pas créer la pile, l'onglet Events affiche les messages d'erreur. Lorsque votre pile est prête, dans la liste des piles, son état devient CREATE_COMPLETE. 9. Lorsque votre pile est créée, choisissez l'onglet Outputs, qui affiche le nom de domaine CloudFront. Vous avez besoin de cette valeur lorsque vous configurez la lecture du flux en direct dans votre navigateur web. Configuration des lecteurs web pour lire le flux en direct Pour lire le flux en direct, intégrez l'URL du manifeste dans les lecteurs de telle sorte que vos utilisateurs puisse l'utiliser pour lire votre flux en direct. Par exemple, pour lire un flux en direct pour lequel le fichier manifeste est myStream/playlist.m3u8 et la distribution CloudFront d111111abcdef8.cloudfront.net, vous intégrez l'URL suivante dans les lecteurs : http://d111111abcdef8.cloudfront.net/myStream/playlist.m3u8 (Facultatif) Suppression d'une pile AWS CloudFormation Stack pour le streaming en direct Une fois votre événement en direct terminé, supprimez la pile créée pour le streaming en direct. La distribution CloudFront que vous avez créée pour votre événement de streaming en direct est ainsi supprimée. Note Lorsque vous arrêtez le streaming, vous n'êtes plus facturé pour les frais CloudFront de cette distribution. Il n'y a pas de frais pour la pile AWS CloudFormation. Pour supprimer une pile AWS CloudFormation pour le streaming en direct 1. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. 2. Dans le coin supérieur droit, choisissez la région dans laquelle vous avez créé votre pile. 3. Sélectionnez la pile, puis choisissez Delete Stack. 4. Choisissez Yes, Delete pour confirmer. 5. Pour suivre l'avancement de la suppression de la pile, sélectionnez cette dernière et choisissez l'onglet Events. API Version 2016-01-13 335 Amazon CloudFront Guide du développeur Streaming multimédia à la demande avec Unified Streaming Streaming multimédia à la demande avec Unified Streaming Lorsque vous utilisez Amazon CloudFront pour proposer un streaming à la demande sur HTTP, vous pouvez transcoder vous-même le contenu en plusieurs formats et débits binaires, et utiliser CloudFront pour distribuer le contenu transcodé. Vous pouvez aussi utiliser CloudFront avec Unified Streaming, ce qui exécute automatiquement l'étape du transcodage quand un utilisateur demande votre contenu. Voici comment utiliser CloudFront et Unified Streaming conjointement : 1. Vous utilisez une pile AWS CloudFormation pour configurer les ressources AWS qui vous sont applicables, dont une instance Amazon EC2 exécutant la plateforme Unified Streaming, un compartiment Amazon S3 et une distribution CloudFront. 2. Vous téléchargez vos fichiers vidéo dans le compartiment Amazon S3 au format MP4. 3. Vous ajoutez les liens applicables à votre site web ou application web. Les liens accèdent à votre contenu à l'aide des URL CloudFront. (Vous pouvez aussi transmettre les demandes DNS de votre propre nom de domaine à CloudFront.) 4. Quand un utilisateur accède à votre contenu, la demande est acheminée vers un emplacement périphérique CloudFront. 5. L'emplacement périphérique CloudFront transmet les demandes à la plateforme Unified Streaming. 6. Selon la valeur de l'en-tête User-Agent, la plateforme Unified Streaming Platform détermine le format requis par la visionneuse de l'utilisateur, transcode le contenu en ce format et retourne le contenu transcodé à CloudFront. 7. CloudFront retourne le contenu transcodé à la visionneuse et met en cache les fichiers dans l'emplacement périphérique. La prochaine fois où un utilisateur demande votre contenu au même format depuis le même cache périphérique, CloudFront répond avec les fichiers déjà présents dans le cache. La plateforme Unified Streaming prend en charge les protocoles de streaming dynamique HTTP suivants : • Adobe HTTP Dynamic Streaming (Adobe HDS) • Apple HTTP Live Streaming (Apple HLS) • Microsoft Smooth Streaming • MPEG-DASH Dans ce didacticiel, vous créez une pile AWS CloudFormation afin de créer un compartiment Amazon S3 pour vos fichiers multimédias, une instance Amazon EC2 exécutant le logiciel serveur multimédia Unified Streaming et une distribution CloudFront. Notez que ce didacticiel ne décrit que l'une des multiples solutions disponibles de configuration des ressources AWS pour le streaming à la demande avec Unified Streaming. Note Pour plus d'informations sur la gestion et la sécurisation de votre instance Amazon EC2, consultez la documentation Amazon EC2. Pour obtenir la liste des plateformes, clients, codecs, formats DRM pris en charge et autres spécifications, consultez la fiche d'information Unified Streaming Platform. Pour obtenir des liens vers d'autres documentations sur Unified Streaming et sur Amazon Web Services (AWS), consultez Documentation supplémentaire (p. 347). Rubriques API Version 2016-01-13 336 Amazon CloudFront Guide du développeur Création d'un compte Amazon Web Services • Création d'un compte Amazon Web Services (p. 337) • • • • • Création d'une paire de clés Amazon EC2 (p. 337) Abonnement à Unified Streaming (p. 338) Création d'une pile AWS CloudFormation pour le streaming à la demande (p. 338) Vérification de l'exécution du serveur Unified Streaming (p. 341) Téléchargement de vos fichiers multimédias sur Amazon S3 (p. 341) • Lecture d'un flux à la demande dans une application web test (p. 342) • Suppression d'une pile AWS CloudFormation et d'un compartiment Amazon S3 pour le streaming à la demande (p. 345) • Questions fréquentes (FAQ) (p. 345) • Documentation supplémentaire (p. 347) Création d'un compte Amazon Web Services Si vous avez déjà un compte AWS, passez directement à Création d'une paire de clés Amazon EC2 (p. 337). Si ce n'est pas le cas, observez la procédure suivante pour en créer un. Note Lorsque vous créez un compte, AWS l'inscrit automatiquement à tous les services. Seuls les services que vous utilisez vous sont facturés. Pour créer un compte AWS 1. 2. Accédez à http://aws.amazon.com et choisissez Sign In to the Console. Suivez les instructions à l'écran. Dans le cadre de la procédure d'inscription, vous recevrez un appel téléphonique et vous saisirez un code PIN en utilisant le clavier numérique du téléphone. Suivant: Création d'une paire de clés Amazon EC2 (p. 337) Création d'une paire de clés Amazon EC2 Si vous avez déjà une paire de clés Amazon EC2 dans la région Amazon EC2 où vous voulez créer une pile AWS CloudFormation pour Unified Streaming, passez à Abonnement à Unified Streaming (p. 338). Dans le cas contraire, utilisez la procédure suivante pour en créer un. Une paire de clés constitue une information d'identification de sécurité semblable à un mot de passe. Vous spécifiez une paire de clés lorsque vous créerez une pile AWS CloudFormation pour le streaming à la demande, plus loin dans ce processus. Une fois le streaming à la demande configuré, vous utilisez la paire de clés pour vous connecter en toute sécurité à votre instance Amazon EC2. Pour créer une paire de clés Amazon EC2 1. Connectez-vous à AWS Management Console et ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans la liste Region, choisissez la région dans laquelle vous voulez créer la paire de clés. Vous devez créer la paire de clés dans la même région que celle où vous créerez votre pile AWS CloudFormation pour le streaming à la demande, plus loin dans ce processus. Il est recommandé de créer la paire de clés et la pile relatives au streaming à la demande dans la région la plus proche des utilisateurs qui effectuent le streaming. API Version 2016-01-13 337 Amazon CloudFront Guide du développeur Abonnement à Unified Streaming 3. Dans le volet de navigation, cliquez sur Key Pairs. 4. Dans le volet Key Pairs, choisissez Create Key Pair. 5. Dans la boîte de dialogue Create Key Pair, entrez un nom pour la paire de clés, tel que streaming on-demand et notez le nom. Vous entrez cette valeur quand vous créerez une pile AWS CloudFormation pour le streaming à la demande, plus loin dans ce processus. 6. Cliquez sur Create. 7. Dans la boîte de dialogue Opening <key_pair_name>.pem, enregistrez le fichier .pem dans un emplacement sûr de votre ordinateur. Important Il s'agit de votre seule occasion de télécharger et d'enregistrer votre clé privée. 8. Cliquez sur Close pour fermer la boîte de dialogue Create Key Pair. Suivant: Abonnement à Unified Streaming (p. 338) Abonnement à Unified Streaming Exécutez la procédure suivante afin de souscrire l'abonnement à Unified Streaming pour Amazon Web Services via AWS Marketplace. Important Vous ne pouvez abonner un compte AWS à Unified Streaming qu'une seule fois. Si votre compte AWS dispose déjà d'un abonnement Unified Streaming, utilisez cet abonnement pour configurer le streaming à la demande. L'abonnement à Unified Streaming est gratuit. Vous ne payez que l'utilisation horaire et le transfert des données. Vous pouvez afficher une liste détaillée des tarifs dans le cadre de la procédure suivante. Pour commander Unified Streaming pour Amazon Web Services 1. Accédez à la page Unified Streaming (USP) sur le site web AWS Marketplace. 2. Passez en revue les informations sur le produit et choisissez Continue. 3. Cliquez sur l'onglet Manual Launch with EC2 Console, APIs or CLI. 4. Passez en revue les informations de tarification et choisissez Accept Terms. Important N'utilisez pas les boutons de cette page pour lancer Unified Streaming. Dans la procédure suivante, vous allez créer une pile AWS CloudFormation qui lance une instance Amazon EC2 et installe Unified Streaming. Suivant: Création d'une pile AWS CloudFormation pour le streaming à la demande (p. 338) Création d'une pile AWS CloudFormation pour le streaming à la demande Vous utilisez un modèle AWS CloudFormation pour créer une pile permettant d'obtenir les ressources AWS requises par le streaming à la demande. Ces ressources incluent une instance Amazon EC2, un compartiment Amazon S3 et une distribution CloudFront. (Le cas échéant, vous pouvez utiliser un compartiment existant.) API Version 2016-01-13 338 Amazon CloudFront Guide du développeur Création d'une pile AWS CloudFormation pour le streaming à la demande Important Les ressources AWS vous sont facturées à partir du moment où vous créez la pile AWS CloudFormation : • facturation horaire pour les instances Amazon EC2 et l'équilibreur de charge, et mensuelle pour que CloudWatch puisse continuer à augmenter jusqu'à ce que vous supprimiez la pile AWS CloudFormation, que vous utilisez ou nom les ressources pour diffuser la vidéo. • Les coûts d'utilisation Amazon S3 et CloudFront dépendent de votre quantité d'utilisation des ressources. Lorsque vous n'avez plus besoin d'utiliser les ressources créées par la pile AWS CloudFormation, supprimez cette dernière. Les ressources AWS créés par la pile sont alors supprimées et la facturation AWS des ressources est arrêtée. (La suppression de la pile ne supprime pas le compartiment Amazon S3, parce qu'il se peut que celui-ci contienne vos fichiers multimédias.) Pour plus d'informations sur la tarification des ressources AWS, consultez AWS Service Pricing Overview. Pour plus d'informations sur la suppression d'une pile AWS CloudFormation, consultez Suppression d'une pile AWS CloudFormation et d'un compartiment Amazon S3 pour le streaming à la demande (p. 345). Pour plus d'informations sur AWS CloudFormation, consultez la documentation AWS CloudFormation. Pour créer une pile pour le streaming à la demande 1. Pour démarrer l'Assistant Create Stack, choisissez le lien qui correspond à la région Amazon EC2 applicable. Cliquez sur un lien du premier ou du second groupe selon que vous vouliez ou pas que AWS CloudFormation crée automatiquement un compartiment Amazon S3, en plus d'une instance Amazon EC2 et d'une distribution CloudFront : • Si vous choisissez un lien du premier groupe, AWS CloudFormation crée une instance Amazon EC2 et un compartiment Amazon S3 dans la région correspondante. (Les distributions CloudFront ne sont pas associées à une région spécifique.) • Si vous choisissez un lien du second groupe, AWS CloudFormation crée une instance Amazon EC2 et vous invite à spécifier le compartiment Amazon S3 que vous voulez utiliser. Nous vous recommandons de choisir une région dans laquelle vous avez déjà un compartiment Amazon S3 afin que le transfert de données entre régions ne vous soit pas facturé. Créer toutes les ressources requises, y compris un nouveau compartiment Amazon S3 pour le chargement et le stockage des éléments multimédias • Créer une pile dans USA Est (Virginie du Nord) • Créer une pile dans USA Ouest (Oregon) • Créer une pile dans USA Ouest (Californie du Nord) • Créer une pile dans UE (Irlande) • Créer une pile dans UE (Francfort) • Créer une pile dans Asie-Pacifique (Singapour) • Créer une pile dans Asie-Pacifique (Tokyo) • Créer une pile dans Asie-Pacifique (Sydney) • Créer une pile dans Amérique du Sud (São Paulo) Créer une instance Amazon EC2 et une distribution CloudFront, mais utiliser un compartiment Amazon S3 existant pour le téléchargement et le stockage des éléments multimédias API Version 2016-01-13 339 Amazon CloudFront Guide du développeur Création d'une pile AWS CloudFormation pour le streaming à la demande • Créer une pile dans USA Est (Virginie du Nord) • Créer une pile dans USA Ouest (Oregon) • Créer une pile dans USA Ouest (Californie du Nord) • Créer une pile dans UE (Irlande) • Créer une pile dans UE (Francfort) • Créer une pile dans Asie-Pacifique (Singapour) • Créer une pile dans Asie-Pacifique (Tokyo) • Créer une pile dans Asie-Pacifique (Sydney) • Créer une pile dans Amérique du Sud (São Paulo) L'Assistant démarre et l'URL applicable s'affiche automatiquement dans le champ Provide an S3 URL to template. 2. Si vous n'êtes pas déjà connecté à AWS Management Console, faites-le quand vous y êtes invité. 3. (Facultatif) Modifiez le Stack Name. Le nom de la pile ne doit pas contenir d'espaces et doit être unique au sein de votre compte AWS. Ne modifiez pas l'option Template ou l'adresse de Provide an S3 URL to template. 4. Cliquez sur Suivant. 5. Pour Amazon EC2KeyPair, entrez le nom d'une paire de clés Amazon EC2 dans la même région que celle que vous avez choisie à l'étape 1. La paire de clés doit être associée au compte avec lequel vous êtes actuellement connecté. Si vous avez créé une paire de clés lors de l'exécution de la procédure décrite dans Création d'une paire de clés Amazon EC2 (p. 337), entrez le nom de cette paire de clés. 6. Si vous avez choisi un lien pour utiliser un compartiment Amazon S3 existant dans l'étape 1, entrez le nom du compartiment dans le champ AmazonS3BucketName. 7. Pour InstanceType, entrez un type d'instance, ce qui détermine la tarification de votre instance Amazon EC2. Pour plus d'informations sur les types d'instances EC2, consultez Types d'instance disponibles dans le manuel Guide de l'utilisateur Amazon EC2 pour les instances Linux. Pour plus d'informations sur la tarification, consultez la page Unified Streaming (USP) du site web AWS Marketplace. 8. Cliquez sur Suivant. 9. (Facultatif) Sur la page Options, ajoutez une ou plusieurs balises. Les balises que vous spécifiez sont appliquées à l'instance Amazon EC2 et au compartiment Amazon S3 que AWS CloudFormation crée. Cependant, elles ne sont pas appliquées à la distribution CF; que AWS CloudFormation crée ; AWS CloudFormation ne prend pas en charge l'ajout de balises aux distributions CloudFront. 10. (Facultatif) Pour configurer une notification SNS, spécifier la durée que vous êtes prêt à attendre pour que la pile soit créée, choisir d'annuler les modifications en cas d'échec de la création de la pile et entrer une stratégie de pile, choisissez Advanced et réglez les paramètres comme souhaité. 11. Cliquez sur Suivant. 12. Vérifiez les paramètres de la pile. Lorsque les paramètres vous conviennent, choisissez Create et AWS CloudFormation crée la pile. La création de la pile peut prendre plusieurs minutes. Pour suivre l'avancement de la création de la pile, sélectionnez la pile et choisissez l'onglet Events dans le cadre inférieur. Si AWS CloudFormation ne peut pas créer la pile, l'onglet Events affiche les messages d'erreur. Lorsque votre pile est prête, son statut devient CREATE_COMPLETE. Suivant: Vérification de l'exécution du serveur Unified Streaming (p. 341) API Version 2016-01-13 340 Amazon CloudFront Guide du développeur Vérification de l'exécution du serveur Unified Streaming Vérification de l'exécution du serveur Unified Streaming Après que AWS CloudFormation a créé la pile, exécutez la procédure suivante pour vérifier que le serveur Unified Streaming s'exécute sur l'instance Amazon EC2 que vous avez mise en service avec AWS CloudFormation. Pour vérifier que le serveur Unified Streaming est en cours d'exécution 1. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 2. Dans le sélecteur de région, choisissez la région dans laquelle vous avez créé la pile AWS CloudFormation. 3. Dans la liste des piles, sélectionnez celle créée dans Création d'une pile AWS CloudFormation pour le streaming à la demande (p. 338). 4. Cliquez sur l'onglet Outputs. 5. Copiez l'URL dans la clé UnifiedServer : par exemple, http:// ec2-01-2-34-567.compute-1.amazonaws.com/. 6. Collez l'URL dans la barre d'adresse du navigateur web et appuyez sur Enter. 7. Sur la page d'accueil Unified Streaming, sélectionnez les liens du lecteur pour vérifier qu'ils sont lus sur votre ordinateur ou appareil. Si la page d'accueil ne s'affiche pas, retournez sur Streaming multimédia à la demande avec Unified Streaming (p. 336) et vérifiez que les valeurs que vous avez spécifiées dans les quatre premières tâches sont correctes. Suivant: Téléchargement de vos fichiers multimédias sur Amazon S3 (p. 341) Téléchargement de vos fichiers multimédias sur Amazon S3 Vous utilisez le compartiment Amazon S3 que vous avez spécifié dans la pile AWS CloudFormation (ou que AWS CloudFormation avait créé pour vous) pour stocker votre contenu multimédia. Ces fichiers doivent être publiquement lisibles de telle sorte que le serveur Unified Streaming puisse les fournir aux lecteurs via CloudFront. Pour télécharger vos fichiers multimédias sur votre compartiment Amazon S3 1. Vérifiez la fiche d'information Unified Streaming et confirmez que votre fichier multimédia est codé dans un format pris en charge par Unified Streaming. 2. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. 3. Choisissez la pile que vous avez créée dans Création d'une pile AWS CloudFormation pour le streaming à la demande (p. 338). 4. Choisissez l'onglet Outputs. 5. Notez la valeur de la clé S3BucketName. Il s'agit du compartiment Amazon S3 sur lequel vous téléchargerez vos fichiers multimédias. 6. Ouvrez la console Amazon S3 à l'adresse &url-console-domain;s3/. 7. Dans la liste des compartiments à gauche, choisissez le nom du compartiment que vous avez noté à l'étape 5. API Version 2016-01-13 341 Amazon CloudFront Guide du développeur Lecture d'un flux à la demande dans une application web test 8. Choisissez Upload. 9. Dans la boîte de dialogue Upload - Select Files and Folders, choisissez Add Files. 10. Sélectionnez les fichiers à charger. 11. Choisissez Set Details. 12. Choisissez Set Permissions. 13. Choisissez Make everything public, puis Start Upload. Suivant: Lecture d'un flux à la demande dans une application web test (p. 342) Lecture d'un flux à la demande dans une application web test Pour confirmer que le streaming à la demande fonctionne, vous lisez le flux dans une application web test. Lorsque AWS CloudFormation a créé une instance Amazon EC2, il a aussi installé des exemples de fichiers vidéo et deux exemples de lecteur : • Silverlight : pour la diffusion de vidéos à l'aide du protocole Microsoft Smooth Streaming • OSMF 2.0 : pour la diffusion de vidéos dans Adobe Flash à l'aide du protocole Adobe HTTP Dynamic Streaming (Adobe HDS) Les procédures suivantes expliquent comment lire le flux à la demande à l'aide de différents protocoles : • Lire une vidéo à l'aide du protocole Microsoft Smooth Streaming (p. 342) • Lire une vidéo à l'aide du protocole Apple HTTP Live Streaming (HLS) (p. 343) • Lire une vidéo à l'aide du protocole Adobe HTTP Dynamic Streaming (HDS) (p. 343) • Lire une vidéo à l'aide du protocole MPEG-DASH (p. 344) Lire une vidéo à l'aide du protocole Microsoft Smooth Streaming 1. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 2. Dans la liste des piles AWS CloudFormation, choisissez celle correspondant au streaming HTTP à la demande. 3. Dans le volet inférieur de la console AWS CloudFormation, choisissez l'onglet Outputs. 4. Dans l'onglet Outputs, copiez l'URL du champ OriginS3. Il s'agit de l'URL de l'exemple de page web Microsoft Smooth Streaming de votre serveur Unified Streaming. 5. Collez l'URL dans la barre d'adresse d'un navigateur et accédez au site web. 6. Copiez la valeur de la clé SmoothManifest et collez-la dans le champ d'URL de l'exemple de page web. Dans l'exemple d'URL suivant, notez que media-file-path-excluding-bucketname-but-including-media-file-name est un texte littéral que vous remplacerez dans la prochaine étape : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/media-file-path-excluding-bucket-name-butincluding-media-file-name/manifest 7. Dans l'exemple de page web, remplacez media-file-path-excluding-bucketname-but-including-media-file-name par le chemin d'accès correct de la vidéo du compartiment Amazon S3 que vous voulez lire. Par exemple, si votre fichier multimédia se nomme nasa_msl_launch.mp4, l'URL est la suivante : API Version 2016-01-13 342 Amazon CloudFront Guide du développeur Lecture d'un flux à la demande dans une application web test http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/nasa_msl_launch.mp4/manifest Si la vidéo se trouve dans le dossier space-videos de votre compartiment Amazon S3, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/space-videos/nasa_msl_launch.mp4/manifest Lire une vidéo à l'aide du protocole Apple HTTP Live Streaming (HLS) 1. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 2. Dans la liste des piles AWS CloudFormation, choisissez celle correspondant au streaming HTTP à la demande. 3. Dans le volet inférieur de la console AWS CloudFormation, choisissez l'onglet Outputs. 4. Ouvrez le navigateur web Safari sur un appareil Apple iOS, ou ouvrez le navigateur web Safari ou QuickTime Player 10.x sur un ordinateur Mac OS X Snow Leopard (version 10.6 ou ultérieure). 5. Copiez la valeur de la clé SmoothManifest et collez-la dans le champ d'URL du navigateur Safari ou de QuickTime Player. Dans l'exemple d'URL suivant, notez que media-file-pathexcluding-bucket-name-but-including-media-file-name est un texte littéral que vous remplacerez dans la prochaine étape : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/media-file-path-excluding-bucket-name-butincluding-media-file-name/manifest 6. Dans le champ d'URL, remplacez media-file-path-excluding-bucket-name-butincluding-media-file-name par le chemin d'accès correct de la vidéo du compartiment Amazon S3 que vous voulez lire. Par exemple, si votre fichier multimédia se nomme nasa_msl_launch.mp4, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/nasa_msl_launch.mp4/manifest Si la vidéo se trouve dans le dossier space-videos de votre compartiment Amazon S3, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/space-videos/nasa_msl_launch.mp4/manifest Lire une vidéo à l'aide du protocole Adobe HTTP Dynamic Streaming (HDS) 1. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 2. Dans la liste des piles AWS CloudFormation, choisissez celle correspondant au streaming HTTP à la demande. 3. Dans le volet inférieur de la console AWS CloudFormation, choisissez l'onglet Outputs. 4. Dans l'onglet Outputs, copiez l'URL du champ OriginS3. Il s'agit de l'URL de l'exemple de page web Flash TTP Player de votre serveur Unified Streaming. 5. Collez l'URL dans la barre d'adresse d'un navigateur et accédez au site web. 6. Copiez la valeur de la clé HDSManifest et collez-la dans le champ d'URL de l'exemple de page web. Dans l'exemple d'URL suivant, notez que media-file-path-excluding-bucketname-but-including-media-file-name est un texte littéral que vous remplacerez dans la prochaine étape : API Version 2016-01-13 343 Amazon CloudFront Guide du développeur Lecture d'un flux à la demande dans une application web test http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/media-file-path-excluding-bucket-name-butincluding-media-file-name/manifest 7. Dans le champ d'URL, remplacez media-file-path-excluding-bucket-name-butincluding-media-file-name par le chemin d'accès correct de la vidéo du compartiment Amazon S3 que vous voulez lire. Par exemple, si votre fichier multimédia se nomme nasa_msl_launch.mp4, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/nasa_msl_launch.mp4/manifest Si la vidéo se trouve dans le dossier space-videos de votre compartiment Amazon S3, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/space-videos/nasa_msl_launch.mp4/manifest Lire une vidéo à l'aide du protocole MPEG-DASH 1. Naviguez jusqu'à http://dashif.org/reference/players/javascript/index.html, qui est la liste des versions disponibles d'un client test MPEG-DASH. 2. Choisissez la version la plus récente du client Dash. 3. Sur la page Reference Client numéro de version, dans la liste Stream, choisissez un format de streaming. 4. Ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/ cloudformation/. 5. Dans la liste des piles AWS CloudFormation, choisissez celle correspondant au streaming HTTP à la demande. 6. Dans le volet inférieur de la console AWS CloudFormation, choisissez l'onglet Outputs. 7. Copiez la valeur de la clé MPEGDASHManifest et collez-la dans le champ manifest de la page Reference Client. Dans l'exemple d'URL suivant, notez que media-file-path-excludingbucket-name-but-including-media-file-name est un texte littéral que vous remplacerez dans la prochaine étape : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/media-file-path-excluding-bucket-name-butincluding-media-file-name/manifest 8. Dans le champ manifest, remplacez media-file-path-excluding-bucket-name-butincluding-media-file-name par le chemin d'accès correct de la vidéo du compartiment Amazon S3 que vous voulez lire. Par exemple, si votre fichier multimédia se nomme nasa_msl_launch.mp4, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/nasa_msl_launch.mp4/manifest Si la vidéo se trouve dans le dossier space-videos de votre compartiment Amazon S3, l'URL est la suivante : http://d111111abcdef8.cloudfront.net/unifiedhttpstreamingunifiedvods3bucket-123abc4/space-videos/nasa_msl_launch.mp4/manifest Suivant: Suppression d'une pile AWS CloudFormation et d'un compartiment Amazon S3 pour le streaming à la demande (p. 345) API Version 2016-01-13 344 Amazon CloudFront Guide du développeur Suppression d'une pile AWS CloudFormation et d'un compartiment Amazon S3 pour le streaming à la demande Suppression d'une pile AWS CloudFormation et d'un compartiment Amazon S3 pour le streaming à la demande Lorsque vous n'avez plus besoin d'utiliser cette configuration pour le streaming HTTP à la demande, supprimez la pile AWS CloudFormation. Cette action supprime la plupart des ressources AWS créées par AWS CloudFormation et interrompt la plupart des facturations AWS relatives aux ressources. De plus, si vous ne souhaitez pas conserver le compartiment Amazon S3 que vous utilisiez pour vos fichiers multimédias, supprimez le compartiment manuellement. AWS CloudFormation ne supprime pas le compartiment automatiquement au cas où vous auriez besoin de fichiers multimédias dans le compartiment. La suppression du compartiment arrête le reste de facturations AWS pour les ressources. Pour supprimer une pile AWS CloudFormation et un compartiment Amazon S3 pour le streaming à la demande 1. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. 2. Recherchez la pile AWS CloudFormation que vous avez créée pour le streaming à la demande et notez la date de création. Vous pourrez ainsi identifier le volume Amazon EBS que vous supprimerez plus tard au cours de cette procédure. 3. Sélectionnez la pile que vous voulez supprimer et choisissez Delete Stack. 4. Cliquez sur Yes, Delete pour confirmer. 5. Pour suivre l'avancement de la suppression de la pile, sélectionnez la pile et choisissez l'onglet Events dans le cadre inférieur. 6. Accédez à la console Amazon S3. 7. Choisissez le nom du compartiment. 8. Sur la page All Buckets / nom compartiment, supprimez vos fichiers. 9. Choisissez All Buckets. 10. Choisissez la ligne du compartiment, pas le nom du compartiment. 11. Dans le menu Actions , sélectionnez Delete. Questions fréquentes (FAQ) • Quel est le prix du streaming HTTP à la demande à l'aide de CloudFront et Unified Streaming ? (p. 345) • Comment utiliser Secure Shell (SSH) pour me connecter à mon instance Amazon EC2 qui exécute Unified Streaming ? (p. 346) • Comment créer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? (p. 347) • Puis-je diffuser mon fichier multimédia en plusieurs formats vers une grande variété d'appareils simultanément ? (p. 347) • Comment sécuriser mon contenu ? (p. 347) Quel est le prix du streaming HTTP à la demande à l'aide de CloudFront et Unified Streaming ? Lorsque vous utilisez Unified Streaming avec CloudFront, les frais suivants s'appliquent : API Version 2016-01-13 345 Amazon CloudFront Guide du développeur Questions fréquentes (FAQ) • Unified Streaming on Amazon EC2 : voir Unified Streaming on AWS Marketplace. • CloudFront : voir Tarification Amazon CloudFront. • Amazon S3 : voir Tarification Amazon Simple Storage Service. Aucun frais supplémentaire ne s'applique pour l'utilisation de AWS CloudFormation. Comment utiliser Secure Shell (SSH) pour me connecter à mon instance Amazon EC2 qui exécute Unified Streaming ? Note Par défaut, le port SSH de l'instance Amazon EC2 (port 22) est désactivé pour des raisons de sécurité. La procédure suivantes explique comment activer le port SSH et utiliser SSH pour vous connecter à votre instance Amazon EC2. Pour activer l'accès au port 22 de votre instance Amazon EC2 qui exécute Unified Streaming 1. Recherchez le nom du groupe de sécurité Amazon EC2 associé à votre instance Amazon EC2 : a. Connectez-vous à la AWS Management Console et ouvrez la console AWS CloudFormation à l'adresse https://console.aws.amazon.com/cloudformation/. b. Dans la liste Region, sélectionnez la région dans laquelle vous avez créé votre instance Amazon EC2. c. Cliquez sur la ligne de votre pile AWS CloudFormation. d. Dans le volet inférieur, choisissez l'onglet Resources. e. Dans la colonne de gauche de la table Stack Resources, recherchez la ligne pour laquelle la valeur est AMSOriginServerSecurityGroup. f. Pour cette ligne, notez la valeur de la colonne Physical ID. 2. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 3. Dans le volet de navigation, choisissez Security Groups. 4. Sur la page Security Groups, sélectionnez la ligne dans laquelle la colonne Name correspond à l'ID physique obtenu à l'étape 1f. 5. Dans le volet inférieur, choisissez l'onglet Inbound. 6. Pour Create a new rule, sélectionnez SSH. 7. Cliquez sur Add Rule. 8. Cliquez sur Apply Rule Changes. Pour utiliser SSH et se connecter à l'instance Amazon EC2 qui exécute Unified Streaming 1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/. 2. Dans le volet de navigation, choisissez Instances. 3. Cliquez avec le bouton droit sur l'instance appropriée et choisissez Connect pour afficher les instructions sur l'utilisation de SSH et vous connecter à votre instance Amazon EC2. Le nom utilisateur est ubuntu. API Version 2016-01-13 346 Amazon CloudFront Guide du développeur Documentation supplémentaire Comment créer un alias CNAME pour mon instance Amazon EC2 ou ma distribution CloudFront ? Votre instance Amazon EC2 qui exécute Unified Streaming possède un nom DNS interne et un nom DNS externe. Amazon EC2 ne permet pas de modifier ces paramètres DNS. Si vous souhaitez faire correspondre un nom de domaine existant et votre instance Amazon EC2 qui exécute Unified Streaming, utilisez un fournisseur de services DNS tel que Amazon Route 53. Lors de l'utilisation de votre propre nom de domaine, nous vous recommandons de créer un jeu d'enregistrements de ressource CNAME qui mappe votre nom de domaine au nom DNS externe de votre instance Amazon EC2. Si vous avez associé une adresse IP Elastic à votre instance Amazon EC2, vous pouvez créer un enregistrement A qui pointe vers l'adresse IP Elastic. Pour plus d'informations sur l'utilisation de votre propre nom de domaine avec votre distribution CloudFront, consultez Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Puis-je diffuser mon fichier multimédia en plusieurs formats vers une grande variété d'appareils simultanément ? Oui. Unified Streaming prend en charge la diffusion de contenu vers un large éventail d'appareils avec les protocoles suivants : • Adobe HTTP Dynamic Streaming (Adobe HDS) • Apple HTTP Live Streaming (Apple HLS) • Microsoft Smooth Streaming • MPEG-DASH Comment sécuriser mon contenu ? Unified Streaming prend en charge plusieurs modèles de gestion des droits numériques (DRM), de chiffrement (AES) et de protection basée sur les jetons. Pour plus d'informations sur DRM, consultez Unified Origin (DRM) sur le site web Unified Streaming. Pour obtenir la liste de didacticiels spécifiques sur les technologies, consultez les pages suivantes sur le site web Unified Streaming : • Adobe Access • BuyDRM PlayReady • EZDRM PlayReady • HTTP Live Streaming with AES Pour connaître les stratégies d'accès basées sur les jetons, consultez les pages suivantes sur le site web Unified Streaming : • Securing your video presentations with Nginx' HttpSecureLinkModule • Securing your video presentations with Apache's mod_auth_token Documentation supplémentaire Documentation Unified Streaming et autres ressources Le site Unified Streaming contient de nombreuses ressources, y compris les didacticiels expliquant comment configurer Unified Streaming, ainsi qu'une documentation approfondie des options. API Version 2016-01-13 347 Amazon CloudFront Guide du développeur Documentation supplémentaire • Documentation • Didacticiels • Questions fréquentes Documentation Amazon Web Services Les liens suivants vous conduisent à la documentation sur les services AWS utilisés dans ce didacticiel : • Documentation AWS CloudFormation • Documentation Amazon Elastic Compute Cloud • Documentation Amazon Simple Storage Service API Version 2016-01-13 348 Amazon CloudFront Guide du développeur Streaming de vidéos à la demande avec CloudFront et Adobe Flash Player Streaming de vidéos à la demande avec CloudFront et Adobe Flash Player Lorsque vous diffusez des fichiers multimédias avec CloudFront, vous fournissez à la fois vos fichiers multimédias et le lecteur multimédia que vous souhaitez voir employé par les utilisateurs finaux pour lire vos fichiers. Pour utiliser le lecteur Adobe Flash Player afin de lire les fichiers multimédias avec CloudFront, procédez comme indiqué dans les rubriques suivantes : 1. Création d'un compartiment Amazon S3 (p. 349) 2. Création de distributions CloudFront Web et RTMP (p. 350) 3. Création d'un projet Flash avec Adobe Flash Builder (p. 350) 4. Téléchargement de fichiers multimédias et Flash Builder dans un compartiment Amazon S3 (p. 352) 5. Lecture du fichier multimédia (p. 352) Ce didacticiel utilise Adobe Flash Builder version 4.6 pour générer les fichiers nécessaires pour diffuser une vidéo avec Adobe Flash Player. Pour plus d'informations sur Flash Builder, consultez la page Flash Builder du site web Adobe. Pour plus d'informations sur le téléchargement d'une version d'essai gratuite d'Adobe Flash Builder, consultez la page Downloads/Adobe Flash Builder 4.6. Pour obtenir la liste des codecs que Flash Player prend en charge, accédez à la page Codecs pris en charge | Flash Player du site web Adobe. Pour plus d'informations sur le streaming multimédia avec CloudFront, consultez Utilisation des distributions RTMP (p. 87). Création d'un compartiment Amazon S3 Vous pouvez placer vos fichiers multimédias et JW Player dans le même compartiment Amazon S3 ou dans deux différents. Pour ce didacticiel, vous allez créer un compartiment pour un fichier multimédia et les fichiers du lecteur multimédia Flash Player. Vous chargerez ces fichiers plus tard dans le processus, après avoir créé les fichiers Adobe Flash Player. Pour créer un compartiment Amazon S3 1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/. 2. Dans la console Amazon S3, choisissez Create Bucket. 3. Dans la boîte de dialogue Create Bucket, indiquez un nom de compartiment. Important Pour que votre compartiment fonctionne avec CloudFront, le nom doit être conforme aux exigences DNS en la matière. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. 4. Sélectionnez une région pour votre compartiment. Par défaut, Amazon S3 crée des compartiments dans la région US Standard. Nous vous recommandons de choisir une région proche de vous pour optimiser la latence, réduire les coûts ou répondre aux exigences juridiques. 5. Sélectionnez Create. API Version 2016-01-13 349 Amazon CloudFront Guide du développeur Création de distributions CloudFront Web et RTMP Création de distributions CloudFront Web et RTMP Pour configurer CloudFront afin de diffuser un fichier multimédia, vous avez besoin d'une distribution RTMP CloudFront. Pour ce didacticiel, vous allez créer également une distribution web CloudFront pour accéder au fichier .hlml qu'Adobe Flash Builder crée. Exécutez les deux procédures suivantes. Pour créer une distribution web CloudFront 1. Ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez Create Distribution. 3. Sur la première page de l'Assistant Create Distribution Wizard, dans la section Web, choisissez Get Started. 4. Sur la deuxième page de cet assistant, choisissez le champ Origin Domain Name et sélectionnez le compartiment Amazon S3 créé lors de la procédure Pour créer un compartiment Amazon S3 (p. 349). Si vous disposez de beaucoup de compartiments Amazon S3, vous pouvez taper les premiers caractères du nom de compartiment afin de filtrer la liste. 5. Acceptez les valeurs par défaut des champs restants, puis choisissez Create Distribution. 6. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Cela devrait prendre moins de 15 minutes. Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. (Elle apparaît aussi sous l'onglet General d'une distribution sélectionnée.) Pour créer une distribution RTMP CloudFront 1. Dans la console CloudFront, choisissez Create Distribution. 2. Dans l'Assistant Create Distribution Wizard, dans la section RTMP, choisissez Get Started. 3. Sur la deuxième page de cet assistant, choisissez le champ Origin Domain Name et sélectionnez le compartiment Amazon S3 créé lors de la procédure Pour créer un compartiment Amazon S3 (p. 349). Si vous disposez de beaucoup de compartiments Amazon S3, vous pouvez taper les premiers caractères du nom de compartiment afin de filtrer la liste. 4. Acceptez les valeurs par défaut des champs restants de la page Create Distribution, puis choisissez Create Distribution. 5. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Cela devrait prendre moins de 15 minutes. Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. Le nom de domaine apparaît aussi sous l'onglet General d'une distribution sélectionnée. Création d'un projet Flash avec Adobe Flash Builder Vous pouvez utiliser Adobe Flash Builder pour créer automatiquement un projet Flash, qui contient tous les fichiers nécessaires pour lire un fichier multimédia avec Adobe Flash. Pour créer un projet Flash avec Adobe Flash Builder 1. Démarrez Adobe Flash Builder. 2. Dans le menu File de Flash Builder, choisissez New > Flex Project. 3. Entrez les valeurs suivantes : API Version 2016-01-13 350 Amazon CloudFront Guide du développeur Création d'un projet Flash avec Adobe Flash Builder • Project name : entrez un nom pour votre projet ; par exemple, CloudFrontStreaming. • Folder : spécifiez à quel emplacement vous voulez que Flash Builder enregistre les fichiers de ce projet. Si vous ne voulez pas utiliser l'emplacement par défaut, décochez la case Use default location et choisissez un autre emplacement. Notez l'emplacement, car vous en aurez besoin ultérieurement dans le processus. • Application type : acceptez la valeur par défaut, Web. • Flex SDK version : acceptez la valeur par défaut, Use default SDK. 4. Pour créer le projet, choisissez Finish. Après que Flash Builder a créé le projet, un nouvel onglet ayant le même nom que votre projet s'affiche dans l'interface utilisateur de Flash Builder. Le bouton Source de l'onglet <project-name> est sélectionné et la page Source contient plusieurs lignes de code XML. 5. Supprimez le code XML par défaut sur la page Source. 6. Copiez le code XML suivant et collez-le dans la page vide Source d'Adobe Flash Builder. <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- Place non-visual elements here, for example, services and value objects --> </fx:Declarations> <fx:Script> <![CDATA[ import mx.events.FlexEvent; import org.osmf.net.StreamingURLResource; import org.osmf.net.FMSURL; protected function vp_preinitializeHandler(event:FlexEvent): void { var myURL:StreamingURLResource = new StreamingURLResource("rtmp://RTMP-DISTRIBUTION-DOMAIN-NAME/cfx/st/ mp4:VIDEO-FILE-NAME-WITHOUT-EXTENSION"); myURL.urlIncludesFMSApplicationInstance = true; myVideoPlayer.source = myURL; } ]]> </fx:Script> <s:VideoPlayer id="myVideoPlayer" autoPlay="true" preinitialize="vp_preinitializeHandler(event)" x="32" y="52"/> </s:Application> 7. Dans le code XML que vous avez collé dans la page Source, remplacez les valeurs suivantes : • Remplacez RTMP-DISTRIBUTION-DOMAIN-NAME par le nom de domaine CloudFront de votre distribution RTMP ; par exemple, s5c39gqb8ow64r.cloudfront.net. • Remplacez VIDEO-FILE-NAME-WITHOUT-EXTENSION par le nom de votre fichier vidéo, mais excluez l'extension de nom de fichier. Par exemple, si le nom de votre vidéo est myvacation.mp4, entrez uniquement my-vacation. 8. Enregistrez vos modifications. 9. Dans le menu Project de Flash Builder, choisissez Export Release Build. 10. Dans la boîte de dialogue Export Release Build, acceptez toutes les valeurs par défaut et choisissez Finish. API Version 2016-01-13 351 Amazon CloudFront Guide du développeur Téléchargement de fichiers multimédias et Flash Builder dans un compartiment Amazon S3 Flash Builder crée les fichiers de votre projet et les enregistre à l'emplacement que vous avez spécifié à l'étape 3. Téléchargement de fichiers multimédias et Flash Builder dans un compartiment Amazon S3 Lorsque vous utilisez Adobe Flash Builder pour générer les fichiers pour le streaming multimédia, vous chargez ces derniers et les fichiers Flash Builder dans le même compartiment Amazon S3. Pour charger les fichiers multimédias et Flash Builder dans un compartiment Amazon S3 1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/. 2. Dans le volet Buckets, sélectionnez votre compartiment et choisissez Upload. 3. Sur la page Upload - Select Files, choisissez Add Files et ajoutez les fichiers suivants : • Votre fichier multimédia • Les fichiers générés par Flash Builder lorsque vous avez exécuté la procédure Pour créer un projet Flash avec Adobe Flash Builder (p. 350). Chargez uniquement les fichiers dans le répertoire bin-release. Vous pouvez exclure les fichiers du répertoire bin-release/ history. 4. 5. Octroyez des autorisations de lecture publique aux fichiers ajoutés à l'étape précédente. a. Choisissez Set Details. b. c. Dans la page Set Details, choisissez Set Permissions. Dans la page Set Permissions, choisissez Make everything public. Cliquez sur Start Upload. Lecture du fichier multimédia Pour lire le fichier multimédia, vous affichez le fichier HTML que Flash Builder a créé pour votre projet et que vous avez chargé dans votre compartiment Amazon S3. Pour lire le fichier multimédia 1. Entrez l'URL CloudFront du fichier HTML que Flash Builder a créé pour votre projet en concaténant les valeurs suivantes : http://domain-name-for-your-CloudFront-distribution/HTML-file-name Exemples : http://d111111abcdef8.cloudfront.net/CloudFrontStreaming.html 2. Dans le lecteur vidéo, sélectionnez le bouton fléché. La lecture de la vidéo doit commencer. API Version 2016-01-13 352 Amazon CloudFront Guide du développeur Streaming de vidéos à la demande avec CloudFront et Flowplayer pour Adobe Flash Player Streaming de vidéos à la demande avec CloudFront et Flowplayer pour Adobe Flash Player Lorsque vous diffusez des fichiers multimédias avec CloudFront, vous fournissez à la fois vos fichiers multimédias et le lecteur multimédia que vous souhaitez voir employé par les utilisateurs finaux pour lire vos fichiers. Pour utiliser le lecteur multimédia Flowplayer pour Adobe Flash afin de diffuser les fichiers multimédias avec CloudFront, exécutez les procédures des rubriques suivantes : 1. Chargement de fichiers multimédias et fichiers Flowplayer sur un compartiment Amazon S3 (p. 353) 2. 3. Création de distributions CloudFront Web et RTMP (p. 354) Intégration d'une vidéo dans une page HTML (p. 355) Note Pour diffuser de la vidéo avec CloudFront et Flowplayer pour Adobe Flash, vos utilisateurs doivent activer Javascript dans leurs navigateurs. Ce didacticiel est basé sur la version 3.2.12 de Flowplayer pour Adobe Flash. Pour plus d'informations sur Flowplayer Flash, consultez le site web Flash Builder. Pour obtenir la liste des formats vidéo que Flowplayer Flash prend en charge, consultez Video formats dans la documentation Flowplayer relative à l'environnement de développement Flowplayer. Note Flowplayer a publié une version HTML 5 de son lecteur multimédia. Les procédures suivantes ne fonctionnent qu'avec Flowplayer Flash, pas avec Flowplayer HTML5. Pour plus d'informations sur le streaming multimédia avec CloudFront, consultez Utilisation des distributions RTMP (p. 87). Chargement de fichiers multimédias et fichiers Flowplayer sur un compartiment Amazon S3 Vous pouvez placer vos fichiers multimédias et JW Player dans le même compartiment Amazon S3 ou dans deux différents. Pour ce didacticiel, vous chargez un fichier multimédia .mp4 et les fichiers du lecteur multimédia Flowplayer sur le même compartiment. Pour charger les fichiers multimédias et les fichiers Flowplayer sur un compartiment Amazon S3 1. 2. 3. Téléchargez les fichiers suivants depuis le site web Flowplayer : • Lecteur multimédia Flowplayer. Après que vous avez téléchargé Flowplayer, extrayez le contenu du fichier .zip. • flowplayer.rtmp-3.2.10.swf. Plug-in qui permet à Flowplayer de diffuser de la vidéo à l'aide du protocole RTMP. Le fichier est disponible sur la page RTMP du site web Flowplayer. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/. Dans la console Amazon S3, choisissez Create Bucket. API Version 2016-01-13 353 Amazon CloudFront Guide du développeur Création de distributions CloudFront Web et RTMP 4. Dans la boîte de dialogue Create Bucket, indiquez un nom de compartiment. Important Pour que votre compartiment fonctionne avec CloudFront, le nom doit être conforme aux exigences DNS en la matière. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. 5. Sélectionnez une région pour votre compartiment. Par défaut, Amazon S3 crée des compartiments dans la région US Standard. Nous vous recommandons de choisir une région proche de vous pour optimiser la latence, réduire les coûts ou répondre aux exigences juridiques. 6. Sélectionnez Create. 7. Sélectionnez votre compartiment dans le volet Buckets, puis choisissez Upload. 8. Sur la page Upload - Select Files, choisissez Add Files et ajoutez les fichiers suivants (les numéros de version Flowplayer de vos fichiers peuvent être différents) : • flowplayer.controls-3.2.12.swf • flowplayer-3.2.11.min.js • flowplayer-3.2.12.swf • flowplayer.rtmp-3.2.10.swf • votre fichier multimédia au format .mp4 9. Octroyez des autorisations de lecture publique aux fichiers ajoutés à l'étape précédente. a. Choisissez Set Details. b. Dans la page Set Details, choisissez Set Permissions. c. Dans la page Set Permissions, choisissez Make everything public. 10. Cliquez sur Start Upload. Création de distributions CloudFront Web et RTMP Pour configurer CloudFront afin de diffuser un fichier multimédia, il vous faut une distribution web pour les fichiers Flowplayer et une distribution RTMP pour le fichier multimédia. Suivez les deux procédures ci-dessous pour créer une distribution Web et une distribution RTMP. Pour créer une distribution web CloudFront pour les fichiers Flowplayer 1. Ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez Create Distribution. 3. Sur la première page de l'Assistant Create Distribution Wizard, dans la section Web, choisissez Get Started. 4. Sur la deuxième page de cet assistant, choisissez le champ Origin Domain Name et sélectionnez le compartiment Amazon S3 créé lors de la procédure Pour charger les fichiers multimédias et les fichiers Flowplayer sur un compartiment Amazon S3 (p. 353). Si vous disposez de beaucoup de compartiments Amazon S3, vous pouvez taper les premiers caractères du nom de compartiment afin de filtrer la liste. 5. Acceptez les valeurs par défaut des champs restants, puis choisissez Create Distribution. 6. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Cela devrait prendre moins de 15 minutes. API Version 2016-01-13 354 Amazon CloudFront Guide du développeur Intégration d'une vidéo dans une page HTML Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. (Elle apparaît aussi sous l'onglet General d'une distribution sélectionnée.) Pour créer une distribution CloudFront RTMP pour votre fichier multimédia 1. Dans la console CloudFront, choisissez Create Distribution. 2. Dans l'Assistant Create Distribution Wizard, dans la section RTMP, choisissez Get Started. 3. Sur la deuxième page de cet assistant, choisissez le champ Origin Domain Name et sélectionnez le compartiment Amazon S3 créé lors de la procédure Pour charger les fichiers multimédias et les fichiers Flowplayer sur un compartiment Amazon S3 (p. 353). Si vous disposez de beaucoup de compartiments Amazon S3, vous pouvez taper les premiers caractères du nom de compartiment afin de filtrer la liste. 4. Acceptez les valeurs par défaut des champs restants de la page Create Distribution, puis choisissez Create Distribution. 5. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Cela devrait prendre moins de 15 minutes. Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. Le nom de domaine apparaît aussi sous l'onglet General d'une distribution sélectionnée. Intégration d'une vidéo dans une page HTML L'exemple de fichier HTML suivant illustre comment diffuser une vidéo avec les distributions web et RTMP créées dans Création de distributions CloudFront Web et RTMP (p. 354). Pour utiliser cet exemple afin de diffuser la vidéo, exécutez les étapes suivantes : 1. Copiez le code HTML au-dessous et collez-le dans un éditeur de texte. 2. Consultez les commentaires dans le fichier HTML, et remplacez les espaces suivants par les valeurs correspondantes : • WEB-DISTRIBUTION-DOMAIN-NAME • VIDEO-FILE-NAME • RTMP-DISTRIBUTION-DOMAIN-NAME 3. Enregistrez le fichier avec une extension .html, comme par exemple flowplayerexample.html. 4. Ouvrez le fichier .html dans un navigateur web et lisez votre vidéo. <HTML> <HEAD> <TITLE>Amazon CloudFront Streaming with Flowplayer</TITLE> </HEAD> <BODY> <H1>This video is streamed by CloudFront and played in Flowplayer.</H1> <!-- This HTML file plays an MP4 media file using Flowplayer. Replace all instances of WEB-DISTRIBUTION-DOMAIN-NAME with the domain name of your CloudFront web distribution, for example, d111111abcdef8.cloudfront.net (begins with "d"). API Version 2016-01-13 355 Amazon CloudFront Guide du développeur Intégration d'une vidéo dans une page HTML Update the version number that appears in the flowplayer-version filenames with the version number of the files that you downloaded from the Flowplayer website. The files may not have the same version number. Ensure that URLs don't contain any spaces. --> <!-- Call the Flowplayer JavaScript file. --> <script src="http://WEB-DISTRIBUTION-DOMAIN-NAME/flowplayer-3.2.11.min.js"></ script> <!-- Style section. Specify the attributes of the player such as height, width, color, and so on. --> <style> a.rtmp { display:block; width:720px; height:480px; margin:25px 0; text-align:center; background-color:black; } </style> <!-- Replace VIDEO-FILE-NAME with the name of your .mp4 video file, excluding the .mp4 filename extension. For example, if you uploaded a file called my-vacation-video.mp4, enter my-vacation-video. If you're streaming an .flv file, use the following format: <a class="rtmp" href="VIDEO-FILE-NAME"/> --> <a class="rtmp" href="mp4:VIDEO-FILE-NAME"/> <script type="text/javascript"> $f("a.rtmp", "http://WEB-DISTRIBUTION-DOMAIN-NAME/flowplayer-3.2.12.swf", { // Configure Flowplayer to use the RTMP plugin for streaming. clip: { provider: 'rtmp' }, // Specify the location of the RTMP plugin. plugins: { rtmp: { url: 'http://WEB-DISTRIBUTION-DOMAIN-NAME/ flowplayer.rtmp-3.2.10.swf', // Replace RTMP-DISTRIBUTION-DOMAIN-NAME with the domain name of your // CloudFront RTMP distribution, for example, s5c39gqb8ow64r.cloudfront.net. netConnectionUrl: 'rtmp://RTMP-DISTRIBUTION-DOMAIN-NAME/cfx/st' } } }); </script> API Version 2016-01-13 356 Amazon CloudFront Guide du développeur Intégration d'une vidéo dans une page HTML </BODY> </HTML> API Version 2016-01-13 357 Amazon CloudFront Guide du développeur Streaming de vidéos à la demande avec CloudFront et JW Player Streaming de vidéos à la demande avec CloudFront et JW Player Lorsque vous diffusez des fichiers multimédias avec CloudFront, vous fournissez à la fois vos fichiers multimédias et le lecteur multimédia que vous souhaitez voir employé par les utilisateurs finaux pour lire vos fichiers. Pour utiliser le lecteur JW Player afin de lire les fichiers multimédias avec CloudFront, procédez comme indiqué dans les rubriques suivantes : 1. Téléchargement de fichiers multimédias et JW Player dans un compartiment Amazon S3 (p. 358) 2. Création de distributions CloudFront Web et RTMP (p. 359) 3. Intégration d'une vidéo dans une page Web (p. 360) 4. Téléchargement du fichier HTML et lecture de la vidéo (p. 361) Ce didacticiel est basé sur l'édition gratuite de JW Player version 7.3. Pour plus de détails sur JW Player, consultez le site Web de JW Player. Pour plus d'informations sur le streaming multimédia avec CloudFront, consultez Utilisation des distributions RTMP (p. 87). Téléchargement de fichiers multimédias et JW Player dans un compartiment Amazon S3 Vous pouvez placer vos fichiers multimédias et JW Player dans le même compartiment Amazon S3 ou dans deux différents. Pour ce didacticiel, vous téléchargerez un fichier multimédia .mp4 ou .flv ainsi que les fichiers de lecteur multimédia JW Player dans le même compartiment. Pour télécharger des fichiers multimédias et JW Player dans un compartiment Amazon S3 1. Si vous n'avez pas déjà les fichiers du lecteur JW Player, téléchargez ce lecteur (JW Player 7) à partir de la page Downloads du site Web de JW Player. Extrayez ensuite le contenu du fichier .zip. 2. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/. 3. Dans la console Amazon S3, choisissez Create Bucket. 4. Dans la boîte de dialogue Create Bucket, indiquez un nom de compartiment. Important Pour que votre compartiment fonctionne avec CloudFront, le nom doit être conforme aux exigences DNS en la matière. Pour plus d'informations, consultez Limites et restrictions applicables aux compartiments dans le manuel Amazon Simple Storage Service Manuel du développeur. 5. Sélectionnez une région pour votre compartiment. Par défaut, Amazon S3 crée des compartiments dans la région US Standard. Nous vous recommandons de choisir une région proche de vous pour optimiser la latence, réduire les coûts ou répondre aux exigences juridiques. 6. Sélectionnez Create. 7. Sélectionnez votre compartiment dans le volet Buckets, puis choisissez Upload. 8. Sur la page Upload - Select Files, choisissez Add Files et ajoutez les fichiers suivants : • jwplayer.flash.swf • jwplayer.js API Version 2016-01-13 358 Amazon CloudFront Guide du développeur Création de distributions CloudFront Web et RTMP • votre fichier multimédia .mp4 ou .flv 9. Octroyez des autorisations de lecture publique aux fichiers ajoutés à l'étape précédente. a. Choisissez Set Details. b. Dans la page Set Details, choisissez Set Permissions. c. Dans la page Set Permissions, choisissez Make everything public. 10. Cliquez sur Start Upload. Création de distributions CloudFront Web et RTMP Pour configurer CloudFront afin de diffuser un fichier multimédia, il vous faut une distribution Web CloudFront pour les fichiers JW Player et le fichier HTML, et une distribution RTMP pour le fichier multimédia. Suivez les deux procédures ci-dessous pour créer une distribution Web et une distribution RTMP. Pour créer une distribution CloudFront Web pour vos fichiers JW Player 1. Ouvrez la console CloudFront à l'adresse https://console.aws.amazon.com/cloudfront/. 2. Choisissez Create Distribution. 3. Sur la première page de l'Assistant Create Distribution Wizard, dans la section Web, choisissez Get Started. 4. Sur la deuxième page de cet assistant, choisissez le champ Origin Domain Name et sélectionnez le compartiment Amazon S3 créé lors de la procédure Pour télécharger des fichiers multimédias et JW Player dans un compartiment Amazon S3 (p. 358). Si vous disposez de beaucoup de compartiments Amazon S3, vous pouvez taper les premiers caractères du nom de compartiment afin de filtrer la liste. 5. Acceptez les valeurs par défaut des champs restants, puis choisissez Create Distribution. 6. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Cela devrait prendre moins de 15 minutes. Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. Le nom de domaine apparaît également dans la page Distribution Settings d'une distribution sélectionnée.) Pour créer une distribution CloudFront RTMP pour votre fichier multimédia 1. Dans la console CloudFront, choisissez Create Distribution. 2. Dans l'Assistant Create Distribution Wizard, dans la section RTMP, choisissez Get Started. 3. Sur la deuxième page de cet assistant, choisissez le champ Origin Domain Name et sélectionnez le compartiment Amazon S3 créé lors de la procédure Pour télécharger des fichiers multimédias et JW Player dans un compartiment Amazon S3 (p. 358). Si vous disposez de beaucoup de compartiments Amazon S3, vous pouvez taper les premiers caractères du nom de compartiment afin de filtrer la liste. 4. Acceptez les valeurs par défaut des champs restants de la page Create Distribution, puis choisissez Create Distribution. 5. Une fois votre distribution créée par CloudFront, la valeur de la colonne Status de la distribution passe de InProgress à Deployed. Cela devrait prendre moins de 15 minutes. API Version 2016-01-13 359 Amazon CloudFront Guide du développeur Intégration d'une vidéo dans une page Web Le nom de domaine assigné par CloudFront à votre distribution apparaît dans la liste des distributions. Le nom de domaine apparaît également dans la page Distribution Settings d'une distribution sélectionnée. Intégration d'une vidéo dans une page Web L'exemple suivant illustre comment intégrer une vidéo dans une page Web avec les distributions Web et RTMP créés dans Création de distributions CloudFront Web et RTMP (p. 359). Procédez comme suit : 1. Connectez-vous au site Web JW Player. Si vous n'avez pas encore de compte JW Player, créezen un. 2. Sur la page Downloads, recherchez la clé de licence pour le lecteur que vous avez téléchargé précédemment. 3. Copiez le code HTML au-dessous et collez-le dans un éditeur de texte. 4. Consultez les commentaires dans le fichier HTML, et remplacez les espaces suivants par les valeurs correspondantes : • WEB-DISTRIBUTION-DOMAIN-NAME • RTMP-DISTRIBUTION-DOMAIN-NAME • VIDEO-FILE-NAME • LICENSE-KEY 5. Enregistrez le fichier avec une extension .html, comme par exemple jwplayer-example.html. <HTML> <HEAD> <TITLE>Amazon CloudFront Streaming with JW Player 7</TITLE> <!-- Call the JW Player JavaScript file, jwplayer.js. Replace WEB-DISTRIBUTION-DOMAIN-NAME with the domain name of your CloudFront web distribution, for example, d1234.cloudfront.net (begins with "d"). This causes a browser to download the JW Player file before streaming begins. Replace LICENSE-KEY with your personal license key from JW Player. --> <script type='text/javascript' src='WEB-DISTRIBUTION-NAME/jwplayer.js'></ script> <script type='text/javascript' src='WEB-DISTRIBUTION-NAME/ jwplayer.flash.swf'></script> <script>jwplayer.key="LICENSE-KEY";</script> </HEAD> <BODY> <H1>This video is streamed by CloudFront and played by JW Player 7.</H1> <!-- Replace RTMP-DISTRIBUTION-DOMAIN-NAME with the domain name of your RTMP distribution, for example, s5678.cloudfront.net (begins with "s"). Replace VIDEO-FILE-NAME with the name of your .mp4 or .flv video file, API Version 2016-01-13 360 Amazon CloudFront Guide du développeur Téléchargement du fichier HTML et lecture de la vidéo including the .mp4 or .flv filename extension. For example, if you uploaded my-vacation.mp4, enter my-vacation.mp4. You might need to prepend "mp4:" to the name of your video file, for example, mp4:my-vacation.mp4. If the file is in a subdirectory, include the subdirectory name just before the file name, for example: "rtmp://RTMP-DISTRIBUTION-DOMAIN-NAME/cfx/st/sample-directory/VIDEO-FILENAME" --> <div id="my-video"></div> <script type="text/javascript"> jwplayer("my-video").setup({ file: "rtmp://RTMP-DISTRIBUTION-DOMAIN-NAME/cfx/st/VIDEO-FILE-NAME", width: "720", height: "480", primary: "flash" }); </script> </BODY> </HTML> Téléchargement du fichier HTML et lecture de la vidéo Pour lire la vidéo avec le fichier HTML créé dans Intégration d'une vidéo dans une page Web (p. 360), téléchargez le fichier dans votre compartiment Amazon S3 et utilisez l'URL pour votre distribution CloudFront. Pour télécharger le fichier HTML et lire la vidéo 1. Ouvrez la console Amazon S3 à l'adresse &url-console-domain;s3/. 2. 3. 4. Sélectionnez votre compartiment et choisissez Upload. Sur la page Upload - Select Files, choisissez Add Files et ajoutez votre ficher HTML. Octroyez des autorisations de lecture publique au fichier HTML ajouté à l'étape précédente. a. b. c. 5. 6. Choisissez Set Details. Dans la page Set Details, choisissez Set Permissions. Dans la page Set Permissions, choisissez Make everything public. Cliquez sur Start Upload. Pour lire la vidéo, entrez l'URL suivante dans un navigateur : http://domain name of your CloudFront web distribution/your HTML file name API Version 2016-01-13 361 Amazon CloudFront Guide du développeur Restrictions Les entités CloudFront sont soumises aux limites suivantes. Entité Limite Débit de transfert des données par distribution 10 Gb/s Demander une limite plus haute Demandes par seconde par distribution 15 000 USD Demander une limite plus haute Distributions Web par compte AWS 200 Pour de plus amples informations, veuillez consulter Utilisation des distributions web (p. 54). Demander une limite plus haute Distributions RTMP par compte AWS 100 Pour de plus amples informations, veuillez consulter Utilisation des distributions RTMP (p. 87). Demander une limite plus haute Noms de domaine alternatifs (CNAME) par distribution 100 Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs (CNAME) (p. 45). Demander une limite plus haute Origines par distribution 25 Demander une limite plus haute Comportements de cache par distribution 25 Demander une limite plus haute En-têtes sur la liste blanche par comportement de cache 10 Demander une limite plus haute API Version 2016-01-13 362 Amazon CloudFront Guide du développeur Entité Limite Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). Cookies sur la liste blanche par comportement de cache 10 Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Demander une limite plus haute Nombre total d'octets dans les noms de cookie sur liste blanche (ne s'applique pas si vous configurez CloudFront afin de transmettre tous les cookies à l'origine) 512 moins le nombre de cookies sur liste blanche. En-têtes personnalisés : nombre maximal d'en-têtes personnalisés dont vous pouvez configurer CloudFront pour transmettre à l'origine 10 paires nom/valeur Pour de plus amples informations, veuillez consulter Transfert d'en-têtes personnalisés vers votre origine (distributions Web uniquement) (p. 114). Demander une limite plus haute En-têtes personnalisés : longueur maximale d'un nom d'en-tête 256 caractères En-têtes personnalisés : longueur maximale d'une valeur d'en-tête 2 048 caractères En-têtes personnalisés : longueur maximale de tous les noms et valeurs d'en-tête combinés 10 240 caractères Certificats SSL par compte AWS lors du traitement des requêtes HTTPS à l'aide d'adresses IP dédiées (pas de limite lors du traitement des requêtes HTTPS à l'aide de SNI) 2 Pour de plus amples informations, veuillez consulter Utilisation d'une connexion HTTPS pour accéder à vos objets (p. 237). Demander une limite plus haute Certificats SSL qui peuvent être associés à une distribution Web CloudFront 1 Balises qui peuvent être ajoutées à une distribution Web ou RTMP CloudFront 50 Objets que vous pouvez servir par distribution Illimité Taille de fichier maximale pour les requêtes HTTP GET, POST et PUT 20 Go Longueur maximale d'une demande, en-têtes et chaînes de requête inclus 20 480 octets Longueur maximale d'une URL 8 192 octets Compression de fichier : plage des tailles de fichier que CloudFront compresse 1 000 à 10 000 000 octets Pour de plus amples informations, veuillez consulter Service de fichiers compressés (p. 139). Invalidation d'objet : nombre maximal d'objets autorisés dans les demandes d'invalidation actives, à l'exclusion des invalidations de caractère générique Pour de plus amples informations, veuillez consulter Invalider des objets (distributions Web uniquement) (p. 125). API Version 2016-01-13 363 3 000 Amazon CloudFront Guide du développeur Entité Limite Invalidation d'objet : nombre maximal d'invalidations de caractère générique actives autorisées 15 Invalidation d'objet : nombre maximal d'objets qu'une invalidation de caractère générique peut traiter Illimité API Version 2016-01-13 364 Amazon CloudFront Guide du développeur Documentation supplémentaire Amazon CloudFront Ressources Amazon CloudFront Bien que ce service soit d'une utilisation assez simple, CloudFront possède de nombreuses fonctionnalités. Les ressources indiquées ici peuvent vous aider à en savoir plus sur CloudFront. Rubriques • Documentation supplémentaire Amazon CloudFront (p. 365) • Obtention de support (p. 366) • Outils et kits de développement CloudFront (p. 366) • Utilisation de la journalisation CloudFront (p. 366) • Conseils supplémentaires du blog d'Amazon Web Services (p. 366) • Invalidation d'objets (p. 367) • Distribution de fichiers multimédias de streaming (p. 367) • Outils et exemples de codes pour la configuration de contenu privé (p. 367) • Utilisation de CloudFront avec un système de gestion de contenu (p. 368) Documentation supplémentaire Amazon CloudFront Les ressources connexes suivantes peuvent s'avérer utiles lors de l'utilisation de ce service. • Amazon CloudFront API Reference – Fournit une description complète des actions, paramètres et types de données API, ainsi qu'une liste des erreurs renvoyées par le service. • Historique du document (p. 370) – Présentation de haut niveau des versions précédentes et actuelles avec une attention spéciale portée aux nouvelles fonctions, aux corrections, aux problèmes connus et aux améliorations de la documentation. • Technical documentation for the Amazon Simple Storage Service (S3) – Informations détaillées sur le service Amazon S3, y compris les bases du démarrage, une présentation du service, une référence de programmation et une référence API. • Amazon CloudFront product information – Page Web principale pour toutes les informations sur CloudFront, y compris celles sur les fonctions et la tarification. • Terms of Use – Informations détaillées sur nos copyrights et marque de commerce, sur votre compte, votre licence et votre accès au site, ainsi que sur d'autres sujets. API Version 2016-01-13 365 Amazon CloudFront Guide du développeur Obtention de support Obtention de support Le support pour CloudFront est disponible sous diverses formes. • Forums de discussion – Un forum communautaire qui permet aux développeurs d'échanger à propos de questions techniques liées à CloudFront. • Centre AWS Support – Ce site regroupe les informations sur vos dossiers de support récents et les résultats d'AWS Trusted Advisor ainsi que des vérifications d'état. Il fournit également des liens vers les forums de discussion, les foires aux questions techniques, le tableau de bord de l'état des services et les informations sur les plans de support AWS. • Informations sur AWS Premium Support – La page Web de présentation d'AWS Premium Support représente un canal d'assistance individuelle rapide visant à vous permettre de construire et d'exécuter facilement vos applications sur les services d'infrastructure AWS. • Contactez-nous – Liens pour les questions sur votre compte ou votre facturation. Pour les questions techniques, veuillez utiliser les forums de discussion ou les liens de support ci-dessus. Outils et kits de développement CloudFront Consultez la page Developer Tools pour les liens vers des outils de développement et les ressources qui fournissent une documentation, des exemples de code, des notes de mises à jour et d'autres informations pour vous aider à développer des applications innovantes avec AWS. Amazon Web Services fournit également des kits de développement logiciel pour accéder à CloudFront par programmation. Ces bibliothèques SDK automatisent diverses tâches courantes, telles que la signature cryptographique de vos demandes de service, les nouvelles tentatives de demandes et la gestion des réponses d'erreur. • Kit AWS SDK pour Java – Configuration et documentation supplémentaire • Kit AWS SDK pour .NET – Configuration et documentation supplémentaire • Kit AWS SDK pour PHP – Configuration et documentation supplémentaire • Kit AWS SDK pour Ruby – Configuration et documentation supplémentaire Utilisation de la journalisation CloudFront Les billets de blogs AWS suivants abordent les améliorations de la journalisation CloudFront ainsi que certaines manières d'analyser les journaux d'accès. • Blog AWS – Amazon CloudFront Request Logging (pour le contenu fourni via HTTP) • Blog AWS – Amazon CloudFront Now Supports Streaming Access Logs (pour le contenu fourni via RTMP) • Blog AWS – Enhanced CloudFront Logs, Now With Query Strings Conseils supplémentaires du blog d'Amazon Web Services Le blog AWS contient divers billets pour vous aider à utiliser CloudFront : • Amélioration des performances des sites Web – Improving Global Application Performance API Version 2016-01-13 366 Amazon CloudFront Guide du développeur Invalidation d'objets • Création de connexions sécurisées avec HTTPS – Amazon CloudFront: HTTPS Access, Another Edge Location, Price Reduction • Utilisation d'origines personnalisées – New Amazon CloudFront Feature: Custom Origins • Davantage d'informations sur les outils fournis par des tiers pour Amazon CloudFront – CloudFront Management Tool Roundup Invalidation d'objets En plus des méthodes d'invalidation fournies par CloudFront, vous pouvez utiliser les outils suivants fournis par des tiers pour invalider des objets. Note Ces outils ont été développés par des tiers qui ne sont pas associés à Amazon Web Services. Pour plus de détails sur leur utilisation, veuillez consulter la documentation du fournisseur ou le contacter directement. • CloudBuddy Personal – http://m1.mycloudbuddy.com/index.html • CloudBerry Explorer – http://cloudberrylab.com • Ylastic – http://ylastic.com • Cyberduck – http://cyberduck.ch • Bucket Explorer – http://www.bucketexplorer.com • CloudFront Invalidator – http://www.swook.net/p/cloudfront-invalidator.html • CDN Planet CloudFront Purge Tool – http://www.cdnplanet.com/tools/cloudfront-purge-tool/ Vous pouvez également rechercher des exemples de codes sur Github, https://github.com. Procédez à une recherche avec les termes CloudFront invalidation. Distribution de fichiers multimédias de streaming Les tiers suivants fournissent des informations supplémentaires sur la distribution des fichiers multimédias de streaming. • StreamingMedia.com – How To Get Started With Amazon CloudFront Streaming • Ioncannon.net – • iPhone Windowed HTTP Live Streaming Using Amazon S3 and CloudFront Proof of Concept • Segmenteur et distributeur diffusion vidéo HTTP en continu • Serveur de diffusion en continu HTTP sous fenêtre iPhone • Flowplayer.org – Bandwidth detection: Make sure you reach your entire audience with good quality • JW Player – About RTMP Streaming Outils et exemples de codes pour la configuration de contenu privé En plus des méthodes fournies par CloudFront, les outils suivants fournis par des tiers offrent des formulaires Web pour configurer votre distribution de contenu privé. Certains outils fournissent également des formulaires Web pour créer des URL signées. API Version 2016-01-13 367 Amazon CloudFront Guide du développeur Utilisation de CloudFront avec un système de gestion de contenu • CloudBuddy – Prend en charge la configuration d'une distribution de contenu privé et la création d'URL signées. Pour plus de détails sur l'utilisation de CloudBuddy pour le contenu privé de CloudFront, consultez Configuring CloudFront Distribution and Private Content. Cet outil est basé sur la recherche de CSS CorpLabs pour une implémentation .NET des URL privées de CloudFront. • Bucket Explorer – Prend à charge la configuration d'une distribution de contenu privé Pour plus de détails sur l'utilisation de Bucket Explorer pour le contenu privé de CloudFront, consultez How to Create a Private Distribution on a Bucket. • CloudBerry – Prend en charge la configuration d'une distribution de contenu privé et la création d'URL signées. Pour plus de détails sur l'utilisation de CloudBerry pour le contenu privé de CloudFront, consultez How to Configure Private Content for CloudFront Streaming with CloudBerry. Pour plus de détails sur la configuration d'un objet racine par défaut, consultez How to set CloudFront Default Object with CloudBerry S3 Explorer. Pour plus de détails sur le contenu privé, consultez le billet de blog New Amazon CloudFront Feature: Private Content sur le blog AWS. Pour un exemple d'utilisation de cookies signés, utilisez votre nom de domaine dans les URL d'objets, et continuez d'utiliser le certificat SSL pour le domaine cloudfront.net. Consultez le billet de blog de Space Vatican Using CloudFront Signed Cookies. Ceci permet d'utiliser un nom de domaine alternatif avec HTTPS sans les frais associés à des adresses IP dédiées ou sans les limitations de l'extension SNI, comme indiqué dans Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). Utilisation de CloudFront avec un système de gestion de contenu Vous pouvez utiliser CloudFront avec plusieurs systèmes de gestion de contenu populaires. Les liens suivants vous expliquent comment. Drupal • Drupal.org – CloudFront Installation • DrupalModules.com – CloudFront Drupal Module Sitecore • NTT Data Advisory Service – AWS CloudFront Sitecore Integration WordPress • om4.com – Using Amazon CloudFront with WordPress and WordPress MU • WordPress.org – W3 Total Cache • WordPress.org – Simple Amazon S3 Upload Form • WordPress.org – OSSDL CDN Off-linker • WordPress.org – My CDN API Version 2016-01-13 368 Amazon CloudFront Guide du développeur Utilisation de CloudFront avec un système de gestion de contenu • Inquisiter.com – Amazon CloudFront CDN with a WordPress Blog API Version 2016-01-13 369 Amazon CloudFront Guide du développeur Historique du document Le tableau suivant décrit les modifications importantes apportées à la documentation depuis la dernière version de CloudFront. • Version API : 2016-01-13 • Dernière date de mise à jour de la documentation : 21 janvier 2016 Modification Description Date de modification Nouvelle fonction Vous pouvez désormais configurer CloudFront pour utiliser les 21 janvier 2016 certificats SSL/TLS que vous avez mis en service à l'aide du nouveau service AWS Certificate Manager. Notez que CloudFront continue de prendre en charge l'utilisation de certificats obtenus auprès d'une autorité de certification tierce et téléchargés sur le magasin de certificats IAM. Pour de plus amples informations, veuillez consulter Utilisation d'une connexion HTTPS pour accéder à vos objets (p. 237). Pour spécifier un certificat SSL/TLS à l'aide de l'API CloudFront, utilisez les nouveaux éléments Certificate et CertificateSource. Pour plus d'informations, consultez les descriptions de ces éléments dans la rubrique Type complexe DistributionConfig du manuel Amazon CloudFront API Reference. Nouvelles fonctions Pour les distributions web, vous pouvez désormais mieux protéger la communication entre CloudFront et votre serveur d'origine : • Appliquer la connexion HTTPS uniquement entre CloudFront et votre serveur web d'origine : vous pouvez configurer CloudFront pour vous connecter à votre serveur d'origine à l'aide de HTTPS, que la demande ait été faite via HTTP ou HTTPS. • Prise en charge de TLSv1.1 et TLSv1.2 entre CloudFront et votre serveur web d'origine : CloudFront prend désormais en charge TLSv1.1 et TLSv1.2 pour les communications entre CloudFront et votre origine. De plus, vous pouvez choisir les protocoles que vous voulez que CloudFront utilise lors de la communication avec votre origine, de telle sorte que vous puissiez, par exemple, choisir de ne pas autoriser CloudFront API Version 2016-01-13 370 13 janvier 2016 Amazon CloudFront Guide du développeur Modification Description Date de modification à communiquer avec votre origine à l'aide de SSLv3, qui est moins sécurisé que TLS. Pour de plus amples informations, veuillez consulter Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine (p. 239). Nouvelle fonction Pour les distributions web, vous pouvez configurer CloudFront de façon à inclure les en-têtes personnalisés quand les demandes sont transmises à votre origine. Les en-têtes personnalisés s'emploient dans divers cas de figures, comme les suivants. 28 décembre 2015 • Vous pouvez distinguer les demandes transmises à votre origine par CloudFront de celles provenant d'autres sources. • Si vous avez configuré plusieurs distributions CloudFront pour qu'elles utilisent la même origine, vous pouvez distinguer entre les demandes que CloudFront achemine pour chaque distribution. • Vous pouvez utiliser les en-têtes personnalisés pour contrôler l'accès au contenu d'une origine personnalisée. Pour de plus amples informations, veuillez consulter Transfert d'en-têtes personnalisés vers votre origine (distributions Web uniquement) (p. 114). Nouvelle fonction Pour les distributions web, vous pouvez désormais configurer CloudFront pour qu'il compresse automatiquement les fichiers de certains types pour les origines Amazon S3 et les origines personnalisées. De cette façon, les téléchargements sont plus rapides et vos pages web s'affichent plus rapidement. La compression réduit aussi votre coût de transfert des données CloudFront, car vous ne payez qu'en fonction de la quantité totale de données traitées. Pour de plus amples informations, veuillez consulter Service de fichiers compressés (p. 139). 17 décembre 2015 Nouvelle fonction Vous pouvez désormais intégrer CloudFront à AWS WAF, parefeu d'application web qui vous permet de superviser les requêtes HTTP et HTTPS transmises à CloudFront et de contrôler l'accès à votre contenu. Selon les conditions que vous spécifiez, comme les adresses IP d'où proviennent les requêtes ou les valeurs des chaînes de requête, CloudFront répond aux requêtes avec le contenu demandé ou avec un code d'état HTTP 403 (Interdit). Vous pouvez aussi configurer CloudFront de façon à retourner une page d'erreur personnalisée quand une demande est bloquée. 6 octobre 2015 Pour plus d'informations sur AWS WAF, consultez le Guide du développeur AWS WAF. Pour plus d'informations sur l'ajout de l'ID d'une liste de contrôle d'accès (ACL) web AWS WAF à une distribution CloudFront, consultez ACL Web AWS WAF (p. 74) dans la rubrique Valeurs que vous spécifiez lors de la création ou de la mise à jour d'une distribution web (p. 59). API Version 2016-01-13 371 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelle fonction Les journaux d'accès CloudFront des distributions web incluent désormais quatre nouvelles colonnes : 30 juin 2015 • x-forwarded-for : adresse IP d'origine du client ayant formulé la demande. • ssl-protocol : protocole SSL (par exemple, TLSv1.1) que le client et CloudFront ont négocié pour transmettre la demande et la réponse. • ssl-cipher : chiffrement SSL (par exemple, ECDHE-RSAAES128-GCM-SHA256) que le client et CloudFront ont négocié pour transmettre la demande et la réponse. • x-edge-response-result-type : classement de la réponse (par exemple, Hit ou Miss) juste avant que CloudFront ne commence à retourner la réponse à la visionneuse. Dans certains cas, cette valeur peut différer de la valeur du champ de journal existant x-edge-result-type, qui montre comment CloudFront a classé la réponse après que le dernier octet a quitté l'emplacement périphérique. Pour plus d'informations sur les journaux d'accès, consultez Journaux d'accès (p. 267). Pour obtenir la liste complète de tous les champs qui apparaissent dans les journaux d'accès des distributions web, consultez Format de fichier journal de distribution web (p. 272). Nouvelle fonction Vous pouvez désormais configurer une durée de vie (TTL) maximale et une durée de vie par défaut pour spécifier combien de temps CloudFront met en cache vos objets dans les emplacements périphériques. Vous pouvez définir la durée de vie (TTL) à la périphérie quand votre origine n'inclut pas un entête Cache-Control max-age, Cache-Control s-maxage ou Expires dans la réponse, ou que vous pouvez remplacer la valeur de l'en-tête. Pour de plus amples informations, veuillez consulter Spécifier pendant combien de temps des objets restent dans le cache périphérique (expiration) (p. 119). Nouvelle fonction La fonction d'invalidation, qui vous permet de supprimer des 21 mai 2015 objets depuis les caches périphériques CloudFront avant qu'ils n'expirent, prend désormais en charge le caractère générique *. Vous pouvez ajouter un caractère générique * à la fin d'un chemin d'invalidation pour supprimer tous les objets qui correspondent à ce chemin. Pour de plus amples informations, veuillez consulter Invalider des objets (distributions Web uniquement) (p. 125). API Version 2016-01-13 372 17 juin 2015 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelles fonctions Cette version de CloudFront inclut les améliorations suivantes apportées aux rapports CloudFront : 25 mars 2015 • Un nouveau rapport Devices vous permet de savoir de quels types d'appareils vos utilisateurs se servent pour afficher votre contenu. • Vous pouvez désormais télécharger les données des rapports CloudFront au format CSV (valeurs séparées par une virgule). • Vous pouvez désormais afficher les métriques de la console CloudFront, ce qui vous permet de visualiser plus facilement toutes les métriques d'une distribution. • Pour les rapports Devices, Browsers et Operating Systems, nous avons créé des catégories distinctes pour les demandes provenant des robots, pour celles provenant des visionneuses personnalisées et pour celles dont la valeur de l'en-tête UserAgent est vide. • Le rapport Popular Objects vous permet désormais d'afficher jusqu'à 500 caractères de l'URL pour chaque objet. Pour plus d'informations sur les rapports CloudFront, consultez Rapports CloudFront (p. 11). Nouvelle fonction Lorsque vous avez des compartiments Amazon S3 dans des 18 mars 2015 régions qui nécessitent Signature version 4 pour l'authentification et que vous utilisez une identité d'accès d'origine pour limiter l'accès à votre compartiment Amazon S3, vous pouvez désormais soumettre des demandes PUT à CloudFront pour charger les objets dans votre compartiment. Pour de plus amples informations, veuillez consulter Utilisation d'une identité d'accès à l'origine dans les régions Amazon S3 prenant uniquement en charge l'authentification Signature version 4 (p. 177). Nouvelles fonctions Cette version de CloudFront introduit les nouvelles fonctions suivantes : • Pour les distributions web, vous pouvez désormais utiliser des cookies signés au lieu d'URL signées, afin de contrôler les personnes qui peuvent accéder à votre contenu. Les cookies signés sont utiles quand vous ne voulez pas modifier vos URL actives ou que vous ne voulez pas fournir l'accès à plusieurs fichiers restreints (par exemple, tous les fichiers de la section des abonnés d'un site web). Pour plus d'informations sur l'utilisation des cookies signés pour protéger votre contenu privé, consultez Service d'un contenu privé via CloudFront (p. 168). • Pour les distributions web, vous pouvez configurer CloudFront pour mettre en cache différentes versions de vos objets en fonction de l'appareil grâce auquel un utilisateur visualise votre contenu. Avec cette version, nous ajoutons la prise en charge de la mise en cache d'une autre version de vos objets quand l'appareil est une smart TV. Pour de plus amples informations, veuillez consulter En-tête d’agent utilisateur (p. 160). API Version 2016-01-13 373 12 mars 2015 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelles fonctions Cette version de CloudFront introduit les nouvelles fonctions suivantes : 15 décembre 2014 • Ajout d'un chemin d'accès à l'origine : pour les distributions web, vous pouvez maintenant spécifier un chemin d'accès en plus d'un nom de domaine lorsque vous configurez l'origine. Par exemple, si vous utilisez un compartiment Amazon S3 comme votre origine, vous pouvez spécifier bucket-name.s3.amazonaws.com/production au lieu de simplement bucket-name.s3.amazonaws.com. Cela vous permet d'utiliser un seul compartiment pour traiter le contenu de plusieurs distributions. Cette fonction est compatible avec les origines Amazon S3 et les origines personnalisées. Pour plus d'informations sur la spécification d'un chemin d'accès d'origine dans la console CloudFront, consultez Chemin d'origine (p. 63). • Rapports des principaux référents et rapports des visionneuses : pour les distributions web, vous pouvez désormais afficher la liste des principaux référents. Vous pouvez aussi afficher des informations sur les visionneuses qui accèdent à votre contenu, y compris les navigateurs utilisés par les utilisateurs, les systèmes d'exploitation sur lesquels les navigateurs s'exécutent et les emplacements des visionneuses. Pour plus d'informations sur ces rapports, consultez Rapport CloudFront Top Referrers (p. 20) et Rapports CloudFront Viewers (p. 27). Nouvelle fonction Pour les distributions web, vous pouvez maintenant choisir 24 octobre 2014 la version minimale du protocole SSL, SSLv3 ou TLSv1, que CloudFront doit autoriser lors de la réponse aux demandes de vos utilisateurs. Si un utilisateur choisit un navigateur ou un appareil qui ne prend pas en charge la version de protocole minimale que vous spécifiez, CloudFront ne fournit pas vos objets à l'utilisateur. Pour plus d'informations sur le choix de la version minimale du protocole SSL dans la console CloudFront, consultez Version minimale du protocole SSL (p. 75). API Version 2016-01-13 374 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelles fonctions Cette version de CloudFront introduit les nouvelles fonctions suivantes : 21 octobre 2014 • Graphiques statistiques du cache : vous pouvez désormais afficher une représentation graphique des statistiques associées aux emplacements périphériques de CloudFront. Les statistiques suivantes sont disponibles pendant une durée spécifiée sur les 60 derniers jours : nombre total de demandes ; accès, échecs et erreurs en pourcentage par rapport au nombre total de demandes ; nombre total d'octets transférés aux visionneuses et octets transférés pour les échecs de cache ; demandes des visionneuses par code d'état HTTP (2xx, 3xx, 4xx et 5xx) et pourcentage de demandes GET qui n'ont pas terminé le téléchargement. Pour de plus amples informations, veuillez consulter Rapports CloudFront Cache Statistics (p. 12). • Livraison plus rapide des journaux d'accès : les journaux d'accès sont maintenant délivrés plusieurs fois par heure et sont disponibles dans l'heure qui suit les demandes des visionneuses. Pour plus d'informations sur les journaux d'accès, consultez Journaux d'accès (p. 267). • Rapport Popular Objects : répertorie le nombre de demandes, d'accès aux cache et d'échecs de cache, ainsi que les taux d'erreur des 50 objets les plus populaires sur une période donnée. Pour de plus amples informations, veuillez consulter Rapport CloudFront Popular Objects (p. 16). Nouvelle fonction Pour les distributions web, vous pouvez désormais surveiller six métriques en temps réel avec CloudFront. Vous pouvez ainsi détecter rapidement les tendances en termes d'utilisation et de disponibilité. Comme vous pouvez aussi définir des alarmes basées sur les métriques, vous pouvez obtenir une notification quand un événement particulier se produit. Pour de plus amples informations, veuillez consulter Supervision de l'activité CloudFront avec CloudWatch (p. 281). 9 octobre 2014 Nouvelles fonctions Cette version de CloudFront introduit les nouvelles fonctions suivantes : 29 septembre 2014 • Pour les distributions web, vous pouvez configurer CloudFront de façon à mettre en cache la réponse aux demandes OPTIONS. La réponse inclut les informations sur les options fournies par un serveur web et peut s'appliquer à une ressource spécifique ou au serveur dans sa totalité. Pour plus d'informations, consultez Méthodes HTTP autorisées (p. 68) et Méthodes HTTP mises en cache (p. 69). • Pour les distributions web, lorsque vous configurez CloudFront de manière à transmettre à votre origine les cookies figurant sur la liste blanche et de mettre en cache les objets en fonction de la valeur des cookies, vous pouvez désormais utiliser les caractères génériques * et ? dans les noms des cookies. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). API Version 2016-01-13 375 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelle fonction CloudFront prend désormais en charge un plus grand nombre de chiffres pour acheminer les requêtes HTTPS aux serveurs d'origine personnalisée. Pour de plus amples informations, veuillez consulter Chiffrement (p. 153). 20 août 2014 Nouvelle fonction Pour les distributions Web, CloudFront vous permet de choisir si vous souhaitez que CloudFront transmette les en-têtes à votre origine et mette en cache des versions distinctes d'un objet spécifié en fonction des valeurs d'en-tête dans des demandes de visionneuse. Cela vous permet de servir des versions différentes de votre contenu selon l'appareil employé par l'utilisateur, l'emplacement de la visionneuse, la langue utilisée par la visionneuse et différents autres critères. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction d'en-têtes de demande (p. 110). 26 juin 2014 Nouvelle fonction Amazon CloudFront fonctionne désormais avec AWS CloudTrail pour capturer les informations sur chaque demande que votre compte AWS (y compris vos utilisateurs IAM) envoie à l'API CloudFront. L'intégration de CloudFront et CloudTrail vous permet de déterminer les demandes qui ont été adressées à l'API CloudFront, l'adresse IP source à partir de laquelle chaque demande a été formulée, l'auteur de la demande, la date de la demande, et plus encore. Pour plus d'informations sur l'utilisation de CloudFront avec CloudTrail, consultez Utiliser AWS CloudTrail pour capturer des demandes envoyées à l'API CloudFront (p. 285). 28 mai 2014 Nouvelle fonction Avec cette version, pour les demandes de visionneuse HTTPS que CloudFront transmet à une origine personnalisée, CloudFront valide le nom de domaine du certificat SSL sur votre serveur d'origine qui correspond au nom de domaine que vous spécifiez pour Origin Domain Name. Si les noms de domaine ne correspondent pas, CloudFront répond aux demandes de visionneuse avec un code d'état HTTP 502 (passerelle erronée) au lieu des objets demandés. Pour activer cette fonctionnalité, vous devez spécifier unOrigin Protocol Policy pour Match Viewer. Pour de plus amples informations, veuillez consulter Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine (p. 239). 16 mai 2014 Nouvelle fonction Cette version de CloudFront introduit un nouveau champ dans les journaux d'accès CloudFront pour les distributions web. Le champ time-taken contient le nombre de secondes écoulées entre l'heure à laquelle un serveur périphérique CloudFront reçoit la demande d'une visionneuse et l'heure à laquelle CloudFront écrit le dernier octet de la réponse à la file d'attente de la sortie du serveur telle que mesurée sur le serveur. Pour plus d'informations sur le format des journaux fichiers de CloudFront pour les distributions web, consultez Format de fichier journal de distribution web (p. 272). 28 avril 2014 API Version 2016-01-13 376 Amazon CloudFront Guide du développeur Modification Description Date de modification Documentation Live HTTP Streaming avec CloudFront et mise à jour Adobe Media Server 5.0 (p. 298) a mis à jour les procédures d'abonnement à Adobe Media Server et de création d'une pile AWS CloudFormation. 18 mars 2014 Nouvelle fonction Cette version de CloudFront introduit les graphiques d'utilisation, qui contiennent un sous-ensemble des données du rapport d'utilisation CloudFront. Pour de plus amples informations, veuillez consulter Rapports CloudFront Usage (p. 22). 13 mars 2014 Nouvelles fonctions Cette version de CloudFront introduit les nouvelles fonctions suivantes : 5 mars 2014 • Rediriger les requêtes HTTP de visionneuse vers HTTPS : vous pouvez désormais configurer CloudFront pour rediriger les requêtes HTTP de visionneuse vers HTTPS. Pour de plus amples informations, veuillez consulter Procédure pour exiger HTTPS pour la communication entre les visionneuses, CloudFront et votre origine (p. 239). • Indication du nom de serveur (SNI) pour les requêtes HTTPS avec noms de domaine alternatifs : si vous utilisez votre nom de domaine dans les URL de vos objets, vous pouvez désormais configurer CloudFront pour qu'il remette les requêtes HTTPS aux utilisateurs dont les navigateurs prennent en charge l'indication du nom du serveur (SNI). Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). Nouvelle fonction Cette version de CloudFront introduit la prise en charge du streaming à la demande HTTP des fusions multimédias au format Microsoft Smooth Streaming. Pour de plus amples informations, veuillez consulter Configuration de Smooth Streaming à la demande (p. 84). 20 février 2014 Nouvelle fonction Cette version CloudFront introduit la prise en charge de HTTP 1.1. Pour plus d'informations, consultez Encodage de transfert (p. 164). 7 février 2014 De plus, nous avons ajouté la documentation sur les téléchargements progressifs à la demande et sur Apple HTTP Live Streaming à la demande. Pour plus d'informations, consultez Configuration des téléchargements progressifs à la demande et Configuration d'Apple HTTP Live Streaming (HLS) dans le manuel Amazon CloudFront Manuel du développeur. API Version 2016-01-13 377 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelles fonctions Cette version de CloudFront introduit la restriction géographique. Si vous devez empêcher les utilisateurs de certains pays sélectionnés d'accéder à votre contenu, vous pouvez configurer une distribution web CloudFront pour exécuter l'une des actions suivantes : 18 décembre 2013 • Permettre aux utilisateurs de n'accéder au contenu que s'ils figurent dans la liste blanche de pays spécifiés. • Empêcher les utilisateurs d'accéder au contenu s'ils se trouvent dans la liste noire de pays spécifiés. Pour de plus amples informations, veuillez consulter Restriction de la distribution géographique de votre contenu (p. 82). Nouvelles fonctions Cette version de CloudFront introduit les fonctions suivantes : • Prise en charge de DELETE, OPTIONS, PATCH, POST et PUT : vous pouvez désormais utiliser les méthodes HTTP DELETE, OPTIONS, PATCH, POST et PUT dans les demandes que vous envoyez à CloudFront. Pour de plus amples informations, veuillez consulter Méthodes HTTP autorisées (p. 68). Pour plus d'informations sur la spécification des méthodes HTTP à l'aide de l'API CloudFront, consultez Method dans la rubrique Type complexe DistributionConfig dans le manuel Amazon CloudFront API Reference. • Types de distribution renommés : les distributions de téléchargement CloudFront sont désormais appelées distributions web, et les distributions de streaming distributions RTMP. • Nouvelles colonnes dans les journaux d'accès pour les distributions web : les journaux d'accès pour les distributions web CloudFront incluent désormais trois colonnes supplémentaires pour chaque demande : x-host-header, cs-protocol et cs-bytes. Pour de plus amples informations, veuillez consulter Format de fichier journal de distribution web (p. 272). API Version 2016-01-13 378 15 octobre 2013 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelles fonctions Cette version de CloudFront introduit les fonctions suivantes : 23 septembre 2013 • Pages d'erreur personnalisées : vous pouvez désormais traiter les pages d'erreur avec vos propres personnalisations et contenus au lieu des messages d'erreur HTTP, tels que « 404, page introuvable ». Vous pouvez aussi les utiliser pour proposer une page statique quand votre serveur web n'est pas disponible. Pour de plus amples informations, veuillez consulter Personnaliser des réponses d'erreur (p. 132). Pour plus d'informations sur la spécification des pages d'erreur personnalisées à l'aide de l'API CloudFront, consultez CustomErrorResponses dans la rubrique Type complexe DistributionConfig dans le manuel Amazon CloudFront API Reference. • Durée du cache configurable pour les réponses aux erreurs : également appelée durée de vie (TTL) minimale de la mise en cache des erreurs, cette fonction vous permet de spécifier combien de temps vous voulez que CloudFront mette en cache chaque erreur aux emplacements périphériques CloudFront. Jusque-là, CloudFront mettait en cache toutes les réponses aux erreurs pendant cinq minutes ; désormais, vous pouvez spécifier la durée de votre choix et, par conséquent, contrôler la fréquence à laquelle CloudFront contrôle votre origine après une erreur. Pour de plus amples informations, veuillez consulter Personnaliser des réponses d'erreur (p. 132). Pour plus d'informations sur la durée du cache pour les réponses aux erreurs à l'aide de l'API CloudFront, consultez CustomErrorResponses dans la rubrique Type complexe DistributionConfig dans le manuel Amazon CloudFront API Reference. Nouvelle fonction Vous pouvez désormais inclure le caractère générique * dans un nom de domaine alternatif (CNAME) CloudFront, tel que *.example.com. Cette option est utile quand vous voulez acheminer toutes les demandes des objets d'un domaine et ses sous-domaines vers une distribution CloudFront. Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs (CNAME) (p. 45). 18 septembre 2013 Documentation La documentation sur le streaming en direct avec Wowza Media mise à jour Server 3.6 a été ajoutée. Pour de plus amples informations, veuillez consulter Streaming en direct HTTP avec Wowza Streaming Engine 4.2 (p. 324). 10 septembre 2013 Documentation La documentation sur le streaming en direct avec Adobe Flash mise à jour Media Server a été remplacée par la documentation sur le streaming en direct avec Adobe Media Server version 5.0. Pour plus d'informations, consultez Live HTTP Streaming avec CloudFront et Adobe Media Server 5.0 (p. 298). 31 juillet 2013 API Version 2016-01-13 379 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelles fonctions Cette version de CloudFront introduit les fonctions suivantes : 11 juin 2013 • Authentification avec AWS Signature version 4 : si vous utilisez l'API CloudFront version 2013-05-12 ou ultérieure, vous devez authentifier les demandes avec AWS Signature version 4. Pour plus d'informations, consultez Authentification des demandes REST dans le manuel Amazon CloudFront API Reference. • SSL pour les noms de domaine alternatifs CloudFront : CloudFront prend désormais en charge l'utilisation de HTTPS et de votre propre nom de domaine dans les URL de vos objets (par exemple, http://www.example.com/image.jpg). Pour de plus amples informations, veuillez consulter Utilisation de noms de domaines alternatifs et de HTTPS (p. 243). De plus, une version simultanée d'Amazon Route 53 introduit la fonction CloudFront suivante : • Alias Amazon Route 53 des distributions CloudFront : Amazon Route 53 prend désormais en charge la création de jeux d'enregistrements de ressources d'alias qui acheminent les requêtes DNS vers des noms de domaine alternatifs pour les distributions CloudFront. Vous pouvez utiliser cette fonction pour les noms de domaine alternatifs de la zone apex (example.com) et les noms de domaine alternatifs pour les sous-domaines (www.example.com). Pour plus d'informations, consultez Acheminement des requêtes vers une distribution Amazon CloudFront dans le manuel Amazon Route 53 Manuel du développeur. Nouvelles fonctions Cette version de CloudFront introduit les fonctions suivantes : • Champs de contenu privé dans AWS Management Console : les paramètres relatifs au contenu privé, qui précédemment pouvaient être configurés ou modifiés uniquement à l'aide de l'API CloudFront, peuvent désormais l'être dans AWS Management Console. Cela inclut les paramètres relatifs aux identités d'accès à l'origine et aux utilisateurs de confiance. De plus, la documentation sur le contenu privé a été réorganisée et clarifiée. Pour de plus amples informations, veuillez consulter Service d'un contenu privé via CloudFront (p. 168). • Améliorations d'AWS Management Console : les Assistants et les boîtes de dialogue d'AWS Management Console ont été redimensionnés pour simplifier l'affichage sur les tablettes sans compromettre l'aspect pour les autres visionneuses. De plus, le nombre de pages dans l'Assistant Create Distribution a été réduit pour simplifier le processus de création d'une distribution. API Version 2016-01-13 380 27 septembre 2012 Amazon CloudFront Guide du développeur Modification Description Date de modification Nouvelles fonctions Cette version de CloudFront introduit les fonctions suivantes : 5 septembre 2012 • Améliorations des journaux d'accès pour les distributions web : pour les distributions web, les journaux d'accès CloudFront incluent désormais les champs suivants : • L'en-tête de cookie de chaque demande de visionneuse, y compris les paires nom-valeur et les attributs. Ce champ est facultatif. • Type de résultat d'une demande (par exemple, Hit, RefreshHit ou Miss). • Un identifiant qui identifie chaque demande de façon unique (ID de demande CloudFront). Pour de plus amples informations, veuillez consulter Format de fichier journal de distribution web (p. 272). Pour plus d'informations sur la configuration d'une distribution CloudFront afin d'inclure les cookies dans les journaux d'accès à l'aide de l'API CloudFront, consultez IncludeCookies dans la rubrique Type complexe DistributionConfig dans le manuel Amazon CloudFront API Reference. • Prise en charge des cookies pour les distributions web : vous pouvez désormais choisir si vous voulez que CloudFront achemine les cookies et les attributs de cookie associés vers votre origine. Si tel est le cas, vous pouvez choisir entre acheminer tous les cookies ou uniquement une liste sélectionnée de cookies. Pour de plus amples informations, veuillez consulter Configurer CloudFront pour mettre en cache des objets en fonction de cookies (p. 108). Pour plus d'informations sur la configuration d'une distribution CloudFront pour acheminer les cookies vers votre origine à l'aide de l'API CloudFront, consultez Cookies dans la rubrique Type complexe DistributionConfig dans le manuel Amazon CloudFront API Re