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

Unterzeichnete 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 Unterschiede bei der Uhrsynchronisierung und Netzwerkbedingungen des Clients (z. B. Unterbrechungen und Wiederholungen) empfehlen wir, Zeitstempel mindestens eine Minute in die Zukunft oder mindestens so lang wie die Länge des Videostreams festzulegen, je nachdem, was länger ist.

  • Sie haben eine Signatur, die mit einem Schlüssel oder Secret in einer EdgeCacheKeyset verifiziert werden kann.

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.

Signierte Anfragen konfigurieren

In den folgenden Abschnitten wird beschrieben, wie Sie signierte Anfragen konfigurieren, signieren und validieren.

Schlüssel generieren

Erstelle die Schlüssel, die Media CDN zum Signieren von Anfragen verwendet.

Schlüsselsatz erstellen

Erstelle den Schlüsselsatz, den Media CDN für signierte Anfragen verwendet.

Signierte Anfragen verlangen

Wenn nur signierte Anfragen auf eine Ressource zugreifen dürfen, können Sie einer Route eine Liste von Schlüsseln anhängen und signedRequestMode auf eine der folgenden Optionen festlegen:

  • REQUIRE_SIGNATURES für signierte Anfragen ohne Token

  • 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üsselname, eine abgelaufene Signatur oder ein abgelaufenes Token, eine nicht übereinstimmende Signatur usw.) schlagen fehl.

Ein EdgeCacheKeyset kann mehrere Schlüssel enthalten, um eine Schlüsselrotation zu ermöglichen. 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.

Im Folgenden findest du ein Beispiel für eine Media CDN-Konfiguration, bei der signierte Anfragen für einen bestimmten Pfad-Matcher (Route) erzwungen werden:

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, prüft Media CDN, ob jede übereinstimmende Anfrage eine gültige Signatur hat. 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 deinen Ursprung zugreift, empfehlen wir dir, zu prüfen, ob Anfragen auch am Ursprung signiert werden. Ein mehrschichtiger Schutz beim Schutz von Inhalten hilft, unbefugten Zugriff und Download Ihrer lizenzierten und kostenpflichtigen Inhalte zu verhindern.

Bei URL-basierten Signaturmethoden, bei denen die Signatur Teil der Abfrageparameter ist oder als URL-Pfadkomponente eingebettet ist, werden die Signatur und die zugehörigen Parameter aus der URL entfernt, bevor die Anfrage an den Ursprung gesendet wird. 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 Tage zu rotieren. Dies ist jedoch nicht zwingend erforderlich.

Nächste Schritte

  • Weitere Informationen zum Aktivieren und Abrufen von Media CDN-Logs, einschließlich der Filterung und Abfrage von Logs, findest du unter Logging.

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