Signierte Anfragen verwenden

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- oder OPTIONS-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 EdgeCacheKeyset verifiziert 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_SIGNATURES für signierte Anfragen ohne Token.

  • REQUIRE_TOKENS fü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
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 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.