Obtenir 403 interdit de s3 lors de la tentative de téléchargement d'un fichier
J'ai un seau sur la s3, et un utilisateur donné un accès complet à ce seau.
Je peux effectuer un ls
de commandement et de voir les fichiers dans le seau, mais leur téléchargement échoue avec:
A client error (403) occurred when calling the HeadObject operation: Forbidden
J'ai également essayé avec un utilisateur a accordé la pleine S3 autorisations par le biais de la console IAM. Même problème.
Pour référence, voici la politique IAM j'ai:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}
J'ai aussi essayé d'ajouter un seau politique, en en faisant même le seau public, et toujours pas aller...aussi, à partir de la console, j'ai essayé de définir des autorisations sur les fichiers dans le seau, et a obtenu un message d'erreur indiquant que je ne peux pas afficher le seau, ce qui est étrange, depuis que je suis de visualisation de la console lorsque le message est apparu, et peut ls
quoi que ce soit dans le seau.
MODIFIER les fichiers dans mon seau ont été copiés à partir d'un autre seau appartenant à un autre compte, à l'aide des informations d'identification à partir de mon compte. Peut ou peut ne pas être pertinent...
2ème EDITION juste essayé de charger, télécharger et copier mes propres fichiers vers et à partir de ce seau de seaux, et il fonctionne très bien. La question est spécifiquement avec les fichiers placés là à partir d'un autre compte du seau.
Merci!
OriginalL'auteur MrSilverSnorkel | 2016-05-12
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devez vous assurer que les autorisations sont appliquées à des objets en cas de déplacement/copie entre les seaux avec le "seau-propriétaire-contrôle total" acl.
Voici les détails sur la façon de le faire lorsque le déplacement ou la copie de fichiers ainsi que de façon rétroactive:
https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-owner-access/
Aussi, vous pouvez lire sur les différents prédéfinis subventions ici:
http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
OriginalL'auteur wrj
Ici, le problème provient de la façon dont vous obtenez les fichiers dans le seau. Plus précisément, les informations d'identification que vous avez et/ou privilèges que vous accordez au moment de l'upload. J'ai couru dans un semblable problème d'autorisations problème lorsque j'ai eu plusieurs comptes AWS, même si mon seau politique était tout à fait ouvert (comme le vôtre est ici). J'avais accidentellement utilisé les informations d'identification d'un compte (appelons A1) lors du téléchargement d'un seau appartenant à un autre compte (A2). En raison de cette A1 gardé les autorisations sur l'objet et le seau, le propriétaire n'a pas les obtenir. Il y a au moins 3 façons possibles de résoudre ce problème dans ce scénario au moment de l'upload:
$export AWS_DEFAULT_PROFILE=A2
ou, pour un changement permanent, aller modifier~/.aws/credentials
et~/.aws/config
pour déplacer les informations d'identification correctes et la configuration sous[default]
. Puis re-télécharger.aws s3 cp foo s3://mybucket --profile A2
aws s3 cp foo s3://mybucket --acl bucket-owner-full-control
Noter que les deux premiers moyens comprennent un distinct AWS profil. Si vous voulez garder deux ensembles d'informations d'identification de compte disponible pour vous, c'est le chemin à parcourir. Vous pouvez créer un profil avec vos clés, région, etc en faisant
aws configure --profile Foo
. Voir ici pour plus d'info sur Nommé Profils.Il y a aussi légèrement plus impliqué façons de le faire rétroactivement (après téléchargement) dont vous pouvez lire ici.
OriginalL'auteur watsonic
Pour définir correctement les autorisations appropriées pour les nouveaux fichiers ajoutés, ajouter ce seau politique:
Votre seau politique est encore plus ouvert, donc ce n'est pas ce blocage.
Cependant, l'utilisateur doit définir une ACL dans des fichiers nouvellement créés. Exemple Python:
source: https://medium.com/artificial-industry/how-to-download-files-that-others-put-in-your-aws-s3-bucket-2269e20ed041 (avertissement: écrit par moi)
OriginalL'auteur Nino van Hooff