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?


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.


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.