Machen Sie einen Bucket in Amazon S3 öffentlich [geschlossen]

286

Wie kann ich in Amazon S3 einen Bucket festlegen, damit alle Dateien standardmäßig öffentlich schreibgeschützt sind?

Sieger
quelle
10
Ich bin verärgert, dass diese Frage als nicht zum Thema gehörend markiert wurde. AWS ist für ernsthafte Programmierer von entscheidender Bedeutung. Ich würde hinzufügen, dass Sie den Befehl cli sync mit einem solchen Argument verwenden können:aws s3 sync ./local-folder-name s3://remote-bucket-name --acl=public-read
John Vandivier
Diese Antwort auf einen ähnlichen Beitrag kann helfen: stackoverflow.com/a/23102551/475882
jaxxbo

Antworten:

462

Sie können eine Bucket-Richtlinie festlegen, wie in diesem Blog-Beitrag beschrieben:

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


Erstellen Sie gemäß dem Vorschlag von @ robbyt eine Bucket-Richtlinie mit dem folgenden JSON:

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

Wichtig : Ersetzen Sie bucketin der ResourceZeile durch den Namen Ihres Eimers.

Komplikationen
quelle
Bei Verwendung der offiziellen AWS-CLI arn:aws:s3:::bucketmuss dem ResourceArray ebenfalls etwas hinzugefügt werden . (Also ohne die /*.) Ich hoffe, das hilft anderen, die wie ich damit zu kämpfen hatten.
Silvenon
Mein Fehler. Dies ist nur erforderlich, wenn Sie planen sync, nicht nur den Eimer anzuzeigen.
Silvenon
6
Um den anonymen Zugriff über Pythons Boto zu unterstützen, musste ich zusätzlich zum Festlegen dieser Richtlinie im Abschnitt Eigenschaften> Berechtigungen des Buckets ListBerechtigungen erteilen Everyone.
Chris Betti
Was ist die Regel beim Schreiben der Version? Ich verwende das aktuelle Datum 2017-11-16, es meldet: Fehler: Die Richtlinie muss eine gültige Versionszeichenfolge enthalten
Timothy.Li
1
@ Timothy.Li hast du daran gedacht, es in Anführungszeichen zu setzen? "2017-11-16",
Froggomad
57

Amazon bietet ein Tool zur Richtliniengenerierung:

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

Danach können Sie die Richtlinienanforderungen für den Bucket in der AWS-Konsole eingeben:

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

evaneus
quelle
Dies ist das offizielle Dokument von << Verwenden von Bucket-Richtlinien und Benutzerrichtlinien >> docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html
Timothy.Li
1
Toller Link. Die Syntax ist so komplex, dass sie einen Generator dafür schreiben musste.
Timbo