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 &amp;
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 &amp;
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&parameter2=b et une autre demande
contient parameter2=b&parameter1=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&parameter2=b
• http://d111111abcdef8.cloudfront.net/images/image.jpg?
parameter2=b&parameter1=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

Documents pareils