Verwenden signierter URLs - Amazon CloudFront

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.

Verwenden signierter URLs

Eine signierte URL enthält zusätzliche Informationen, wie z. B. Ablaufdatum und -zeit, mit denen Sie den Zugriff auf Ihre Inhalte besser kontrollieren können. Diese zusätzlichen Informationen sind in einer Richtlinienanweisung enthalten, die entweder auf einer vordefinierten oder einer benutzerdefinierten Richtlinie basieren. Die Unterschiede zwischen vordefinierten und benutzerdefinierten Richtlinien sind in den nächsten beiden Abschnitten beschrieben.

Anmerkung

Sie können einige signierte URLs mit vordefinierten Richtlinien und einige signierte URLs mit benutzerdefinierten Richtlinien für dieselbe Verteilung erstellen.

Auswählen zwischen vordefinierten und benutzerdefinierten Richtlinien für signierte URLs

Wenn Sie eine signierte URL erstellen, schreiben Sie eine Richtlinienanweisung im JSON-Format, welche die Einschränkungen für die signierte URL festlegt, z. B. wie lange die URL gültig ist. Sie können entweder eine vordefinierte Richtlinie oder eine benutzerdefinierte Richtlinie verwenden. Im Folgenden finden Sie einen Vergleich zwischen vordefinierten und benutzerdefinierten Richtlinien:

Beschreibung Vordefinierte Richtlinie Benutzerdefinierte Richtlinie

Sie können die Richtlinienanweisung für mehrere Dateien wiederverwenden. Um die Richtlinienanweisung wiederzuverwenden, müssen Sie Platzhalterzeichen im Resource-Objekt verwenden. Weitere Informationen finden Sie unter Werte, die Sie in der Richtlinienanweisung für eine signierte URL angeben, die eine benutzerdefinierte Richtlinie verwendet.)

Nein

Ja

Sie können das Datum und die Zeit festlegen, ab denen Benutzer auf Ihre Inhalte zugreifen können.

Nein

Ja (optional)

Sie können das Datum und die Zeit festlegen, ab denen Benutzer nicht mehr auf Ihre Inhalte zugreifen können.

Ja

Ja

Sie können die IP-Adresse oder den Bereich von IP-Adressen der Benutzer festlegen, die auf Ihre Inhalte zugreifen können.

Nein

Ja (optional)

Die signierte URL enthält eine Base64-codierte Version der Richtlinie, was zu einer längeren URL führt.

Nein

Ja

Informationen zum Erstellen von signierten URLs mit einer vordefinierten Richtlinie finden Sie unter Erstellen einer signierten URL mit einer vordefinierten Richtlinie.

Informationen zum Erstellen von signierten URLs mit einer benutzerdefinierten Richtlinie finden Sie unter Erstellen einer signierten URL mit einer benutzerdefinierten Richtlinie.

Funktionsweise von signierten URLs

Im Folgenden finden Sie eine Übersicht darüber, wie Sie CloudFront und Amazon S3 für signierte URLs konfigurieren und wie CloudFront reagiert, wenn ein Benutzer eine signierte URL verwendet, um eine Datei anzufordern.

  1. Geben Sie in Ihrer CloudFront Verteilung eine oder mehrere vertrauenswürdige Schlüsselgruppen an, die die öffentlichen Schlüssel enthalten, die zur Überprüfung der URL-Signatur verwenden CloudFront kann. Sie verwenden die entsprechenden privaten Schlüssel, um die URLs zu signieren.

    Weitere Informationen finden Sie unter Festlegen der Aussteller, die signierte URLs und signierte Cookies erstellen können.

  2. Sie entwickeln Ihre Anwendung so, dass ermittelt wird, ob ein Benutzer über Zugriff auf Ihre Inhalte verfügen sollte, und dass signierte URLs für die Dateien oder Teile Ihrer Anwendung erstellt werden, für die Sie den Zugriff einschränken möchten. Weitere Informationen finden Sie unter den folgenden Themen:

  3. Ein Benutzer fordert eine Datei an, für die Sie signierte URLs verlangen.

  4. Ihre Anwendung stellt sicher, dass der Benutzer zum Zugriff auf die Datei berechtigt ist: Er hat sich angemeldet, für den Zugriff auf die Inhalte bezahlt oder andere Anforderungen für den Zugriff erfüllt.

  5. Ihre Anwendung erstellt eine signierte URL und gibt diese an den Benutzer zurück.

  6. Über die signierte URL kann der Benutzer die Inhalte herunterladen oder streamen.

    Dieser Schritt erfolgt automatisch. Der Benutzer muss in der Regel keine zusätzlichen Schritte ausführen, um auf den Inhalt zuzugreifen. Wenn ein Benutzer beispielsweise in einem Web-Browser auf Ihre Inhalte zugreift, gibt Ihre Anwendung die signierte URL an den Browser zurück. Der Browser verwendet sofort die signierte URL, um ohne Eingreifen des Benutzers auf die Datei im CloudFront Edge-Cache zuzugreifen.

  7. CloudFront verwendet den öffentlichen Schlüssel, um die Signatur zu validieren und zu bestätigen, dass die URL nicht manipuliert wurde. Wenn die Signatur ungültig ist, wird die Anfrage abgelehnt.

    Wenn die Signatur gültig ist, CloudFront schaut auf die Richtlinienanweisung in der URL (oder erstellt eine, wenn Sie eine vordefinierte Richtlinie verwenden), um zu bestätigen, dass die Anforderung noch gültig ist. Wenn Sie beispielsweise ein Anfangs- und Enddatum und eine Anfangs- und Endzeit für die URL angegeben haben, CloudFront bestätigt , dass der Benutzer versucht, während des Zeitraums auf Ihre Inhalte zuzugreifen, für den Sie den Zugriff zulassen möchten.

    Wenn die Anforderung die Anforderungen in der Richtlinienanweisung erfüllt, CloudFront führt die Standardoperationen aus: bestimmt, ob sich die Datei bereits im Edge-Cache befindet, leitet die Anforderung bei Bedarf an den Ursprung weiter und gibt die Datei an den Benutzer zurück.

Anmerkung

Wenn eine unsignierte URL Abfragezeichenfolgenparameter enthält, stellen Sie sicher, dass Sie diese in den Teil der URL einschließen, den Sie signieren. Wenn Sie einer signierten URL nach der Erstellung eine Abfragezeichenfolge hinzufügen, gibt die URL einen HTTP 403-Status zurück.

Auswählen, wie lange signierte URLs gültig sind

Sie können private Inhalte mithilfe einer signierten URL verteilen, die nur für einen kurzen Zeitraum gültig ist – vielleicht nur für ein paar Minuten. Signierte URLs, die für einen so kurzen Zeitraum gültig sind, eignen sich gut für die Verteilung von Inhalten on-the-fly an einen Benutzer für einen bestimmten Zweck, z. B. die Verteilung von Filmen oder Musik-Downloads auf Abruf an Kunden. Wenn Ihre signierten URLs nur für einen kurzen Zeitraum gültig sind, möchten Sie diese wahrscheinlich mithilfe einer von Ihnen entwickelten Anwendung automatisch generieren. Wenn der Benutzer mit dem Herunterladen einer Datei oder der Wiedergabe einer Mediendatei beginnt, CloudFront gleicht die Ablaufzeit in der URL mit der aktuellen Zeit ab, um festzustellen, ob die URL noch gültig ist.

Sie können private Inhalte auch mithilfe einer signierten URL verteilen, die für einen längeren Zeitraum gültig ist – vielleicht für viele Jahre. Signierte URLs, die für einen längeren Zeitraum gültig sind, eignen sich zum Verteilen von privaten Inhalten für bekannte Benutzer. Ein Beispiel ist die Bereitstellung von Unternehmensplänen für Investoren oder die Bereitstellung von Schulungsmaterialien für Mitarbeiter. Sie können eine Anwendung entwickeln, um diese längerfristig signierten URLs für Sie zu generieren.

Wann CloudFront überprüft das Ablaufdatum und die Ablaufzeit in einer signierten URL?

CloudFront überprüft das Ablaufdatum und die Ablaufzeit in einer signierten URL zum Zeitpunkt der HTTP-Anforderung. Wenn 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 TCP-Verbindung getrennt wird und der Client nach Überschreitung der Ablaufzeit versucht, den Download erneut zu starten, schlägt der Download fehl.

Wenn ein Client Bereichs-GETs verwendet, um eine Datei in kleineren Teilen abzurufen, schlagen alle GET-Anfragen nach Überschreitung der Ablaufzeit fehl. Weitere Informationen zu Bereichs-GETs finden Sie unter So CloudFront verarbeitet Teilanforderungen für ein Objekt (Bereichs-GETs).

Beispiel-Code und Drittanbieter-Tools

Informationen zu Beispiel-Code, mit dem sich der gehashte und signierte Teil von signierten URLs erstellen lässt, finden Sie in den folgenden Themen: