Eingeschränkter Zugriff auf Amazon S3-Buckets

1393
Tomas Markauskas

Ist es möglich, den Zugriff auf ein Amazon S3-Konto irgendwie einzuschränken. Ich mag die Idee nicht, meinen geheimen Zugriffsschlüssel an alle meine Anwendungen zu verteilen, die nur auf einen einzigen Bucket meines Kontos zugreifen möchten. Wenn jemand Zugriff auf eine der Anwendungen erhält, kann ich alle meine auf S3 gespeicherten Daten verlieren.

Eine Möglichkeit, über die ich nachgedacht habe, wäre, ein zweites S3-Konto zu erstellen und ihm Zugriff auf nur einen Bucket des Hauptkontos zu gewähren. Dies ist jedoch keine wirklich gute Lösung.

Eine weitere schöne Sache für mich wäre, dem sekundären Konto nur Schreibzugriff (aber nicht Ändern / Löschen) und Lesezugriff zu geben. Auf diese Weise konnte ich Backups oder andere Dateien hochladen und sicher sein, dass sie nicht verloren gehen.

1

1 Antwort auf die Frage

1
Craig Treptow

Ich denke, das wird deine Frage beantworten:

Scrollen Sie nach unten und lesen Sie die Antwort von Michael Fisher.

Codieren Sie Ihren Schlüssel NICHT auf dem Client. Der richtige Weg, dies zu tun, besteht darin, (über einen sicheren Kanal) eine vordefinierte Anforderung mit einer verschlüsselten Signatur zu übermitteln. Diese Signatur kann mit der von S3 bereitgestellten API erstellt werden.

Sie können die Zusammensetzung der verschlüsselten Signaturanforderung aus einem der Anforderungsobjekte in der Klasse S3.cs extrahieren (ich beziehe mich auf die C # -Implementierung - nicht sicher, welche Sie verwenden, aber sie sollten ziemlich analistisch sein). Bitten Sie Ihren Client, das Objekt sicher von Ihrer Serverseite anzufordern. Statt das Objekt zurückzuspucken, spucken Sie die formatierte Anforderung zurück. Ich glaube, dies ist die sicherste Technik, vorausgesetzt, Sie haben den Kanal ordnungsgemäß gesichert (SSL oder ein beliebiges Schema).