web-dev-qa-db-fra.com

Seau Amazon S3 renvoyé 403 interdit

J'ai récemment hérité d'une application Rails utilisant S3 pour le stockage d'actifs. J'ai transféré tous les actifs dans mon compartiment S3 sans aucun problème. Cependant, lorsque je modifie l'application pour pointer vers le nouveau compartiment, je reçois le statut 403 Interdit. 

Mon compartiment S3 est configuré avec les paramètres suivants:

Autorisations

Tout le monde peut lister

Politique de seau

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

Configuration CORS

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>https://www.appdomain.com</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

Hébergement Web statique

Activée.

Que puis-je faire de plus pour permettre au public d'atteindre ces atouts?

41
thatgibbyguy

Le problème est que le transfert a été effectué selon ce fil , qui, en soi, n’est pas un problème. Le problème est dû au fait que le développeur précédent n'a pas modifié les autorisations sur les fichiers avant le transfert. Cela signifiait que je ne pouvais gérer aucun des fichiers, même s'ils se trouvaient dans mon panier.

Le problème a été résolu en re-téléchargeant proprement les fichiers du précédent compartiment, en supprimant les anciens fichiers fantômes, en re-téléchargeant les nouveaux fichiers et en définissant leurs autorisations pour permettre la lecture publique des fichiers.

24
thatgibbyguy

Je sais que c'est un vieux fil, mais je viens de rencontrer le même problème. Tout fonctionnait depuis des mois et le système a soudainement cessé de fonctionner, générant une erreur 403 Forbidden. Il s'avère que l'horloge système était le véritable coupable. Je pense que s3 utilise une sorte de jeton basé sur le temps qui a une durée de vie très courte. Et dans mon cas je viens de courir:

ntpdate pool.ntp.org

Et le problème est parti. J'utilise CentOS 6 si c'est pertinent. C'était la sortie de l'échantillon:

19 Aug 20:57:15 ntpdate[63275]: step time server ip_address offset 438.080758 sec

J'espère que ça aide!

22
Sthe

il se peut également qu'une stratégie appropriée soit définie en fonction de la documentation Amazon.

http://docs.aws.Amazon.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html

donner au seau en question cette politique

{
  "Version":"2012-10-17",
  "Statement":[{
    "Sid":"PublicReadGetObject",
        "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::YOUR-BUCKET-NAME/*"
      ]
    }
  ]
}
10
Da Rod

Pour moi, aucune des autres réponses n'a fonctionné. Les autorisations de fichiers, les stratégies de compartiment et l'horloge étaient correctes. Pour moi, le problème était intermittent et, même si cela peut paraître banal, les éléments suivants ont déjà fonctionné pour moi auparavant:

  1. Déconnectez-vous et reconnectez-vous.
  2. Si vous essayez de télécharger un seul fichier, essayez de télécharger en bloc. Inversement, si vous essayez de télécharger un seul fichier, essayez de télécharger en bloc.
0
entpnerd

Une chose étrange qui a résolu ce problème pour moi après avoir déjà configuré les autorisations appropriées est que j'ai supprimé l'extension du nom de fichier. Ainsi, de nombreux éléments dans le compartiment étaient dotés des mêmes autorisations. Certains trouvaient des résultats trouvés et d'autres renvoyaient 403. La seule différence était que ceux qui ne fonctionnaient pas avaient la valeur .png à la fin du nom du fichier. Quand j'ai enlevé cela ils ont bien fonctionné. Aucune idée pourquoi.

0
andrewcockerham