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.
Laden Sie Objekte mit vorsignierten Objekten herunter und laden Sie sie hoch URLs
Sie können presigned verwenden URLs , um zeitlich begrenzten Zugriff auf Objekte in Amazon S3 zu gewähren, ohne Ihre Bucket-Richtlinie zu aktualisieren. 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 Identity and Access Management (IAM-) Prinzipals, der die URL generiert hat.
Sie können Presigned auch verwenden URLs , um es jemandem zu ermöglichen, ein bestimmtes Objekt in Ihren Amazon S3 S3-Bucket hochzuladen. Dies ermöglicht einen Upload, ohne dass eine andere Partei über AWS Sicherheitsanmeldedaten 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 (
GETzum Herunterladen von Objekten,PUTzum Hochladen,HEADzum Lesen von Objektmetadaten usw.) -
Ein Ablaufzeitintervall
Wenn Sie Presigned URLs zum Hochladen von Objekten verwenden, können Sie die Objektintegrität anhand von Prüfsummen überprüfen. Vorsignierte, die mit AWS Signature Version 2 URLs erstellt wurden, unterstützen zwar nur MD5 Prüfsummen, aber mit AWS Signature Version 4 URLs erstellte Versionen unterstützen zusätzliche Prüfsummenalgorithmen, darunterCRC-64/NVME,, und. CRC32 CRC32C SHA-1 SHA-256 Um diese zusätzlichen Prüfsummenalgorithmen zu verwenden, stellen Sie sicher, dass Sie AWS Signature Version 4 verwenden, und fügen Sie Ihrer Upload-Anfrage den entsprechenden Prüfsummen-Header hinzu. Weitere Informationen über die Objektintegrität finden Sie unter Überprüfen der Objektintegrität in Amazon S3.
Themen
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-Benutzer — Gültig bis zu 7 Tage, 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.
-
Temporäre Sicherheitsanmeldedaten — Sie können nicht länger gültig sein als die Anmeldeinformationen selbst. Zu diesen Anmeldeinformationen gehören:
-
IAM-Rollenanmeldedaten — Die vorsignierte URL läuft ab, wenn die Rollensitzung abläuft, auch wenn Sie eine längere Ablaufzeit angeben.
-
Von EC2 Amazon-Instances verwendete IAM-Rollenanmeldedaten — Gültig für die Dauer der Rollenanmeldedaten (normalerweise 6 Stunden).
-
AWS Security Token Service Anmeldeinformationen — Gültig nur für die Dauer der temporären Anmeldeinformationen.
-
Anmerkung
Wenn Sie eine vorsignierte URL mit temporären Anmeldeinformationen erstellt haben, verfällt die URL mit Ablauf der Anmeldeinformationen. Im Allgemeinen läuft eine vorsignierte URL ab, wenn die Anmeldeinformationen, mit denen Sie sie erstellt haben, gesperrt, gelöscht oder deaktiviert werden. Dies gilt auch dann, wenn die URL mit einer späteren Ablaufzeit erstellt wurde. Informationen zur Gültigkeitsdauer temporärer Sicherheitsanmeldedaten finden Sie unter AWS STS API-Operationen vergleichen 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 das AWS CLI oder verwenden AWS SDKs, kann die Ablaufzeit auf bis zu 7 Tage festgelegt werden.
Wenn Sie eine vorsignierte URL unter Verwendung eines temporären Tokens erstellt haben, läuft die URL ab, sobald der Token abläuft. Im Allgemeinen läuft eine vorsignierte URL ab, wenn die Anmeldeinformationen, mit denen Sie sie erstellt haben, gesperrt, gelöscht oder deaktiviert werden. Dies gilt auch dann, wenn die URL mit einer späteren Ablaufzeit erstellt wurde. 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 URLs handelt es sich bei vorsignierten Token um Inhaber-Token, die denjenigen Zugang gewähren, die sie besitzen. Daher empfehlen wir Ihnen, sie angemessen zu schützen. Im Folgenden finden Sie einige Methoden, mit denen Sie die Verwendung Ihrer vorsignierten Daten einschränken können. URLs
AWS Signatur 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 amzn-s3-demo-bucket-Bucket zu verweigern, wenn die Signatur mehr als 10 Minuten alt ist. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die (Platzhalter für Benutzereingaben) durch Ihre Informationen.user input
placeholders
Weitere Informationen zu Richtlinienschlüsseln im Zusammenhang mit AWS Signature Version 4 finden Sie unter AWS Signature Version 4-Authentifizierung in der Amazon Simple Storage Service API-Referenz.
Beschränkung der Netzwege
Wenn Sie die Nutzung des vorsignierten URLs und des gesamten Amazon S3 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-Richtlinienerklärung verlangt, dass der Principal AWS nur aus dem angegebenen Netzwerkbereich 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 die (Platzhalter für Benutzereingaben) durch Ihre Informationen.user input
placeholders
{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddressIfExists": {"aws:SourceIp": "IP-address-range"}, "BoolIfExists": {"aws:ViaAWSService": "false"} } }
Häufig gestellte Fragen für Presigned URLs
F: Warum URLs läuft meine vorsignierte Version vor der konfigurierten Ablaufzeit ab?
Vorsignierte URLs bleiben nur gültig, solange die zugrundeliegenden Anmeldeinformationen gültig sind. Eine vorsignierte URL läuft entweder zu ihrer konfigurierten Ablaufzeit oder zu dem Zeitpunkt ab, zu dem die zugehörigen Anmeldeinformationen ablaufen, je nachdem, was zuerst eintritt. Bei Aufgaben oder Containern von Amazon Elastic Container Service wechseln die Rollenanmeldedaten in der Regel alle 1—6 Stunden. Wenn Sie AWS Security Token Service (AWS STS) verwenden AssumeRole, läuft die vorsignierte URL ab, wenn die Rollensitzung endet, was standardmäßig 1 Stunde dauert. Bei EC2 Amazon-Instance-Profilen rotieren die Anmeldeinformationen für Metadaten regelmäßig mit einer maximalen Gültigkeitsdauer von etwa 6 Stunden.
F: Warum erhalte ich die Fehlermeldung 403 Forbidden, wenn ich auf eine vorsignierte URL zugreife?
Stellen Sie vor dem Generieren einer vorsignierten URL sicher, dass Sie die richtigen Berechtigungen konfiguriert haben. Der IAM-Benutzer oder die IAM-Rolle, die die URL generiert, muss über die erforderlichen Berechtigungen verfügen, z. B. s3:GetObject für den jeweiligen Vorgang. Stellen Sie außerdem sicher, dass die Amazon S3 S3-Bucket-Richtlinie den Zugriff auf das Objekt nicht ausdrücklich verweigert.
F: Ich erhalte SignatureDoesNotMatch Fehler. Wie lässt sich dieses Problem beheben?
Wenn Sie bei der Verwendung von Amazon S3 Presigned auf SignatureDoesNotMatch Fehler stoßen URLs, sollten Sie mehrere häufige Ursachen in Betracht ziehen. Stellen Sie zunächst sicher, dass Ihre Systemuhr mit einem Network Time Protocol (NTP) -Server synchronisiert ist, da selbst kleine Zeitabweichungen Signaturen ungültig machen können. Beachten Sie als Nächstes, dass einige Unternehmens-Proxys möglicherweise Header oder Abfragezeichenfolgen ändern, was möglicherweise zu Signaturinkongruenzen führen kann. Um Fehler zu beheben, versuchen Sie, ohne den Proxy zu testen. Stellen Sie abschließend sicher, dass alle Anforderungsparameter — einschließlich der HTTP-Methode, der Header und der Abfragezeichenfolge — bei der Generierung und Verwendung der URL exakt übereinstimmen. Durch die Behebung dieser Probleme können Fehler häufig behoben werden. SignatureDoesNotMatch
F: Ich erhalte ExpiredToken Fehler. Was soll ich tun?
Wenn Sie bei der Verwendung von presigned ExpiredToken Fehler erhalten URLs, bedeutet dies, dass die für die Generierung der URL verwendeten AWS Anmeldeinformationen nicht mehr gültig sind. Um dieses Problem zu beheben, aktualisieren Sie Ihre AWS Anmeldeinformationen, bevor Sie neue URLs vorsignierte Anmeldeinformationen generieren. Für Anwendungen mit langer Laufzeit empfehlen wir die Implementierung einer Logik zur Aktualisierung der Anmeldeinformationen, um einen kontinuierlichen Zugriff zu gewährleisten. Gegebenenfalls können Sie langlebigere Anmeldeinformationen verwenden oder Mechanismen zur Token-Aktualisierung implementieren. Wenn Sie AWS Security Token Service (AWS STS) verwenden, stellen Sie sicher AssumeRole, dass Ihre konfigurierte Sitzungsdauer den Anforderungen Ihres Anwendungsfalls entspricht. Denken Sie daran, dass vorsignierte Anmeldeinformationen nur für die Dauer der ihnen zugrunde liegenden Anmeldeinformationen URLs gültig sind. Daher ist die Implementierung einer ordnungsgemäßen Verwaltung der Anmeldeinformationen unerlässlich.