Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Pourquoi ai-je reçu le message d'erreur « Accès refusé » lorsque j'ai utilisé le point de terminaison statique d'hébergement de sites Web Amazon S3 ?
J'ai utilisé un compartiment Amazon Simple Storage Service (Amazon S3) pour héberger un site Web statique avec le point de terminaison d'hébergement de sites Web statiques S3. Je souhaite résoudre l'erreur « Accès refusé » que j'ai reçue du point de terminaison d'hébergement de sites Web statiques S3.
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’AWS CLI.
Les objets du compartiment doivent être accessibles au public
Un point de terminaison de site Web statique S3 ne prend en charge que le contenu accessible au public. Pour vérifier si un objet de votre compartiment S3 est accessible au public, ouvrez son URL dans un navigateur Web. Vous pouvez également exécuter une commande curl sur l'URL.
Voici un exemple d’URL d’un objet S3 :
http://doc-example-bucket.s3-website-us-east-1.amazonaws.com/index.html
Si le navigateur Web ou la commande curl renvoie une erreur Access Denied (Accès refusé), alors l’objet n’est pas accessible au public. Pour résoudre ce problème, créez une politique de compartiment qui autorise l’accès public en lecture à tous les objets du compartiment.
La politique de compartiment S3 doit autoriser l’accès à l’action s3:GetObject
Vérifiez si votre politique de compartiment contient des instructions de rejet qui bloquent l'accès public en lecture à l'action s3:GetObject. Même lorsque vous avez une instruction d’autorisation explicite pour s3:GetObject dans votre politique de compartiment, une instruction de refus explicite remplace toujours une instruction d'autorisation explicite.
Pour vérifier votre politique de compartiment, procédez comme suit :
- Ouvrez la console Amazon S3, puis sélectionnez votre compartiment.
- Choisissez l’onglet Autorisations.
- Consultez la politique de compartiment pour les instructions contenant "Action": "s3:GetObject" or "Action": "s3:*".
- Si une instruction bloque l'accès public en lecture à s3:GetObject, modifiez la politique de compartiment.
Le compte propriétaire du compartiment doit également être propriétaire de l'objet
Pour autoriser l’accès public en lecture aux objets, le compte AWS propriétaire du compartiment doit également être propriétaire des objets. Le compte de l’identité AWS Identity and Access Management (IAM) qui a créé ce compartiment ou cet objet est propriétaire du compartiment ou de l’objet.
Remarque : La propriété de l’objet S3 ne s’applique pas à l’accès public en lecture accordé par la liste de contrôle d’accès (ACL) de l’objet.
Vous pouvez également utiliser la console Amazon S3 pour vérifier les propriétaires du compartiment et des objets. Vous pouvez trouver les propriétaires dans l’onglet Autorisations du compartiment ou de l’objet.
Pour utiliser l'AWS CLI afin de vérifier si le même compte est propriétaire de votre compartiment et de vos objets Amazon S3, procédez comme suit :
-
Pour obtenir l’ID canonique S3 du propriétaire du compartiment, exécutez la commande list-buckets :
aws s3api list-buckets --query Owner.ID -
Pour obtenir l’ID canonique S3 du propriétaire de l’objet, exécutez la commande list-objects :
aws s3api list-objects --bucket DOC-EXAMPLE-BUCKET --prefix index.htmlRemarque : La commande précédente renvoie un seul objet. Pour vérifier plusieurs objets, exécutez la commande list.
-
Si les ID canoniques du compartiment et du propriétaire de l'objet ne correspondent pas, remplacez le propriétaire de l'objet par le propriétaire du compartiment. Depuis le compte du propriétaire de l’objet, exécutez la commande get-object-acl pour récupérer les autorisations ACL attribuées à l’objet :
aws s3api get-object-acl --bucket DOC-EXAMPLE-BUCKET --key object-name -
Si l’objet ne dispose pas d’autorisations ACL bucket-owner-full-control, exécutez la commande put-object-acl depuis le compte du propriétaire de l’objet :
aws s3api put-object-acl --bucket DOC-EXAMPLE-BUCKET --key object-name --acl bucket-owner-full-control -
Si l'objet possède des autorisations ACL bucket-owner-full-control, exécutez la commande suivante à partir du compte du propriétaire du compartiment.
aws s3 cp s3://DOC-EXAMPLE-BUCKET/index.html s3://DOC-EXAMPLE-BUCKET/index.html --storage-class STANDARDRemarque : La commande précédente copie l'objet sur lui-même et change le propriétaire de l'objet.
Vous pouvez également utiliser Propriété d’objets S3 pour accorder au propriétaire du compartiment la propriété automatique de tous les objets chargés par des utilisateurs anonymes ou d'autres comptes.
Vous ne pouvez pas utiliser le chiffrement AWS KMS pour les objets
AWS Key Management Service (AWS KMS) ne prend pas en charge les requêtes anonymes. Par conséquent, les compartiments Amazon S3 qui autorisent l’accès anonyme ou public n’appliquent pas cet accès aux objets chiffrés avec AWS KMS. Pour supprimer le chiffrement AWS KMS des objets, vous devez utiliser le point de terminaison statique du site Web Amazon S3.
Remarque : Au lieu du chiffrement AWS KMS, utilisez le chiffrement côté serveur avec des clés gérées par Amazon S3 pour chiffrer vos objets.
Pour vérifier si vous avez utilisé le chiffrement KMS sur vos objets, vous pouvez utiliser la console Amazon S3. Sur la page Présentation de l'objet, vérifiez si AWS-KMS est sélectionné dans la boîte de dialogue Chiffrement. Vous pouvez également exécuter la commande head-object de l'AWS CLI. Si la commande renvoie server-side encryption sous la forme aws:kms, l’objet est chiffré par AWS KMS.
Pour utiliser la console Amazon S3 afin de modifier les paramètres de chiffrement de l’objet, consultez la section Spécification du chiffrement côté serveur avec Amazon S3 (SSE-S3).
Pour modifier les paramètres de chiffrement de l’objet à l’aide de l’AWS CLI, vérifiez que le compartiment de l’objet n’utilise pas le chiffrement par défaut. Si le compartiment n’est pas doté du chiffrement par défaut, exécutez la commande suivante pour copier l’objet sur lui-même et supprimer le chiffrement de l’objet :
aws s3 cp s3://DOC-EXAMPLE-BUCKET/index.html s3://DOC-EXAMPLE-BUCKET/index.html --storage-class STANDARD --sse AES256
Avertissement : Amazon S3 supprime les paramètres relatifs à storage-class et website-redirect-location lorsque vous copiez l’objet sur lui-même. Pour conserver ces paramètres dans le nouvel objet, veillez à spécifier explicitement les valeurs de storage-class ou website-redirect-location dans la requête de copie.
Si vous avez activé la gestion des versions sur votre compartiment, le chiffrement par défaut crée une nouvelle version de l'objet lorsque vous modifiez le chiffrement.
Les objets demandés doivent exister dans le compartiment S3
Si un utilisateur effectuant la requête ne dispose pas des autorisations s3:ListBucket, il reçoit une erreur Accès refusé pour les objets manquants.
Pour vérifier si l'objet existe dans le compartiment, exécutez la commande head-object de l'AWS CLI.
Remarque : Les noms d’objets S3 sont sensibles à la casse. Si le nom de l'objet de la requête n'est pas valide, Amazon S3 signale que l'objet est manquant.
Si l’objet existe dans le compartiment, l’erreur Accès refusé ne masque pas une erreur 404 Introuvable. Pour résoudre l’erreur Accès refusé, vérifiez les autres exigences de configuration.
Si l’objet n’existe pas dans le compartiment, l’erreur Accès refusé masque une erreur 404 Introuvable. Remédiez au problème lié à l’objet manquant.
Remarque : Il est recommandé de ne pas activer l'accès public à s3:ListBucket. L’accès public à s3:ListBucket permet aux utilisateurs de voir et de répertorier tous les objets d’un compartiment. Cet accès expose les détails des métadonnées de l’objet, tels que la clé et la taille, aux utilisateurs, même si ces derniers ne sont pas autorisés à télécharger l’objet.
Désactiver l'accès public bloqué à Amazon S3 sur le compartiment
Le blocage de l'accès public Amazon S3 peut annuler les autorisations qui autorisent l'accès public en lecture. Vérifiez que vous n'avez pas configuré les paramètres le blocage de l'accès public Amazon S3 pour votre compartiment S3 ou compte.
Informations connexes
- Sujets
- Storage
- Langue
- Français
Vidéos associées


Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 2 ans
- demandé il y a 3 ans