Per creare una richiesta firmata, componi una stringa che includa parametri che descrivano i contenuti che vuoi proteggere e la data di scadenza del valore firmato. Dopodiché, includi la stringa composta nella richiesta. Media CDN verifica quindi che la richiesta firmata sia valida prima di agire di conseguenza.
Requisiti per le richieste firmate
Le richieste firmate devono soddisfare i seguenti requisiti:
Avere un metodo HTTP
GET,HEADoOPTIONS. Gli altri metodi non sono supportati.Avere un orario di scadenza impostato nel futuro. A causa di potenziali differenze di sincronizzazione dell'orologio, nonché delle condizioni di rete del client (ad esempio, disconnessioni e tentativi), ti consigliamo di impostare i timestamp non meno di un minuto nel futuro o non meno della durata dello stream video, a seconda di quale sia maggiore.
Avere una firma che può essere verificata da una chiave o un segreto in un
EdgeCacheKeyset.
Non puoi firmare altri metodi HTTP, ad esempio richieste POST, PUT o DELETE.
Se devi emettere URL firmati per i caricamenti rivolti agli utenti, consulta la
documentazione di Cloud Storage per gli URL firmati.
Configurare le richieste firmate
Le sezioni seguenti descrivono in dettaglio come configurare, firmare e convalidare le richieste firmate.
Genera chiavi
Crea le chiavi che Media CDN utilizza per firmare le richieste.
Crea un set di chiavi
Crea il set di chiavi utilizzato da Media CDN per le richieste firmate.
Richiedere richieste firmate
Per consentire solo alle richieste firmate di accedere a una risorsa, puoi collegare un elenco di chiavi a una route e impostare signedRequestMode su uno dei seguenti valori:
REQUIRE_SIGNATURESper le richieste firmate che non utilizzano token.REQUIRE_TOKENSper le richieste firmate che utilizzano token.
L'abilitazione delle richieste firmate su una route impone che tutte le richieste siano firmate o presentino un token. Le richieste senza una firma valida (ad esempio un nome di chiave non valido, una firma o un token scaduto, una firma non corrispondente e così via) non vanno a buon fine.
Un EdgeCacheKeyset può contenere più chiavi per consentire la rotazione delle chiavi. Le richieste valide firmate con una qualsiasi chiave elencata vengono accettate e le chiavi vengono provate in ordine. Per ulteriori informazioni sulla rotazione della chiave, consulta Ruota
i secret.
Quando signedRequestMode è impostato su REQUIRE_SIGNATURES o REQUIRE_TOKENS,
Media CDN convalida sia gli hit della cache che i mancati riscontri della cache. Sono incluse tutte le
richieste all'origine.
Di seguito è riportato un esempio di configurazione Media CDN che impone richieste firmate su un determinato PathMatcher (route):
gcloud edge-cache services describe prod-media-service
... routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_SIGNATURES signedRequestKeyset: prod-vod-keyset
Per informazioni sulla creazione di token per le richieste firmate, vedi Generare token.
Per disattivare la firma delle richieste, puoi impostare signedRequestMode su DISABLED
ed eliminare il riferimento a signedRequestKeyset.
Convalida le richieste all'origine
Quando una route è configurata con una modalità di firma REQUIRE_SIGNATURES, Media CDN verifica che ogni richiesta corrispondente abbia una firma valida. La mancanza di una firma viene trattata come una firma non valida per questi
itinerari.
Per evitare casi in cui la firma è configurata in modo errato e in cui un utente tenta di accedere direttamente all'origine, ti consigliamo di verificare che le richieste siano firmate anche all'origine. Un approccio di difesa in profondità alla protezione dei contenuti contribuisce a impedire l'accesso e il download non autorizzati dei tuoi contenuti concessi in licenza e a pagamento.
Per i metodi di firma basati su URL, in cui la firma fa parte dei parametri di query o è incorporata come componente del percorso dell'URL, la firma e i parametri correlati vengono rimossi dall'URL prima che la richiesta venga inviata all'origine. In questo modo, la firma non causa problemi di routing quando l'origine gestisce la richiesta. Per convalidare queste richieste, puoi esaminare l'intestazione della richiesta x-client-request-url, che include l'URL della richiesta client originale (firmata) prima della rimozione dei componenti firmati.
Per convalidare le richieste all'origine, utilizza lo stesso codice di convalida come parte degli endpoint di firma delle richieste, il che contribuisce anche a mitigare la mancata corrispondenza delle chiavi e i problemi dovuti alla rotazione della chiave.
Ruota le chiavi
Come best practice, ruota o aggiorna regolarmente i secret utilizzati da Media CDN. Consigliamo di ruotare le chiavi ogni 30-60 giorni, ma non è strettamente necessario.
Passaggi successivi
Per saperne di più su come abilitare e accedere ai log di Media CDN, incluso come filtrare ed eseguire query nei log, consulta Logging.
Per configurare Media CDN e un bucket Cloud Storage privato, consulta Connettività e protezione origine.