J’utilise un compartiment Amazon Simple Storage Service (Amazon S3) comme origine de ma distribution Amazon CloudFront. Cependant, je ne parviens pas à accéder aux fichiers de mon compartiment Amazon S3 ni à les télécharger.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
Résoudre les erreurs 403 Access Denied (Accès refusé)
Si CloudFront renvoie des erreurs 403 Access Denied, consultez l'un des articles suivants du Centre de connaissances AWS en fonction de votre cas d'utilisation :
Vérifier les restrictions géographiques de CloudFront
Si votre distribution utilise des restrictions géographiques, vérifiez que vous n'avez pas restreint les pays d'où proviennent vos requêtes.
Vérifier que vous n'appliquez pas le protocole HTTPS aux points de terminaison des sites Web S3
Les points de terminaison de site Web Amazon S3 ne prennent pas en charge le protocole HTTPS. Si vous avez utilisé l'interface de ligne de commande, l'API ou le SDK AWS pour configurer une distribution CloudFront, vérifiez que vous n'avez pas appliqué le protocole HTTPS à l'origine du point de terminaison de votre site Web.
Pour vérifier si vous utilisez le protocole HTTPS, utilisez l'API GetDistributionConfig ou la commande de l'AWS CLI get-distribution-config pour obtenir la configuration de distribution. Si OriginProtocolPolicy est défini sur https-only, modifiez l'OriginProtocolPolicy pour utiliser http-only.
Pour utiliser HTTPS, utilisez CloudFront avec une origine de point de terminaison d'API REST S3. Pour plus d'informations, consultez la section Caractères susceptibles de nécessiter une gestion particulière.
Vérifier que la taille de vos objets S3 est inférieure à 50 Go
La taille de fichier maximale autorisée pour les requêtes HTTP GET, POST et PUT est de 50 Go. Si la taille d'un fichier est supérieure à 50 Go, le message d'erreur 400 « BadRequest » s'affiche.
Pour plus d'informations, consultez la section Quotas généraux sur les distributions.
Vérifier la présence de caractères spéciaux dans les noms de clé d’objet S3
Si vous avez utilisé des caractères spéciaux dans votre nom de clé d’objet S3, vous devrez peut-être modifier les caractères pour assurer la conformité de l'API. Pour plus d'informations, consultez la section Directives de dénomination des clés d'objet.
Vérifier que vous n'avez pas utilisé d'objets racine par défaut provenant d'un sous-répertoire
Une distribution CloudFront ne renvoie pas d'objets racine par défaut à partir d'un sous-répertoire, même lorsque vous avez configuré l'objet dans votre distribution. Pour plus d'informations, consultez la section Spécifier un objet racine par défaut.
Pour contourner ce problème, vous pouvez utiliser Lambda@Edge pour renvoyer l'objet racine par défaut depuis un sous-répertoire.
Vérifier que vous n'avez pas utilisé d'en-têtes d'hôte avec une origine S3
Pour les origines d'Amazon S3, vous ne pouvez pas effectuer de mise en cache en fonction de l'en-tête d’hôte ou transférer l'en-tête d’hôte. Pour plus d’informations, consultez la section Sélection des en-têtes sur lesquels baser la mise en cache.
Résoudre l'erreur « No Access-Control-Allow-Origin »
Pour résoudre ce problème, consultez la section Comment résoudre l’erreur « No 'Access-Control-Allow-Origin' header is present on the requested resource » (Aucun en-tête 'Access-Control-Allow-Origin' n’est présent sur la ressource demandée) à partir de CloudFront ?
Informations connexes
Résolution des problèmes liés aux codes d’état des réponses aux erreurs dans CloudFront