Der Versuch, S3 zu verstehen ... Wie schränken Sie den Zugriff auf eine Datei ein, die Sie auf S3 hochladen? Zum Beispiel hat jeder Benutzer aus einer Webanwendung Dateien, die er hochladen kann. Wie aber schränken Sie den Zugriff ein, sodass nur der Benutzer auf diese Datei zugreifen kann? Es scheint, als ob die Abfrage-String-Authentifizierung ein Ablaufdatum benötigt und das für mich nicht funktioniert, gibt es eine andere Möglichkeit, dies zu tun?Amazon S3-Berechtigungen
Antwort
Sie haben die ganze Zugriffslogik auf S3 in Ihren Anwendungen bauen
Es gibt verschiedene Möglichkeiten, den Zugriff auf die S3-Objekte zu steuern:
Verwenden der Query-String-Auth - aber wie Sie Beachten Sie, dass dies ein Ablaufdatum erfordert. Sie könnten es weit in die Zukunft schaffen, was für die meisten Dinge, die ich getan habe, gut genug war.
Verwenden Sie die S3-ACLS - dies erfordert jedoch, dass der Benutzer über ein AWS-Konto verfügt und sich mit AWS authentifiziert, um auf das S3-Objekt zuzugreifen. Dies ist wahrscheinlich nicht das, wonach Sie suchen.
Sie können den Zugriff auf das S3-Objekt über Ihre Anwendung durchführen, die Ihre Zugriffskontrolllogik implementiert. Dies bringt die gesamte Bandbreite durch Ihre Box.
Sie können eine EC2-Instanz mit Ihrer Proxy-Logik einrichten - dies hält die Bandbreite näher an S3 und kann die Latenz in bestimmten Situationen reduzieren. Der Unterschied zwischen diesem und # 3 könnte minimal sein, hängt aber von Ihrer speziellen Situation ab.
- Haben der Benutzer des Server
- Haben der Server prallte gegen eine Abfrage-String-Authentifizierung mit einem kurzen Ablauf (Minuten, Stunden?)
- Haben Sie Ihre Server # 2 umleiten einrichten
Ich habe auch damit zu tun gehabt. Don, der die S3 PHP Klasse geschrieben hat, die ich benutze, wies darauf hin, dass man Dirs innerhalb von Buckets verwenden kann. So können Sie Ihre Datei in ein Verzeichnis mit einer zufälligen Zeichenfolge setzen und dann zu diesem weiterleiten. mybucket.amazon.net/wef49kfe4j409jf4f4f9jdfd/myfile.zip Während nicht ganz sicher, können Sie den Zugriff darauf steuern, indem Sie Berechtigungen ändern oder erstellen und löschen (das Original sicher in einem anderen Bucket aufbewahren).