Signierte Anfragen verwenden

Um eine signierte Anfrage zu erstellen, schreiben Sie einen String, der Parameter enthält, beschreiben Sie den Inhalt, den Sie schützen möchten, sowie die Ablaufzeit des vorzeichenbehafteter Wert. Anschließend nehmen Sie den zusammengesetzten String in Ihre Anfrage auf. Anschließend prüft Media CDN, ob die signierte Anfrage gültig ist, bevor wenn Sie darauf reagieren.

Anforderungen an signierte Anfragen

Signierte Anfragen müssen die folgenden Anforderungen erfüllen:

  • Verwenden Sie eine HTTP-Methode GET, HEAD oder OPTIONS. Andere Methoden sind nicht unterstützt.

  • Die Ablaufzeit muss in der Zukunft liegen. Aufgrund möglicher Uhranzeige Synchronisierungsunterschiede und die Netzwerkbedingungen der Clients (für Verbindungstrennungen und Wiederholungsversuche), empfehlen wir, für den Zeitstempel keine weniger als eine Minute in der Zukunft oder nicht weniger als die Länge des Video-Stream angezeigt wird, je nachdem, welcher Wert größer ist.

  • Sie besitzen eine Signatur, die mit einem Key oder Secret in einem EdgeCacheKeyset

Sie können keine anderen HTTP-Methoden wie POST-, PUT- oder DELETE-Anfragen signieren. Informationen dazu, wie Sie signierte URLs für Uploads an Nutzer ausgeben, finden Sie in der Cloud Storage-Dokumentation für signierte URLs

Sicherheitsaspekte

Media CDN validiert alle Anfragen, die einer Route entsprechen, die mit einem cdnPolicy.signedRequestMode: REQUIRE_SIGNATURES oder REQUIRE_TOKENS.

In der folgenden Tabelle werden Szenarien erläutert, in denen Media CDN validiert eine Anfrage:

Anfrage hat Signatur Signatur gültig? signedRequestMode Verhalten Antwortcode
Nein REQUIRE_SIGNATURES oder REQUIRE_TOKENS Anfragen ohne Signaturen oder Tokens werden so behandelt, als ob die Signatur ungültig. HTTP 403
Ja Nein REQUIRE_SIGNATURES oder REQUIRE_TOKENS Eine Signatur oder ein Token gilt als ungültig, wenn es abgelaufen ist oder nicht übereinstimmende URL oder falscher Schlüssel Ungültige Signaturen oder Tokens werden abgelehnt am CDN-Edge an. HTTP 403
Ja Ja REQUIRE_SIGNATURES oder REQUIRE_TOKENS Validiert eine Signatur oder ein Token und die Antwort mit Inhalt aus oder einen Abruf vom Ursprung durchführen. HTTP 200
Ja Ja Keine oder DISABLED Es wird keine Validierung durchgeführt und der Nutzer erhält eine Antwort . HTTP 200
Ja Nein Keine oder DISABLED Es wird keine Validierung durchgeführt und der Nutzer erhält eine Antwort . HTTP 200

Wenn die Anwendung eine ungültige Signatur erkennt, prüfen Sie, ob Ihre Anwendung mit dem Antwortcode HTTP 403 (Forbidden) antwortet. HTTP 403-Antwortcodes können nicht zwischengespeichert werden.

Signierte Anfragen konfigurieren

In den folgenden Abschnitten wird beschrieben, wie Sie signierte -Anfragen.

Schlüssel generieren

Schlüssel erstellen, die Media CDN zum Signieren verwendet -Anfragen.

Schlüsselsatz erstellen

Schlüsselsatz erstellen, der von Media CDN verwendet wird für signierte Anfragen.

Signierte Anfragen verlangen

Damit nur signierte Anfragen auf eine Ressource zugreifen können, können Sie ein Liste der Schlüssel für eine Route und legen Sie für signedRequestMode einen der folgenden Werte fest:

  • REQUIRE_SIGNATURES für signierte Anfragen ohne Tokens.

  • REQUIRE_TOKENS für signierte Anfragen mit Tokens.

Wenn Sie signierte Anfragen für eine Route aktivieren, müssen alle Anfragen signiert oder um ein Token zu präsentieren. Anfragen ohne gültige Signatur (z. B. ein ungültiger Schlüssel) Name, abgelaufene Signatur oder Token, nicht übereinstimmende Signatur usw.

Ein EdgeCacheKeyset kann mehrere Schlüssel enthalten, um einen Schlüssel zuzulassen Rotation. Gültige Anfragen, die mit einem der aufgeführten Schlüssel signiert sind, werden akzeptiert und Schlüssel der Reihe nach versucht werden. Weitere Informationen zur Schlüsselrotation finden Sie unter Rotieren Secrets.

Wenn signedRequestMode auf REQUIRE_SIGNATURES oder REQUIRE_TOKENS gesetzt ist, Media CDN prüft sowohl Cache-Treffer als auch Cache-Fehler. Dazu gehören alle an den Ursprung senden.

Das folgende Beispiel zeigt eine Media CDN-Konfiguration, signierte Anfragen für einen bestimmten PathMatcher (Route) erzwingen:

gcloud edge-cache services describe prod-media-service
Ausgabe:
...
  routeAction:
    cdnPolicy:
      cacheMode: CACHE_ALL_STATIC
      signedRequestMode: REQUIRE_SIGNATURES
      signedRequestKeyset: prod-vod-keyset

Informationen zum Erstellen von Tokens für signierte Anfragen finden Sie unter Generieren Tokens

Zum Deaktivieren der Anfragesignatur können Sie signedRequestMode auf DISABLED setzen. und löschen Sie den Verweis auf die signedRequestKeyset.

Anfragen am Ursprung validieren

Wenn eine Route mit dem Signaturmodus REQUIRE_SIGNATURES konfiguriert ist, Media CDN prüft, ob jede übereinstimmende Anfrage eine gültige Signatur. Das Fehlen einer Signatur wird als ungültige Signatur gewertet. Routen planen.

Um Fälle zu vermeiden, in denen die Signatur falsch konfiguriert ist und ein Nutzer versucht, direkt auf Ihren Ursprung zuzugreifen, sollten Sie prüfen, ob auch die Anfragen am Ursprung signiert werden. Gestaffelte Sicherheitsebenen des Inhaltsschutzes, um unbefugten Zugriff und Downloads zu verhindern. lizenzierten und kostenpflichtigen Inhalten.

Für URL-basierte Signaturmethoden, bei denen die Signatur Teil der Abfrage ist Parameter oder eingebettet als URL-Pfadkomponente, die Signatur und zugehörige werden aus der URL entfernt, bevor die Anfrage an den Ursprung. Dadurch wird verhindert, dass die Signatur Routingprobleme verursacht, wenn der „origin“ verarbeitet die Anfrage. Zur Validierung dieser Anfragen können Sie den x-client-request-url-Anfrageheader, der das signierte Original enthält bevor die signierten Komponenten entfernt wurden.

Um Anfragen am Ursprung zu validieren, verwenden Sie denselben Validierungscode als Teil von Endpunkte Ihrer Anfragesignatur. Das trägt auch dabei zur Vermeidung von nicht übereinstimmenden Schlüsseln bei der Schlüsselrotation.

Schlüssel rotieren

Als Best Practice sollten Sie die Secrets rotieren oder aktualisieren, die von regelmäßig über Media CDN. Wir empfehlen, Schlüssel alle 30 bis 60 Mal zu rotieren Tage, aber das ist nicht unbedingt erforderlich.

Nächste Schritte

  • Weitere Informationen zum Aktivieren und Zugreifen auf Media CDN Logs, einschließlich der Filterung und Abfrage von Logs, finden Sie unter Logging:

  • Um Media CDN und eine privaten Cloud Storage-Bucket, siehe Ursprungskonnektivität und -abschirmung: