Utilizza richieste firmate

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 o OPTIONS. 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
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
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
Nessuno o DISABLED Non viene eseguita alcuna convalida e viene inviata una risposta all'utente. strato Add. HTTP 200
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-service
Uscita:
...
  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.