Arbeiten mit vorsignierten URLs - Amazon Simple Storage Service

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.

Arbeiten mit vorsignierten URLs

Um zeitlich begrenzten Zugriff auf Objekte in Amazon S3 zu gewähren, ohne Ihre Bucket-Richtlinie zu aktualisieren, können Sie vorsignierte URLs verwenden. Eine vorsignierte URL kann in einem Browser eingegeben oder von einem Programm verwendet werden, um ein Objekt herunterzuladen. Die von der vorsignierten URL verwendeten Anmeldeinformationen sind die des AWS Benutzers, der die URL generiert hat.

Sie können auch vorsignierte URLs verwenden, um es einer Person zu ermöglichen, ein bestimmtes Objekt in Ihren Amazon-S3-Bucket hochzuladen. Dies ermöglicht einen Upload, ohne dass eine andere Partei über AWS Sicherheitsanmeldeinformationen oder Berechtigungen verfügen muss. Wenn im Bucket bereits ein Objekt mit demselben Schlüssel vorhanden ist, wie in der vorsignierten URL angegeben wird, ersetzt Amazon S3 das vorhandene Objekt durch das hochgeladene Objekt.

Sie können die vorsignierte URL mehrmals verwenden, bis hin zum Ablaufdatum und -zeitpunkt.

Wenn Sie eine vorsignierte URL erstellen, müssen Sie Ihre Sicherheitsanmeldedaten eingeben und dann Folgendes angeben:

  • Ein Amazon-S3-Bucket

  • Ein Objektschlüssel (Herunterladen: dieses Objekt wird sich in Ihrem Amazon-S3-Bucket befinden; Hochladen: der Name der hochzuladenden Datei)

  • Eine HTTP-Methode (GET zum Herunterladen oder PUT zum Hochladen von Objekten)

  • Ein Ablaufzeitintervall

Derzeit unterstützen vorsignierte Amazon-S3-URLs die Verwendung der folgenden Prüfsummenalgorithmen für die Datenintegrität (CRC32, CRC32C, SHA-1, SHA-256) nicht, wenn Sie Objekte hochladen. Zur Überprüfung der Integrität Ihres Objekts nach dem Hochladen können Sie einen MD5-Digest des Objekts bereitstellen, wenn Sie es mit einer vorsignierten URL hochladen. Weitere Informationen über die Objektintegrität finden Sie unter Überprüfung der Objektintegrität.

Wer eine vorsignierte URL erstellen kann

Alle Benutzer mit gültigen Sicherheitsanmeldeinformationen können vorsignierte URLs erstellen. Um erfolgreich auf ein Objekt zugreifen zu können, muss die vorsignierte URL von jemandem erstellt werden, der die Berechtigung für den Vorgang besitzt, auf dem die vorsignierte URL basiert.

Die Arten von Anmeldeinformationen, die Sie zum Erstellen einer vorsignierten URL verwenden können:

  • IAM-Instance-Profil – Bis zu 6 Stunden gültig.

  • AWS Security Token Service: Bei einer Unterzeichnung mit langfristigen Sicherheitsanmeldedaten bis zu 36 Stunden oder für die Dauer der temporären Anmeldeinformationen gültig, je nachdem, was zuerst endet.

  • IAM-Benutzer – Bis zu 7 Tage gültig, wenn Sie AWS Signature Version 4 verwenden.

    Um eine vorsignierte URL zu erstellen, die bis zu 7 Tage gültig ist, delegieren Sie zunächst die IAM-Benutzer-Anmeldeinformationen (den Zugriffsschlüssel und den geheimen Schlüssel) an die Methode, die Sie verwenden, um die vorsignierte URL zu erstellen.

Anmerkung

Wenn Sie eine vorsignierte URL mit temporären Anmeldeinformationen erstellt haben, verfällt die URL mit Ablauf der Anmeldeinformationen. Dies gilt auch dann, wenn die URL mit einer späteren Ablaufzeit erstellt wurde. Informationen zu den Lebensdauerzeiten temporärer Sicherheitsanmeldeinformationen finden Sie unter Vergleichen von AWS STS -API-Operationen im IAM-Benutzerhandbuch.

Ablaufzeit für vorsignierte URLs

Eine vorsignierte URL bleibt für den Zeitraum gültig, der bei der Generierung der URL angegeben wurde. Wenn Sie eine vorsignierte URL mit der Amazon-S3-Konsole erstellen, kann die Ablaufzeit auf einen Zeitraum zwischen 1 Minute und 12 Stunden festgelegt werden. Wenn Sie die AWS CLI oder AWS SDKs verwenden, kann die Ablaufzeit auf bis zu 7 Tage festgelegt werden.

Wenn Sie eine vorsignierte URL mit einem temporären Token erstellt haben, läuft die URL ab, wenn das Token abläuft, auch wenn Sie die URL mit einer späteren Ablaufzeit erstellt haben. Weitere Informationen darüber, wie sich die von Ihnen verwendeten Anmeldeinformationen auf die Ablaufzeit auswirken, finden Sie unter Wer eine vorsignierte URL erstellen kann.

Amazon S3 überprüft das Ablaufdatum und die Ablaufzeit in einer signierten URL zum Zeitpunkt der HTTP-Anforderung. Beginnt ein Client beispielsweise mit dem Herunterladen einer großen Datei unmittelbar vor der Ablaufzeit, wird der Download auch dann fortgesetzt, wenn die Ablaufzeit während des Downloads verstreicht. Wenn die Verbindung jedoch unterbrochen wird und der Client versucht, den Download nach Ablauf der Zeit erneut zu starten, schlägt der Download fehl.

Beschränkung der Funktionen für vorsignierte URLs

Die Funktionen einer vorsignierten URL sind durch die Berechtigungen des Benutzers eingeschränkt, der sie erstellt hat. Im Wesentlichen sind vorsignierte URLs Inhaber-Token, die denjenigen, die sie besitzen, Zugriff gewähren. Daher empfehlen wir Ihnen, sie angemessen zu schützen. Im Folgenden finden Sie einige Methoden, die Sie verwenden können, um die Verwendung Ihrer vorsignierten URLs zu beschränken.

AWS Signature Version 4 (SigV4)

Um ein bestimmtes Verhalten zu erzwingen, wenn vorsignierte URL-Anfragen mit AWS Signature Version 4 (SigV4) authentifiziert werden, können Sie Bedingungsschlüssel in Bucket-Richtlinien und Zugriffspunkt-Richtlinien verwenden. Beispielsweise verwendet die folgende Bucket-Richtlinie die s3:signatureAge-Bedingung, um jede vorsignierte URL-Anfrage von Amazon S3 für Objekte im DOC-EXAMPLE-BUCKET1-Bucket zu verweigern, wenn die Signatur mehr als 10 Minuten alt ist. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Deny a presigned URL request if the signature is more than 10 min old", "Effect": "Deny", "Principal": {"AWS":"*"}, "Action": "s3:*", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "Condition": { "NumericGreaterThan": { "s3:signatureAge": 600000 } } } ] }

Weitere Informationen zu Richtlinienschlüsseln im Zusammenhang mit AWS Signature Version 4 finden Sie unter AWS Authentifizierung mit Signature Version 4 in der API-Referenz zu Amazon Simple Storage Service.

Beschränkung der Netzwege

Wenn Sie die Verwendung vorsignierter URLs und des gesamten Amazon S3-Zugriffs auf bestimmte Netzwerkpfade einschränken möchten, können Sie AWS Identity and Access Management (IAM)-Richtlinien schreiben. Diese Richtlinien können für den IAM-Prinzipal, der den Aufruf vornimmt, den Amazon-S3-Bucket oder beide festgelegt werden.

Eine Netzwerkpfadbeschränkung für den IAM-Prinzipal erfordert, dass der Benutzer dieser Anmeldeinformationen Anfragen aus dem angegebenen Netzwerk stellt. Eine Einschränkung des Buckets oder des Zugriffspunkts erfordert, dass alle Anfragen an diese Ressource aus dem angegebenen Netz stammen. Diese Einschränkungen gelten auch außerhalb des Szenarios der vorsignierten URL.

Der globale IAM-Bedingungsschlüssel, den Sie verwenden, hängt von der Art des Endpunkts ab. Wenn Sie den öffentlichen Endpunkt für Amazon S3 verwenden, verwenden Sie aws:SourceIp. Wenn Sie einen Virtual Private Cloud (VPC)-Endpunkt für Amazon S3 nutzen, verwenden Sie aws:SourceVpc oder aws:SourceVpce.

Die folgende IAM-Richtlinienanweisung erfordert, dass der Prinzipal AWS nur aus dem angegebenen Netzwerkbereich auf zugreift. Mit dieser Richtlinie müssen alle Zugriffe von diesem Bereich ausgehen. Dies gilt auch für den Fall, dass jemand eine vorsignierte URL für Amazon S3 verwendet. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddressIfExists": {"aws:SourceIp": "IP-address-range"}, "BoolIfExists": {"aws:ViaAWSService": "false"} } }

Weitere Beispiele für Bucket-Richtlinien, die den aws:SourceIp AWS globalen Bedingungsschlüssel verwenden, um den Zugriff auf einen Amazon S3-Bucket auf einen bestimmten Netzwerkbereich zu beschränken, finden Sie unter Verwalten des Zugriffs auf der Grundlage bestimmter IP-Adressen.