Per creare una richiesta firmata, componi una stringa che includa parametri che descrivere i contenuti che vuoi proteggere e la data di scadenza dei . Quindi, includi nella richiesta la stringa composta. Media CDN verifica quindi che la richiesta firmata sia valida prima senza alcuna azione.
Requisiti per la richiesta firmata
Le richieste firmate devono soddisfare i seguenti requisiti:
Avere un metodo HTTP
GET
,HEAD
oOPTIONS
. Gli altri metodi non supportati.Hanno una scadenza impostata nel futuro. A causa del potenziale orologio differenze di sincronizzazione, nonché le condizioni di rete dei client (ad ad esempio disconnessioni e nuovi tentativi), consigliamo di impostare i timestamp su no meno di un minuto nel futuro o non inferiore alla durata del stream video, a seconda di quale sia il numero maggiore.
Avere una firma che può essere verificata tramite una chiave o un segreto in un
EdgeCacheKeyset
.
Non puoi firmare altri metodi HTTP, come richieste POST
, PUT
o DELETE
.
Se devi emettere URL firmati per i caricamenti rivolti agli utenti, consulta
Documentazione di Cloud Storage per gli URL firmati.
Considerazioni sulla sicurezza
Media CDN convalida tutte le richieste che corrispondono a una route configurata con un oggetto
cdnPolicy.signedRequestMode
di REQUIRE_SIGNATURES
o REQUIRE_TOKENS
.
La tabella seguente spiega gli scenari in cui Media CDN convalida una richiesta:
La richiesta ha la firma | Firma valida? | signedRequestMode | Comportamento | Codice risposta |
---|---|---|---|---|
No | N/D | REQUIRE_SIGNATURES oppure REQUIRE_TOKENS |
Le richieste senza firme o token vengono trattate come se la firma fosse non valido. | HTTP 403 |
Sì | No | REQUIRE_SIGNATURES o REQUIRE_TOKENS |
Una firma o un token sono considerati non validi se sono scaduti o presentano un un URL non corrispondente o una chiave errata. Le firme o i token non validi vengono rifiutati sul perimetro della rete CDN. | HTTP 403 |
Sì | Sì | REQUIRE_SIGNATURES o REQUIRE_TOKENS |
Convalida una firma o un token e la risposta con i contenuti provenienti da o un recupero dall'origine. | HTTP 200 |
Sì | Sì | Nessuno o DISABLED |
Non viene eseguita alcuna convalida e viene inviata una risposta all'utente. strato Add. | HTTP 200 |
Sì | No | Nessuno o DISABLED |
Non viene eseguita alcuna convalida e viene inviata una risposta all'utente. strato Add. | HTTP 200 |
Quando la tua applicazione rileva una firma non valida, assicurati che il tuo
l'applicazione risponde con un codice di risposta HTTP 403 (Forbidden)
.
I codici di risposta di HTTP 403
non sono memorizzabili nella cache.
Configura le richieste firmate
Le seguenti sezioni descrivono nel dettaglio come configurare, firmare e convalidare richieste.
Genera chiavi
Crea le chiavi che Media CDN utilizza per la firma 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 collegare un
di chiavi a una route e imposta signedRequestMode
su una delle seguenti:
REQUIRE_SIGNATURES
per le richieste firmate che non utilizzano token.REQUIRE_TOKENS
per le richieste firmate utilizzando token.
L'abilitazione delle richieste firmate su una route implica che tutte le richieste siano firmate o un token. Richieste senza una firma valida (ad esempio una chiave non valida) nome, firma o token scaduto, firma non corrispondente e così via), non riescono.
Un EdgeCacheKeyset
può contenere più chiavi per consentire la presenza
la rotazione. Vengono accettate richieste valide firmate con una qualsiasi chiave elencata e le chiavi
vengono provati in ordine. Per ulteriori informazioni sulla rotazione della chiave, consulta la sezione Rotazione
o altri secret.
Quando signedRequestMode
è impostato su REQUIRE_SIGNATURES
o REQUIRE_TOKENS
,
Media CDN convalida sia i hit che gli errori della cache. Sono incluse tutte le metriche
richieste all'origine.
Di seguito è riportato un esempio di configurazione Media CDN applica richieste firmate su un dato PathMatcher (route):
gcloud edge-cache services describe prod-media-serviceUscita:
... routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_SIGNATURES signedRequestKeyset: prod-vod-keyset
Per informazioni sulla creazione di token per le richieste con firma, consulta Generare di token.
Per disattivare la firma della richiesta, puoi impostare signedRequestMode
su DISABLED
ed elimini il riferimento a signedRequestKeyset
.
Convalida le richieste all'origine
Se una route è configurata con la modalità di firma REQUIRE_SIGNATURES
,
Media CDN verifica che ogni richiesta corrispondente abbia un indirizzo
firma. L'assenza di una firma viene considerata come una firma non valida per questi
route.
Per evitare casi in cui la firma non è configurata correttamente e in cui un utente di accedere direttamente alla tua origine, ti consigliamo di verificare che le richieste siano firmate anche all'origine. Una difesa in profondità alla protezione dei contenuti aiuta a impedire accessi e 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 della query
parametri o incorporati come componente del percorso dell'URL, la firma e i relativi
vengono rimossi dall'URL prima che la richiesta venga inviata
origine dati. In questo modo si evita che la firma causi problemi di routing quando
che gestisce la richiesta. Per convalidare queste richieste, puoi esaminare
Intestazione della richiesta x-client-request-url
, che include l'originale (firmata)
l'URL di richiesta del client prima della rimozione dei componenti firmati.
Per convalidare le richieste all'origine, utilizza lo stesso codice di convalida come parte gli endpoint di firma della richiesta, il che aiuta anche a mitigare la mancata corrispondenza delle chiavi a causa della rotazione della chiave.
Ruota le chiavi
Come best practice, ruota o aggiorna i secret utilizzati Media CDN regolarmente. Ti consigliamo di ruotare le chiavi ogni 30-60 secondi giorni, ma non è assolutamente obbligatorio.
Passaggi successivi
Per scoprire di più su come attivare e accedere a Media CDN i log, ad esempio come applicare filtri ed eseguire query su tutti i log, consulta Logging.
Per configurare Media CDN e un per un bucket Cloud Storage privato, Connettività e schermatura dell'origine.