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
oderOPTIONS
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 TokenREQUIRE_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
... 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.