Objekte mithilfe von Presigned teilen URLs - Amazon S3 in Outposts

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Objekte mithilfe von Presigned teilen URLs

Um zeitlich begrenzten Zugriff auf Objekte zu gewähren, die lokal in einem Outpost gespeichert sind, ohne Ihre Bucket-Richtlinie zu aktualisieren, können Sie ein vorsigniertes Objekt verwenden. URL Mit der Option vorsigniert URLs können Sie als Bucket-Besitzer Objekte mit Personen in Ihrer virtuellen privaten Cloud (VPC) teilen oder ihnen die Möglichkeit geben, Objekte hochzuladen oder zu löschen.

Wenn Sie ein vorsigniertes Objekt mithilfe URL von AWS SDKs oder AWS Command Line Interface (AWS CLI) erstellen, verknüpfen Sie es URL mit einer bestimmten Aktion. Sie gewähren auch zeitlich begrenzten Zugriff auf die vorsignierte Datei, URL indem Sie eine benutzerdefinierte Ablaufzeit wählen, die so niedrig wie 1 Sekunde und maximal 7 Tage sein kann. Wenn Sie den Vorsignierten teilenURL, VPC kann die Person in der die Aktion so ausführen, URL als wäre sie der ursprüngliche signierende Benutzer. Wenn der seine Ablaufzeit URL erreicht hat, URL läuft der ab und funktioniert nicht mehr.

Wenn Sie eine vorsignierte Datei erstellenURL, müssen Sie Ihre Sicherheitsanmeldedaten und anschließend Folgendes angeben:

  • Ein Access Point Amazon Resource Name (ARN) für den Amazon S3 on Outposts-Bucket

  • Ein Objektschlüssel

  • Eine HTTP Methode (GETzum Herunterladen von Objekten)

  • Ein Verfallsdatum und eine Verfallszeit

Ein vorsignierter URL Code ist nur für die angegebene Dauer gültig. Das heißt, Sie müssen die Aktion starten, die bis zum Datum und zur Uhrzeit URL vor dem Ablaufdatum zulässig ist. Sie können eine vorsignierte Option URL mehrfach verwenden, bis das Ablaufdatum und die Ablaufzeit erreicht sind. Wenn Sie ein vorsigniertes Token URL mithilfe eines temporären Tokens erstellt haben, URL läuft das ab, wenn das Token abläuft, auch wenn Sie das URL mit einer späteren Ablaufzeit erstellt haben.

Benutzer in der Virtual Private Cloud (VPC), die Zugriff auf das vorsignierte Objekt haben, URL können auf das Objekt zugreifen. Wenn Sie beispielsweise ein Video in Ihrem Bucket haben und sowohl der Bucket als auch das Objekt privat sind, können Sie das Video mit anderen teilen, indem Sie ein URL vorsigniertes Video generieren. Da vorab signierte URLs Personen Zugriff auf Ihre S3 on Outposts-Buckets gewähren, empfehlen wir IhnenURL, diese entsprechend zu schützen. URLs Weitere Informationen zum Schutz URLs vorsignierter Benutzer finden Sie unter. Einschränkung vordefinierter Funktionen URL

Jeder, der über gültige Sicherheitsanmeldedaten verfügt, kann eine URL vorsignierte erstellen. Das Vorsignierte URL muss jedoch von einer Person erstellt werden, die berechtigt ist, den Vorgang auszuführen, auf dem das Vorsignierte URL basiert. Weitere Informationen finden Sie unter Wer kann einen vorsignierten erstellen URL.

Sie können ein vorsigniertes Objekt für URL die gemeinsame Nutzung eines Objekts in einem S3-Bucket auf Outposts generieren, indem Sie den AWS SDKs und den verwenden. AWS CLI Weitere Informationen finden Sie in den folgenden Beispielen.

Sie können das verwenden AWS SDKs, um ein vorsigniertes Objekt zu generierenURL, das Sie an andere weitergeben können, damit diese ein Objekt abrufen können.

Anmerkung

Wenn Sie das verwenden, AWS SDKs um ein vorsigniertes Objekt zu generierenURL, beträgt die maximale Ablaufzeit für ein vorsigniertes Objekt URL 7 Tage ab dem Zeitpunkt der Erstellung.

Java

Im folgenden Beispiel wird ein vorsigniertes Objekt generiertURL, das Sie an andere weitergeben können, damit diese ein Objekt aus einem S3-Bucket auf Outposts abrufen können. Weitere Informationen finden Sie unter Presigned URLs for S3 auf Outposts verwenden. Um dieses Beispiel zu verwenden, ersetzen Sie Platzhalter für Benutzereingaben mit Ihren eigenen Informationen.

import com.amazonaws.AmazonServiceException; import com.amazonaws.HttpMethod; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest; import java.io.IOException; import java.net.URL; import java.time.Instant; public class GeneratePresignedURL { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String accessPointArn = "*** access point ARN ***"; String objectKey = "*** object key ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withRegion(clientRegion) .withCredentials(new ProfileCredentialsProvider()) .build(); // Set the presigned URL to expire after one hour. java.util.Date expiration = new java.util.Date(); long expTimeMillis = Instant.now().toEpochMilli(); expTimeMillis += 1000 * 60 * 60; expiration.setTime(expTimeMillis); // Generate the presigned URL. System.out.println("Generating pre-signed URL."); GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(accessPointArn, objectKey) .withMethod(HttpMethod.GET) .withExpiration(expiration); URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest); System.out.println("Pre-Signed URL: " + url.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

Im folgenden Beispiel wird ein vorsigniertes Objekt generiertURL, das Sie an andere weitergeben können, damit diese ein Objekt aus einem S3-Bucket auf Outposts abrufen können. Weitere Informationen finden Sie unter Presigned URLs for S3 auf Outposts verwenden. Um dieses Beispiel zu verwenden, ersetzen Sie Platzhalter für Benutzereingaben mit Ihren eigenen Informationen.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; namespace Amazon.DocSamples.S3 { class GenPresignedURLTest { private const string accessPointArn = "*** access point ARN ***"; private const string objectKey = "*** object key ***"; // Specify how long the presigned URL lasts, in hours. private const double timeoutDuration = 12; // Specify your bucket Region (an example Region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); string urlString = GeneratePreSignedURL(timeoutDuration); } static string GeneratePreSignedURL(double duration) { string urlString = ""; try { GetPreSignedUrlRequest request1 = new GetPreSignedUrlRequest { BucketName = accessPointArn, Key = objectKey, Expires = DateTime.UtcNow.AddHours(duration) }; urlString = s3Client.GetPreSignedURL(request1); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } return urlString; } } }
Python

Im folgenden Beispiel wird mithilfe von SDK for Python (Boto3) ein für die gemeinsame Nutzung eines Objekts vorsigniertes URL Objekt generiert. Verwenden Sie beispielsweise einen Boto3-Client und die generate_presigned_url Funktion, um einen vorsignierten Client zu generieren, mit dem Sie ein Objekt URL erstellen können. GET

import boto3 url = boto3.client('s3').generate_presigned_url( ClientMethod='get_object', Params={'Bucket': 'ACCESS_POINT_ARN', 'Key': 'OBJECT_KEY'}, ExpiresIn=3600)

Weitere Informationen zur Verwendung von SDK for Python (Boto3) zum Generieren eines Vorsignierten URL finden Sie unter Python in der Referenz.AWS SDK for Python (Boto) API

Der folgende AWS CLI Beispielbefehl generiert einen URL für einen S3 on Outposts-Bucket vorsignierten Bucket. Um dieses Beispiel zu verwenden, ersetzen Sie den Platzhalter für Benutzereingaben mit Ihren eigenen Informationen.

Anmerkung

Wenn Sie das verwenden, AWS CLI um ein vorsigniertes zu generierenURL, beträgt die maximale Ablaufzeit für ein vorsigniertes URL Dokument 7 Tage ab dem Zeitpunkt der Erstellung.

aws s3 presign s3://arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/example-outpost-access-point/mydoc.txt --expires-in 604800

Weitere Informationen finden Sie unter vorsignieren in der AWS CLI Befehlsreferenz.