1
votes

AWS S3: impossible de rendre l'accès public

Objectif: publier une page Web statique à l'aide d'AWS S3

Problèmes: accès refusé et erreurs 403

Je travaille sur ce problème depuis plusieurs heures maintenant. Après avoir regardé plusieurs tutoriels (comme celui ici: https://www.youtube.com/watch ? v = 4UafFZsCQLQ ), le déploiement d'une page Web statique sur AWS S3 a semblé assez facile. Cependant, je rencontre continuellement des erreurs "Accès refusé" en suivant les didacticiels et des erreurs 403 en essayant d'accéder à ma page.

403 Erreur lors du chargement de la page

Lors de l'affichage de ce que devrait être ma page Web statique ( http://watchyourinterest.live.s3-website.us-east-2.amazonaws.com ), je reçois un Erreur 403 (voir l'image ci-dessus). C'est après avoir ajouté la stratégie de compartiment suivante:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::watchyourinterest.live/*"
        }
    ]
}

J'ai également changé tous les paramètres d'accès public des autorisations sur False (juste pour m'assurer que rien ne devrait restreindre cela, bien que je prévois de les changer pour ce qu'ils devraient être plus tard une fois que cela fonctionne).

Paramètres d'accès public

Je me suis également assuré de définir correctement le document d'index sur ma page index.html et de définir correctement le document d'erreur sur mon fichier error.html .

Lors de la visualisation des didacticiels, il semble que cela devrait rendre ma page bonne à parcourir. Cependant, comme je l'ai déjà dit, j'obtiens toujours les erreurs 403. Après réflexion, j'ai essayé de définir l'accès public à tout le monde pour tous les fichiers, mais chaque fois que j'essaie de cliquer sur la sélection de tout le monde, j'obtiens une erreur qui dit «accès refusé».

Tentative de définition du fichier en accès public

Erreur d'accès refusé lorsque je tente de définir l'accès public ... p >

De même, la même chose se produit lorsque je clique sur des fichiers individuellement et que je prends des mesures sur eux d'une manière différente, comme on le voit ci-dessous:

Accès refusé à nouveau en essayant de rendre public

Sur la page principale qui répertorie tous mes buckets, je reçois également ceci état "Access" étrange de mon bucket, lorsque je souhaite qu'il soit public au lieu de ceci:

"Accéder" à l'état du bucket, JE VEUX QUE CELA SOIT PUBLIC

Toute aide serait grandement appréciée !!


0 commentaires

3 Réponses :


1
votes

Je pense qu'il vous manque peut-être l'opération de liste, essayez

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicListObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::watchyourinterest.live"
            },
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": ["s3:Get*","s3:List*"]
                "Resource": ["arn:aws:s3:::watchyourinterest.live/*","arn:aws:s3:::watchyourinterest.live"]
            }
        ]
    }


1 commentaires

Une autre suggestion est de rendre public acl sur cet objet. Essayez donc d'utiliser docs aws s3api put-object-acl --bucket MyBucket --key file.txt --acl public-read



2
votes

La cause première du problème réside dans les paramètres d'accès public au niveau du bucket. Selon la capture d'écran, votre bucket permet uniquement aux utilisateurs autorisés d'accéder à tout ce qui se trouve dans votre bucket.

Les paramètres d'accès public bloquent l'accès même si vous avez donné l'accès à vos objets de compartiment via des stratégies de compartiment.

Pour résoudre le problème, veuillez modifier les paramètres d'accès public comme suit:

  1. Cliquez sur modifier les paramètres d'accès public, il devrait s'afficher sous les paramètres.

 entrez la description de l'image ici

  1. Laissez toutes les cases décochées. cliquez sur enregistrer. Il demandera une confirmation. Tapez "confirmer" dans la case indiquée.

 entrez la description de l'image ici

Cela devrait afficher l'accès pour ce bucket comme public.

Vous devriez maintenant pouvoir accéder à votre site Web avec un point de terminaison donné pour l'hébergement de site Web statique.


3 commentaires

Merci pour ça. J'ai édité l'article, et vous pouvez voir que sur la base de la capture d'écran qui est maintenant incluse, je l'avais déjà comme ça avant, donc malheureusement ce n'est pas le problème.


@PatrickLymanOld J'ai vérifié votre capture d'écran. Non, ce n'est pas inclus. Sur la dernière capture d'écran, je peux toujours voir que le seau n'a accès qu'aux utilisateurs autorisés.


Cet accès est modifié avec la modification des paramètres d'accès public dans la console s3, où il vous suffit de sélectionner le compartiment et de modifier le paramètre d'accès public sur false.



1
votes

Similaire à la réponse expliquée par @Sangam Belrose, mais à la place, cela DOIT ÊTRE APPLIQUÉ À L'ENSEMBLE DU COMPTE CONSOLE AWS. Lorsque ceux-ci ont été modifiés, je n'ai plus rencontré mes problèmes. Les images ci-dessous illustrent ceci:

  1. Sélectionnez l'onglet "Paramètres d'accès public pour ce compte" sur le côté gauche de la console AWS. Notez ici comment à l'origine l'accès pour ce compte est uniquement pour "Uniquement les utilisateurs autorisés de ce compte".

Paramètres d'accès public du COMPTE

  1. Assurez-vous que la dernière case à cocher, celle indiquant "Bloquer l'accès public et entre comptes aux buckets dotés de politiques publiques" est DÉCROCHÉE.

DÉCROCHEZ CETTE BOÎTE

  1. Tapez confirmer le moment où la fenêtre de confirmation de la boîte apparaît

  2. Maintenant, voyez que si ceci ET les paramètres d'accès public du bucket sont correctement définis, ce bucket sera désormais public.

Il est maintenant public, woo!


1 commentaires

En jetant simplement ceci là-bas, ces ACL "cryptiques" sont définies ici aws.amazon.com/blogs/aws/...