Um eine signierte Anfrage zu erstellen, müssen Sie einen String zusammenstellen, der Parameter enthält, die den Inhalt beschreiben, den Sie schützen möchten, sowie die Ablaufzeit des signierten Werts. Sie fügen den zusammengesetzten String dann in Ihre Anfrage ein. Media CDN prüft dann, ob Ihre signierte Anfrage gültig ist, bevor sie ausgeführt wird.
Anforderungen an signierte Anfragen
Signierte Anfragen müssen die folgenden Anforderungen erfüllen:
Eine
GET-,HEAD- oderOPTIONS-HTTP-Methode haben. Andere Methoden werden nicht unterstützt.Das Ablaufdatum muss in der Zukunft liegen. Aufgrund potenzieller Unterschiede bei der Uhrzeitsynchronisierung sowie der Netzwerkbedingungen des Clients (z. B. Verbindungsunterbrechungen und Wiederholungsversuche) empfehlen wir, Zeitstempel mindestens eine Minute in die Zukunft oder mindestens so lang wie den Videostream festzulegen, je nachdem, welcher Wert größer ist.
Sie muss eine Signatur haben, die mit einem Schlüssel oder Secret in einer
EdgeCacheKeysetverifiziert werden kann.
Andere HTTP-Methoden wie POST-, PUT- oder DELETE-Anfragen können nicht signiert werden.
Wenn Sie signierte URLs für Uploads von Nutzern 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
Schlüssel erstellen, die Media CDN zum Signieren von Anfragen verwendet.
Schlüsselsatz erstellen
Erstellen Sie den Schlüsselsatz, den Media CDN für signierte Anfragen verwendet.
Signierte Anfragen erforderlich machen
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 einen der folgenden Werte festlegen:
REQUIRE_SIGNATURESfür signierte Anfragen ohne Token.REQUIRE_TOKENSfür signierte Anfragen mit Token.
Wenn Sie signierte Anfragen für eine Route aktivieren, müssen alle Anfragen signiert sein oder ein Token enthalten. Anfragen ohne gültige Signatur (z. B. ungültiger Schlüsselname, abgelaufene Signatur oder abgelaufenes Token, nicht übereinstimmende Signatur usw.) schlagen fehl.
Ein EdgeCacheKeyset kann mehrere Schlüssel enthalten, um die 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 Cache-Fehler. Dazu gehören alle Anfragen an den Ursprung.
Im Folgenden sehen Sie ein Beispiel für eine Media CDN-Konfiguration, in der signierte Anfragen für einen bestimmten PathMatcher (eine bestimmte 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 Signierung von Anfragen deaktivieren möchten, können Sie signedRequestMode auf DISABLED festlegen und die Referenz auf signedRequestKeyset löschen.
Anfragen am Ursprungsort validieren
Wenn für eine Route der Signierungsmodus 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 Fälle zu vermeiden, in denen die Signierung falsch konfiguriert ist und ein Nutzer versucht, direkt auf Ihren Ursprung zuzugreifen, empfehlen wir, dass Sie auch am Ursprung überprüfen, ob Anfragen signiert sind. Ein mehrschichtiger Ansatz für den Inhaltsschutz trägt dazu bei, unbefugten Zugriff und das Herunterladen Ihrer lizenzierten und kostenpflichtigen Inhalte zu verhindern.
Bei URL-basierten Methoden zum Signieren, bei denen die Signatur Teil der Suchparameter 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. Dadurch wird verhindert, dass die Signatur Routingprobleme verursacht, wenn der Ursprung die Anfrage verarbeitet. Um diese Anfragen zu validieren, können Sie den Anfrageheader x-client-request-url prüfen. Er enthält die ursprüngliche (signierte) Clientanfrage-URL vor dem Entfernen der signierten Komponenten.
Wenn Sie Anfragen am Ursprung validieren möchten, verwenden Sie denselben Validierungscode wie für Ihre Endpunkte zum Signieren von Anfragen. So lassen sich auch Probleme mit nicht übereinstimmenden Schlüsseln und Probleme aufgrund der Schlüsselrotation vermeiden.
Schlüssel rotieren
Als Best Practice sollten Sie die von Media CDN verwendeten Secrets regelmäßig rotieren oder 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 Aufrufen von Media CDN-Logs, einschließlich des Filterns und Abfragens von Logs, finden Sie unter Logging.
Informationen zum Konfigurieren von Media CDN und einem privaten Cloud Storage-Bucket finden Sie unter Ursprungskonnektivität und -abschirmung.