Rendre un bucket public dans Amazon S3 [fermé]

286

Comment puis-je définir un compartiment dans Amazon S3 afin que tous les fichiers soient publiquement en lecture seule par défaut?

Victor
la source
10
Je suis ennuyé que cette question ait été signalée comme hors sujet. AWS est essentiel pour les programmeurs sérieux. J'ajouterais que vous pouvez utiliser la commande de synchronisation cli avec un argument acl comme celui-ci:aws s3 sync ./local-folder-name s3://remote-bucket-name --acl=public-read
John Vandivier
Cette réponse à un message similaire peut aider: stackoverflow.com/a/23102551/475882
jaxxbo

Réponses:

462

Vous pouvez définir une politique de compartiment comme détaillé dans cet article de blog:

http://ariejan.net/2010/12/24/public-readable-amazon-s3-bucket-policy/


Selon la suggestion de @ robbyt, créez une stratégie de compartiment avec le JSON suivant:

{
  "Version": "2008-10-17",
  "Statement": [{
    "Sid": "AllowPublicRead",
    "Effect": "Allow",
    "Principal": { "AWS": "*" },
    "Action": ["s3:GetObject"],
    "Resource": ["arn:aws:s3:::bucket/*" ]
  }]
}

Important : remplacez bucketdans la Resourceligne le nom de votre seau.

Intrications
la source
Lorsque vous utilisez l'AWS CLI officielle arn:aws:s3:::bucket, vous devez également l'ajouter à la Resourcebaie. (Donc, sans le /*.) J'espère que cela aide les autres qui luttent avec ça comme moi.
silvenon
Ma faute. Cela n'est nécessaire que si vous prévoyez de le faire sync, et pas seulement d'afficher le seau.
silvenon
6
Pour prendre en charge l'accès anonyme via le boto de python, en plus de définir cette stratégie, j'ai également dû accorder des Listprivilèges Everyonedans la section Propriétés> Autorisations du compartiment.
Chris Betti
quelle est la règle d'écriture de la version? J'utilise la date actuelle 2017-11-16, il signale: Erreur: La politique doit contenir une chaîne de version valide
Timothy.Li
1
@ Timothy.Li vous souveniez-vous de le mettre entre guillemets? "2017-11-16",
froggomad
57

Amazon fournit un outil générateur de stratégie:

https://awspolicygen.s3.amazonaws.com/policygen.html

Après cela, vous pouvez entrer les exigences de stratégie pour le compartiment sur la console AWS:

https://console.aws.amazon.com/s3/home

evaneus
la source
il s'agit du document officiel de << Utilisation des stratégies de compartiment
Timothy.Li
1
Excellent lien. La syntaxe est si complexe qu'ils ont dû écrire un générateur pour cela.
timbo