Signierte Anfragen verwenden

Um eine signierte Anfrage zu erstellen, müssen Sie einen String mit Parametern erstellen, die den zu schützenden Inhalt und die Ablaufzeit des signierten Werts beschreiben. Fügen Sie den zusammengestellten String dann in Ihre Anfrage ein. Media CDN prüft dann, ob deine signierte Anfrage gültig ist, bevor sie ausgeführt wird.

Anforderungen an signierte Anfragen

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

  • Sie müssen die HTTP-Methode GET, HEAD oder OPTIONS verwenden. Andere Methoden werden nicht unterstützt.

  • Der Ablaufzeitpunkt 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

Andere HTTP-Methoden wie POST-, PUT- oder DELETE-Anfragen können nicht signiert werden. Wenn Sie signierte URLs für von Nutzern erstellte Uploads ausstellen müssen, lesen Sie die Cloud Storage-Dokumentation zu signierten URLs.

Sicherheitsaspekte

Media CDN validiert alle Anfragen, die mit einer Route übereinstimmen, die mit einem cdnPolicy.signedRequestMode von REQUIRE_SIGNATURES oder REQUIRE_TOKENS konfiguriert ist.

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

Anfrage hat Signatur Signatur gültig? signedRequestMode Verhalten Antwortcode
Nein REQUIRE_SIGNATURES oder REQUIRE_TOKENS Anfragen ohne Signaturen oder Tokens werden so behandelt, als wäre 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 „Kein“ 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 konfigurieren, signieren und validieren.

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 Token.

Wenn Sie signierte Anfragen für eine Route aktivieren, werden alle Anfragen signiert oder es wird ein Token angegeben. Anfragen ohne gültige Signatur (z. B. ein ungültiger Schlüssel) Name, abgelaufene Signatur oder Token, nicht übereinstimmende Signatur usw. schlägt fehl.

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. Die Schlüssel werden der Reihe nach ausprobiert. Weitere Informationen zur Schlüsselrotation finden Sie unter Secrets rotieren.

Wenn signedRequestMode auf REQUIRE_SIGNATURES oder REQUIRE_TOKENS festgelegt ist, validiert Media CDN sowohl Cache-Treffer als auch ‑Ausfälle. Dazu gehören alle Anfragen an den Ursprung.

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 Tokens generieren.

Wenn Sie die Anfragesignatur deaktivieren möchten, können Sie die signedRequestMode auf DISABLED festlegen und die Referenz auf die signedRequestKeyset löschen.

Anfragen an der Quelle 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 für diese Routen als ungültige Signatur behandelt.

Um zu verhindern, dass die Signatur falsch konfiguriert ist und ein Nutzer direkt auf Ihren Ursprung zugreift, empfehlen wir, zu prüfen, ob Anfragen auch 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. So wird verhindert, dass die Signatur Routingprobleme verursacht, wenn der Ursprung die Anfrage verarbeitet. Um diese Anfragen zu validieren, kannst du den x-client-request-url-Anfrageheader prüfen. Er enthält die ursprüngliche (signierte) URL der Clientanfrage vor dem Entfernen der signierten Komponenten.

Verwenden Sie zum Validieren von Anfragen am Ursprung denselben Validierungscode wie in Ihren Endpunkten für die Anfragesignatur. Dies trägt auch dazu bei, Schlüsselabweichungen und Probleme aufgrund der Schlüsselrotation zu vermeiden.

Schlüssel rotieren

Es empfiehlt sich, die vom Media CDN verwendeten Secrets regelmäßig zu rotieren oder zu aktualisieren. 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:

  • Informationen zum Konfigurieren von Media CDN und einem privaten Cloud Storage-Bucket findest du unter Ursprungskonnektivität und -abschirmung.