»Wir würden gern bei ausgewählten Projekten unseren Geschäftspartnern für den Austausch von Daten den Zugriff auf einzelne S3-Buckets ermöglichen. Wie ist das mit wenig Aufwand am besten möglich?
«
Immer dann, wenn externe Geschäftspartner ausgewählte Objekte in den eigenen S3-Bucket hochladen wollen, sind vorsignierte URLs nützlich. Der Vorteil dabei ist, dass die Partner kein AWS-Konto benötigen. Zum Erstellen einer vorsignierten URL müssen Sie Ihre Sicherheitsanmeldeinformationen bereitstellen und anschließend einen Bucket-Namen, einen Objektschlüssel, eine HTTP-Methode (PUT für das Hochladen von Objekten) sowie ein Datum und eine Uhrzeit für den Ablauf angeben. Die URLs lassen sich für die Arbeit mit der serverseitigen Verschlüsselung (SSE) von Amazon S3 generieren. Dabei haben Sie die Wahl zwischen der Verschlüsselung durch den AWS Key Management Service (SSE-KMS) oder Amazon S3 (SSE-S3). Für die Erstellung einer vorab signierten URL mit serverseitiger Verschlüsselung findet die Signaturversion 4 (SigV4) Verwendung. Dabei können Sie SigV4 durch die AWS SDK oder AWS CLI aktivieren. Das folgende Code-Beispiel zeigt eine explizite Konfiguration über den Amazon-S3-Client (AWS SDK for Java 1.9.31):
AmazonS3Client s3 = new AmazonS3Client(
new ClientConfiguration().withSignerOverride("AWSS3V4SignerType"));
Anschließend können Sie eine vorsignierte PUT-URL mit SSE-KMS generieren. Dabei verwendet Amazon S3 den Standard-KMS-Master-Key, der automatisch für Sie erstellt wird. Die Vorgehensweise zeigt der Kasten "PUT-URL erzeugen" auf dieser Seite.
PUT-URL erzeugen
String myExistingBucket = ... // an existing bucket String myKey = ... // target S3 key // Generieren Sie eine vorsignierte PUT-URL zur Verwendung mit
Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.