Spécifier un objet racine par défaut - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Spécifier un objet racine par défaut

Vous pouvez configurer CloudFront pour renvoyer un objet spécifique (l'objet racine par défaut) lorsqu'un utilisateur demande la racine URL de votre distribution au lieu de demander un objet dans votre distribution. Spécifier un objet racine par défaut vous permet d’éviter d’exposer le contenu de votre distribution.

Comment spécifier un objet racine par défaut

Pour éviter d’exposer le contenu de votre distribution ou de renvoyer une erreur, spécifiez un objet racine par défaut pour votre distribution en procédant comme suit.

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 une liste des contraintes relatives au nom du fichier, consultez la description de l'DefaultRootObjectélément dans 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'erreurHTTP 400 Bad Request - InvalidDefaultRootObject. En outre, CloudFront met le code en cache pendant 10 secondes (par défaut) et écrit les résultats dans les journaux d'accès.

  2. Vérifiez que les autorisations associées à l'objet accordent CloudFront au moins read l'accès.

    Pour de plus amples informations sur les autorisations Amazon S3, veuillez consulter Gestion des autorisations d'accès à vos ressources Amazon S3 dans le Manuel du développeur Amazon Simple Storage Service.

  3. Mettez à jour votre distribution pour qu'elle fasse référence à l'objet racine par défaut à l'aide de la CloudFront console ou du CloudFront API.

    Pour spécifier un objet racine par défaut à l'aide de la CloudFront console :

    1. Connectez-vous à la CloudFront console AWS Management Console et ouvrez-la à l'adressehttps://console.aws.amazon.com/cloudfront/v4/home.

    2. Dans le volet supérieur de la liste de distributions, sélectionnez la distribution à mettre à jour.

    3. Dans le volet Paramètres, sous l’onglet Général, sélectionnez Modifier.

    4. Dans la boîte de dialogue Modifier les paramètres, dans le champ Objet racine par défaut, 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.

    5. Sélectionnez Enregistrer les modifications.

    Pour mettre à jour votre configuration à l'aide du CloudFront API, vous devez spécifier une valeur pour l'DefaultRootObjectélément dans votre distribution. Pour plus d'informations sur l'utilisation du CloudFront API pour spécifier un objet racine par défaut, consultez UpdateDistributionle Amazon CloudFront API Reference.

  4. Vérifiez que vous avez activé l'objet racine par défaut en demandant votre rootURL. Si votre navigateur n’affiche pas l’objet racine par défaut, effectuez les opérations suivantes :

    1. Vérifiez que votre distribution est entièrement déployée en consultant l'état de votre distribution dans la CloudFront console.

    2. 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.

Fonctionnement de l'objet racine par défaut

Imaginons que la requête suivante pointe vers l’objet image.jpg:

https://d111111abcdef8.cloudfront.net/image.jpg

En revanche, la requête suivante pointe vers la racine URL de la même distribution plutôt que vers un objet spécifique, comme dans le premier exemple :

https://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 :

https://d111111abcdef8.cloudfront.net/

Renvoie:

https://d111111abcdef8.cloudfront.net/index.html

Note

CloudFront ne détermine pas si un URL avec plusieurs barres obliques (https://d111111abcdef8.cloudfront.net///) est équivalent à. https://d111111abcdef8.cloudfront.net/ C'est votre serveur d'origine qui effectue cette comparaison.

Si vous définissez un objet racine par défaut, une demande d'utilisateur final pour un sous-répertoire de votre distribution ne renvoie pas l'objet racine par défaut. Supposons, par exemple, qu'index.htmlil s'agisse de votre objet racine par défaut et qu'il CloudFront reçoive une demande d'utilisateur final pour le install répertoire de votre CloudFront distribution :

https://d111111abcdef8.cloudfront.net/install/

CloudFront ne renvoie pas l'objet racine par défaut même si une copie de index.html apparaît dans le install répertoire.

Si vous configurez votre distribution pour autoriser toutes les HTTP méthodes compatibles, CloudFront l'objet racine par défaut s'applique à toutes les méthodes. Par exemple, si votre objet racine par défaut est index.php et que vous écrivez dans votre application pour envoyer une POST demande à la racine de votre domaine (https://example.com), CloudFront envoie la demande à https://example.com /index.php.

Le comportement des objets racines CloudFront par défaut 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 en tant que sites web et sur les documents d’index, consultez le chapitre Hébergement de sites web sur Amazon S3 dans le Guide de l’utilisateur Amazon Simple Storage Service.

Important

N'oubliez pas qu'un objet racine par défaut s'applique uniquement à votre CloudFront distribution. Vous devez quand-même gérer la sécurité pour votre origine. Par exemple, si vous utilisez une origine Amazon S3, vous devez tout de même configurer votre compartiment Amazon S3 de ACLs manière appropriée pour garantir le niveau d'accès que vous souhaitez pour votre compartiment.

Comment CloudFront fonctionne si vous ne définissez pas d'objet racine

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é :

  • Liste du contenu de votre compartiment Amazon S3 — Dans l'une des conditions suivantes, le contenu de votre origine est visible par tous ceux qui ont accès CloudFront à 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 en utilisant votre racine URL d'origine.

  • Liste des contenus privés de votre origine : si vous configurez votre origine en tant que distribution privée (vous êtes le seul à CloudFront y avoir accès), le contenu du compartiment Amazon S3 associé à votre distribution est visible par toute personne disposant des informations d'identification nécessaires pour accéder à votre distribution CloudFront. Dans ce cas, les utilisateurs ne peuvent pas accéder à votre contenu via votre racine d'origineURL. Pour plus d’informations sur la distribution de contenus privés, consultez Diffusez du contenu privé avec des cookies signés URLs et signés.

  • Error 403 Forbidden— CloudFront renvoie cette erreur si les autorisations sur le compartiment Amazon S3 associé à votre distribution ou les autorisations sur les objets de ce compartiment interdisent l'accès à CloudFront tout le monde.