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