Per creare una richiesta firmata, componi una stringa che includa i parametri che descrivono i contenuti che vuoi proteggere e la data e l'ora di scadenza del valore firmato. Poi includi la stringa composta nella richiesta. Media CDN verifica quindi che la richiesta firmata sia valida prima di eseguire un'azione in base a questa.
Requisiti per le richieste firmate
Le richieste firmate devono soddisfare i seguenti requisiti:
Avere un metodo HTTP
GET
,HEAD
oOPTIONS
. Gli altri metodi non sono supportati.Avere una scadenza impostata nel futuro. A causa di potenziali differenze di sincronizzazione dell'orologio, nonché delle condizioni di rete del client (ad es. disconnessioni e tentativi di nuovo attacco), ti consigliamo di impostare i timestamp non meno di un minuto nel futuro o non meno della durata dello stream video, a seconda del valore 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 le 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.
Configura le richieste firmate
Le sezioni seguenti descrivono in dettaglio come configurare, firmare e convalidare le richieste firmate.
Genera chiavi
Crea le chiavi utilizzate da Media CDN per firmare le richieste.
Crea un set di chiavi
Crea il set di chiavi utilizzato da Media CDN per le richieste firmate.
Richiedi richieste firmate
Per consentire solo alle richieste firmate di accedere a una risorsa, puoi associare un elenco di chiavi a un percorso e impostare signedRequestMode
su uno dei seguenti valori:
REQUIRE_SIGNATURES
per le richieste firmate che non utilizzano i token.REQUIRE_TOKENS
per le richieste firmate che utilizzano i token.
L'abilitazione delle richieste firmate su un percorso impone che tutte le richieste siano firmate o presentino un token. Le richieste senza una firma valida (ad esempio un nome della chiave non valido, una firma o un token scaduti, una firma non corrispondente e così via) non vanno a buon fine.
Un EdgeCacheKeyset
può contenere più chiavi per consentire la loro rotazione. Le richieste valide firmate con qualsiasi chiave elencata vengono accettate e le chiavi vengono provate in ordine. Per ulteriori informazioni sulla rotazione della chiave, consulta la sezione Rotare
i secret.
Quando signedRequestMode
è impostato su REQUIRE_SIGNATURES
o REQUIRE_TOKENS
, Media CDN convalida sia i hit che i miss della cache. Sono incluse tutte le richieste all'origine.
Di seguito è riportato un esempio di configurazione Media CDN che impone le 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, consulta Generare token.
Per disattivare la firma della richiesta, puoi impostare signedRequestMode
su DISABLED
ed eliminare il riferimento a signedRequestKeyset
.
Convalida le richieste all'origine
Quando un percorso è configurato con una modalità di firma REQUIRE_SIGNATURES
, Media CDN convalida che ogni richiesta corrispondente abbia una firma valida. L'assenza di una firma viene trattata come una firma non valida per questi percorsi.
Per evitare che la firma sia configurata in modo errato e che un utente tenterà 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 con 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 ispezionare l'intestazione della richiesta x-client-request-url
, che include l'URL della richiesta del client originale (firmato) prima della rimozione dei componenti firmati.
Per convalidare le richieste all'origine, utilizza lo stesso codice di convalida negli endpoint di firma delle richieste, il che contribuisce anche ad attenuare 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 scoprire di più su come attivare e accedere ai log di Media CDN, inclusa la possibilità di filtrare e eseguire query sui log, consulta Logging.
Per configurare Media CDN e un bucket Cloud Storage privato, consulta Connettività e schermatura dell'origine.