Wie kann ich einen S3-Bucket veröffentlichen (die Amazon-Beispielrichtlinie funktioniert nicht)?
Amazon liefert ein Beispiel für Erteilung der Genehmigung an einen Anonymen User wie folgt (siehe Beispiel Cases für die Amazon S3-Bucket-Richtlinien):
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
]
}
In meine Politik, ich habe mich verändert "Eimer" in", "arn:aws:s3:::Eimer/" , "mein Eimer".
Allerdings, sobald ich versuche, auf ein Bild in einen Ordner, der Eimer, ich bekomme die folgende Zugriff verweigert Fehler:
Diese XML-Datei scheint nicht zu haben keine style-Informationen verknüpft
mit. Der Dokument-Baum wird nachfolgend angezeigt.
(wenn ich explizit ändern Sie die Eigenschaften des Bildes an die öffentlichkeit gehen, dann laden Sie Ihre url, das Bild wird perfekt)
Was mache ich falsch?
Update #1: Anscheinend hat es etwas damit zu tun, mit einer Drittanbieter-Website, die ich gegeben habe, zugreifen kann. Obwohl es hat alle Berechtigungen wie der Haupt-Benutzer (mich), und seine Objekte sind im gleichen Ordner, mit den gleichen Berechtigungen, die es immer noch nicht lassen Sie mich machen Sie Sie öffentlich sichtbar ist. Keine Ahnung, warum.
Update #2: Bucket-Richtlinien gelten nicht für Objekte im "Besitz" von anderen, obwohl Sie in Ihrem Eimer, siehe meine Antwort für details.
InformationsquelleAutor der Frage GoodGets | 2012-02-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Als pro GoodGets' Kommentar, das eigentliche Problem wurde dass die bucket-Richtlinien gelten nicht für Objekte im "Besitz" von jemanden, obwohl Sie in Ihrem Eimersiehe GoodGets' eigene Antwort für details (+1).
Ist das ein neuer Eimer/Objekt setup oder werden Sie versuchen, fügen Sie einen Eimer Politik zu einem bereits bestehenden setup?
Im letzteren Fall könnten Sie stolperte über einen Fallstrick im Zusammenhang durch die Interaktion zwischen den inzwischen drei verschiedenen S3-access-control-Mechanismen zur Verfügung, welches ziemlich verwirrend, in der Tat. Das wird behandelt, z.B. in Die Verwendung von ACLs und die Bucket-Richtlinien Zusammen:
Während dies klingt einfach genug, unbeabsichtigte Störungen durch die subtile verschiedenen Vorgaben zwischen ACLs eine Politik:
Dies erklärt, warum das hinzufügen einer ACL gewähren immer garantiert den Zugang, jedoch gilt dies nicht für das hinzufügen einer Richtlinie zu gewähren, da eine explizite Politik verweigern, sofern an anderer Stelle in Ihrem setup würde noch durchgesetzt werden, wie weiter dargestellt, z.B. IAM-und Bucket-Richtlinien Zusammen und Evaluation Logic.
Deshalb empfehle ich, zu beginnen mit einem frischen Eimer/Objekt setup zu testen, die gewünschte Konfiguration, bevor Sie auf ein Produktions-Szenario (was vielleicht noch stören natürlich, aber die Identifizierung/debugging der Unterschied wird leichter).
Glück!
InformationsquelleAutor der Antwort Steffen Opel
Bucket-Richtlinien gelten nicht für Dateien mit anderen Besitzern. So, obwohl, ich habe Schreibzugriff auf einen Dritten, der das Eigentum bleibt Sie, und meine bucket-Richtlinie nicht für diese Objekte.
InformationsquelleAutor der Antwort GoodGets
Stunden die ich vergeudet habe, auf dieser, die Ursache war dumm, und die Lösungen, die hier erwähnt werden nicht helfen (ich habe alle ausprobiert), und der AWS-s3-Berechtigungen docs nicht betonen diesen Punkt.
Wenn Sie
Requester Pays
Einstellung aktiviert ist, können Sie den Anonymen Zugriff aktivieren (entweder durch Eimer die Politik oder die ACL 'Jeder'). Sie können sicher schreiben die Politik und die ACL und anwenden und auch die Konsole verwenden, der explizit eine Datei auf öffentliche, sondern eine nicht unterschriebene url bekomme immer noch einen 403-Zugriff verweigert 100% der Zeit auf die Datei, bis Sie Sie deaktivierenrequester pays
Einstellung in der Konsole für den gesamten Eimer (Registerkarte Eigenschaften, wenn Eimer ist ausgewählt). Oder, ich nehme an, über eine REST-API aufrufen.Deaktiviert
Requester Pays
und jetzt der anonyme Zugriff funktioniert, mit referrer Einschränkungen, ect. In fairness, die AWS-Konsole sagt uns:InformationsquelleAutor der Antwort Jinn
Das Problem mit Ihrer Aktion sollte es in array format
Versuchen Sie dies:
Übergeben Sie Ihre Eimer Namen in 'Ressource'
InformationsquelleAutor der Antwort ashish yadav
Wenn Sie dieses problem mit Zencoder-uploads, Check-out dieser Seite: https://app.zencoder.com/docs/api/encoding/s3-settings/public
InformationsquelleAutor der Antwort Cbas