Verwenden vorsignierter URLs - Amazon Simple Storage Service

Verwenden vorsignierter URLs

Standardmäßig werden alle Buckets und Objekte als privat eingestuft. Sie können jedoch eine vorsignierte URL verwenden, um Objekte optional zu teilen oder Ihren Kunden/Benutzern zu ermöglichen, Objekte ohne AWS-Sicherheitsanmeldeinformationen oder -Berechtigungen in Buckets hochzuladen.

Sie können vorsignierte URLs verwenden, um eine URL zu generieren, die für den Zugriff auf Ihre Amazon-S3-Buckets verwendet werden kann. Wenn Sie eine vorsignierte URL erstellen, verknüpfen Sie diese mit einer bestimmten Aktion. Sie können die URL freigeben, und jeder, der Zugriff darauf hat, kann die in die URL eingebettete Aktion so ausführen, als wäre er der ursprüngliche signierende Benutzer. Die URL läuft ab und funktioniert nicht mehr, wenn sie ihren Ablaufzeitpunkt erreicht hat.

Wichtig

Für alle Regionen, die nach dem 20. März 2019 gestartet wurden, gibt Amazon S3 den Fehler „HTTP 400 Bad Request“ zurück, wenn eine Anforderung an einer falschen Amazon-S3-Position empfangen wird.

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 handelt es sich bei vorsignierten URLs um ein Inhaber-Token, das denen, die sie besitzen, Zugriff gewährt. Daher empfehlen wir Ihnen, sie angemessen zu schützen.

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

Eine Einschränkung des Netzwerkpfads für den Prinzipal erfordert, dass der Benutzer dieser Anmeldeinformationen Anfragen über das angegebene Netzwerk stellt. Eine Einschränkung des Buckets schränkt den Zugriff auf diesen Bucket nur auf Anforderungen ein, die aus dem angegebenen Netzwerk stammen. Beachten Sie, dass diese Einschränkungen auch außerhalb des Szenarios mit vorsigniertem URL gelten.

Die globale IAM-Bedingung, die 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 VPC-Endpunkt für Amazon S3 verwenden, verwenden Sie aws:SourceVpc oder aws:SourceVpce.

Die folgende IAM-Richtlinienanweisung verlangt, dass der Prinzipal ausschließlich über den angegebenen Netzwerkbereich auf AWS zugreift. Mit dieser Richtlinienanweisung muss der gesamte Zugriff aus diesem Bereich stammen. Dies schließt den Fall ein, dass jemand eine vorsignierte URL für S3 verwendet.

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

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 Anmeldeinformationen, die Sie zum Erstellen einer vorsignierten URL verwenden können:

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

  • AWS Security Token Service: Bis zu 36 Stunden gültig, wenn mit permanenten Anmeldeinformationen signiert (beispielsweise Anmeldeinformationen des AWS-Konto-Stammbenutzers oder eines IAM-Benutzers).

  • IAM-Benutzer: Bis zu 7 Tage gültig, bei Verwendung von AWS Signature Version 4.

    Um eine vorsignierte URL zu erstellen, die bis zu 7 Tage gültig ist, geben Sie zunächst IAM-Benutzer-Anmeldeinformationen (den Zugriffsschlüssel und den geheimen Schlüssel) für das SDK an, das Sie verwenden. Erzeugen Sie dann eine vorsignierte URL mit AWS-Signature Version 4.

Anmerkung
  • Wenn Sie eine vorsignierte URL mit einem temporären Token erstellt haben, verfällt die URL mit Ablauf des Token, auch wenn die URL mit einer späteren Ablaufzeit erstellt wurde.

  • Da vorsignierte URLs jedem, der die URL hat, Zugriff auf Ihre Amazon-S3-Buckets gewähren, empfehlen wir Ihnen, diese angemessen zu schützen. Weitere Informationen zum Schutz von vorsignierten URLs finden Sie unter Beschränkung der Funktionen für vorsignierte URLs.

Wann überprüft Amazon S3 das Ablaufdatum und die Ablaufzeit in einer vorsignierten URL?

Amazon S3 überprüft das Ablaufdatum und die Ablaufzeit in einer signierten URL zum Zeitpunkt der HTTP-Anforderung. Wenn beispielsweise ein Client unmittelbar vor der Ablaufzeit mit dem Download einer großen Datei beginnt, sollte der Download abgeschlossen werden, auch wenn die Ablaufzeit während des Downloads überschritten wird. Wenn die Verbindung getrennt wird und der Client nach der Überschreitung der Ablaufzeit versucht, den Download erneut zu starten, schlägt der Download fehl.

Weitere Informationen zur Verwendung einer vorsignierten URL zum Teilen oder Hochladen von Objekten finden Sie in den folgenden Themen.