Per applicare l'autenticazione a due token quando gli spettatori accedono a una risorsa di streaming, configura route separate. Una route è una configurazione che corrisponde alle richieste per Media CDN e indirizza il traffico HTTP a un'origine. Media CDN supporta le route per le risorse HTTP Live Streaming (HLS) o Dynamic Adaptive Streaming over HTTP (DASH). Per ulteriori informazioni sulle route in Media CDN, consulta Configurare le route di servizio.
Per i flussi HLS, Media CDN supporta l'autenticazione con doppio token tramite cookie e parametri di ricerca URL (senza cookie). Per gli stream DASH, Media CDN supporta solo l'autenticazione con doppio token basata sui cookie.
Questa pagina descrive come configurare le route Media CDN per proteggere i contenuti utilizzando l'autenticazione con doppio token.
Prima di iniziare
Segui questi passaggi:
Per i token di breve durata, scegli uno dei seguenti algoritmi di firma:
- Firme Ed25519
- Codici di autenticazione dei messaggi basati su hash (HMAC) con chiave simmetrica
Puoi attivare gli algoritmi di firma HMAC simmetrici solo per le route configurate per generare nuovi token di lunga durata. Per prestazioni e sicurezza ottimali, ti consigliamo di utilizzare le firme Ed25519 e gli HMAC con chiave simmetrica solo quando necessario per la compatibilità con altre CDN.
Includi le chiavi richieste in una risorsa
EdgeCacheKeyset
.I token devono essere firmati o verificati con chiavi in una risorsa
EdgeCacheKeyset
. Il keyset deve includere le chiavi corrette per l'algoritmo di firma selezionato. La tabella seguente descrive ciascuno degli algoritmi di firma e le relative chiavi richieste.Algoritmo di firma Chiavi obbligatorie nel set di chiavi Ed25519 Chiavi pubbliche HMAC-SHA1 Chiavi condivise di convalida HMAC-SHA256 Chiavi condivise di convalida Come best practice, crea due set di chiavi separati, uno per i token di breve durata e l'altro per i token di lunga durata.
Tuttavia, se utilizzi DASH e file MPD (Media Presentation Description) dinamici, devi utilizzare lo stesso keyset per i token di lunga e breve durata.
Per i token di lunga durata, scegli uno dei seguenti formati:
- Cookie
- Parametri di ricerca dell'URL
Configurare i token di breve durata
A seconda dell'algoritmo di firma che vuoi utilizzare, configura i token di breve durata utilizzando una delle seguenti opzioni.
Firma Ed25519
Genera una chiave privata:
openssl genpkey -algorithm ed25519 -outform PEM -out SSL_KEY_NAME.private.key
Sostituisci
SSL_KEY_NAME
con il nome di una chiave.Genera una chiave pubblica dalla chiave privata:
openssl pkey -outform DER -pubout -in SSL_KEY_NAME.private.key |\ tail -c +13 |\ python3 -c "import base64, sys; print(('%s' % base64.urlsafe_b64encode(sys.stdin.buffer.read()))[2:-1])"
Crea un nuovo set di chiavi con una singola chiave pubblica:
Console
Nella console Google Cloud , vai alla pagina Media CDN.
Fai clic sulla scheda Set di tasti.
Fai clic su
Crea keyset.In Name (Nome), inserisci un nome univoco per il keyset.
(Facoltativo) In Descrizione, inserisci una descrizione per il keyset.
(Facoltativo) Fai clic su Aggiungi etichetta e poi inserisci una o più coppie chiave-valore per il tuo keyset.
Fai clic su Aggiungi chiave pubblica e poi procedi nel seguente modo:
- In ID, inserisci un ID alfanumerico.
- Seleziona Inserisci il valore e specifica il valore con codifica Base64 della chiave pubblica Ed25519.
Fai clic su Crea keyset.
gcloud
Utilizza il comando
gcloud edge-cache keysets create
.gcloud edge-cache keysets create SHORT_KEYSET_NAME \ --public-key='id=SSL_PUBLIC_KEY_NAME,value=SSL_PUBLIC_KEY_VALUE'
Sostituisci quanto segue:
SHORT_KEYSET_NAME
: il nome di un keyset univoco, ad esempioprod-vod-keyset
SSL_PUBLIC_KEY_NAME
: il nome della tua chiave pubblica SSLSSL_PUBLIC_KEY_VALUE
: il valore della tua chiave pubblica SSL
Per esaminare le chiavi associate al set di chiavi, utilizza il comando
gcloud edge-cache keysets describe
.gcloud edge-cache keysets describe prod-vod-keyset
L'output è simile al seguente:
name: prod-vod-keyset description: "Keyset for prod.example.com" publicKeys: - id: "key-20200918" value: "DThVLjhAKm3VYOvLBAwFZ5XbjVyF98Ias8NZU0WEM9w" - id: "key-20200808" value: "Lw7LDSaDUrbDdqpPA6JEmMF5BA5GPtd7sAjvsnh7uDA="
Terraform
HMAC con chiave simmetrica
Se non hai mai utilizzato Secret Manager, configura Secret Manager.
Aggiungi una versione del secret in formato binario.
Concedi il ruolo Accesso a Secret Manager (
roles/secretmanager.secretAccessor
) all'account di servizio Media CDN:Console
Nella console Google Cloud , vai alla pagina Secret Manager.
Seleziona la casella di controllo accanto al nome del secret.
Fai clic su Mostra riquadro informazioni.
Nel riquadro informazioni, fai clic su Aggiungi entità.
In Nuove entità, inserisci l'account di servizio Media CDN in questo formato:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com
Sostituisci
PROJECT_NUMBER
con il numero del tuo progetto.In Seleziona un ruolo, seleziona Secret Manager e poi Secret Manager Secret Accessor.
gcloud
Utilizza il comando
gcloud secrets add-iam-policy-binding
.gcloud secrets add-iam-policy-binding projects/PROJECT_NUMBER/secrets/SECRET_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoSECRET_ID
: l'ID del secret
Accedi alle versioni del secret e copia i percorsi dei secret, inclusi i numeri di versione.
Crea un nuovo keyset con i segreti condivisi in una chiave condivisa di convalida:
Console
Nella console Google Cloud , vai alla pagina Media CDN.
Fai clic sulla scheda Set di tasti.
Fai clic su
Crea keyset.In Name (Nome), inserisci un nome univoco per il keyset.
(Facoltativo) In Descrizione, inserisci una descrizione per il keyset.
(Facoltativo) Fai clic su Aggiungi etichetta e poi inserisci una o più coppie chiave-valore per il tuo keyset.
Per specificare una chiave condivisa di convalida, fai clic su Aggiungi chiave condivisa di convalida, quindi procedi nel seguente modo:
Per Secret, seleziona un secret dall'elenco, inseriscine uno manualmente specificando il relativo ID risorsa oppure creane uno nuovo e poi selezionalo.
Per Versione del secret, seleziona una versione dall'elenco o creane una nuova e poi selezionala.
Fai clic su Crea keyset.
gcloud
Utilizza il comando
gcloud edge-cache keysets create
.gcloud edge-cache keysets create SHORT_KEYSET_NAME \ --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION'
Sostituisci quanto segue:
SHORT_KEYSET_NAME
: un nome univoco per il keyset, ad esempioprod-vod-keyset
PROJECT_NUMBER
: il tuo ID progettoSECRET_ID
: l'ID risorsa del secretKEY_VERSION
: la versione del secret che vuoi utilizzare
Configurare i token di lunga durata
Google-owned and managed keys sono limitati dal keyset. Ciò significa che due diversi set di chiavi hannoGoogle-owned and managed keysdiversi. Google-owned and managed keys vengono ruotate regolarmente.
Configura i token di lunga durata utilizzando una delle seguenti opzioni:
Console
Nella sezione Chiavi, seleziona UtilizzaGoogle-owned and managed key per l'autenticazione con doppio token.
gcloud e YAML
Utilizza una delle seguenti opzioni:
Crea una chiave di firma gestita da Google:
gcloud edge-cache keysets create LONG_KEYSET_NAME \ --public-key='id=google-managed-key,managed=true'
Sostituisci
LONG_KEYSET_NAME
con un nome chiave, ad esempioprod-vod-keyset-long
.Modificare un keyset esistente:
Esporta il keyset in un file YAML. Utilizza il comando
gcloud edge-cache keysets export
.gcloud edge-cache keysets export LONG_KEYSET_NAME \ --destination=prod-vod-keyset-long.yaml
In un editor di testo o negli strumenti di gestione della configurazione, modifica la configurazione del keyset in modo che sia simile alla seguente:
name: projects/my-project/locations/global/edgeCacheKeysets/LONG_KEYSET_NAME publicKeys: - id: some-key value: MC4CAQAwBQYDK2VwBCIEINV2iYugIWBuvGBJUQ_Ab69E4v4zcVqvgYHw-iZxGzcd - id: google-managed-key managed: true
Importa il keyset modificato. Utilizza il comando
gcloud edge-cache keysets import
:gcloud edge-cache keysets import LONG_KEYSET_NAME \ --source=prod-vod-keyset-long.yaml
Puoi includere altre chiavi pubbliche nel set di chiavi dei token a durata lunga. Il set di chiavi può avere al massimo tre chiavi pubbliche. In pratica, ciò significa che il set di chiavi può avere due chiavi gestite dall'utente e unaGoogle-owned and managed key.
Media CDN utilizza sempre la Google-owned and managed key per generare i token. Le chiavi gestite dall'utente possono essere utilizzate solo per la verifica.
L'inclusione di chiavi pubbliche aggiuntive è utile per consentire all'applicazione del tuo lettore di accedere a playlist e segmenti multimediali utilizzando richieste firmate generate dalle tue chiavi private.
Configura lo scambio di token
Questa sezione mostra come configurare lo scambio di token creando più route. Un percorso consente di ottimizzare il comportamento in base al tipo di contenuti, agli attributi del client e ai requisiti di aggiornamento. Negli esempi seguenti, utilizziamo le route per configurare lo scambio di token per ogni parte di una richiesta multimediale.
Configurare la route del manifest principale in modo che richieda token di breve durata
Configura Media CDN in modo che richieda token di breve durata sulla route del manifest principale.
Console
Attiva l'autenticazione con token di breve durata sulla route del manifest principale:
Nella console Google Cloud , vai alla pagina Media CDN.
Per aprire la pagina Dettagli di un servizio, fai clic sul nome del servizio.
Per passare alla modalità di modifica, fai clic sul pulsante Modifica.
Per passare alla sezione Routing, fai clic su Avanti.
Espandi la regola host a cui vuoi aggiungere la regola di routing del manifest principale.
Fai clic su Aggiungi regola di percorso.
In alternativa, per modificare una regola di routing, fai clic su
Modifica nella riga corrispondente.Nel riquadro Modifica regola di route, per Priorità, imposta un valore, ad esempio
1
.In Descrizione, fornisci una breve descrizione che possa aiutarti a identificare la regola nell'elenco delle regole.
Nella sezione Corrispondenza, fai clic su Aggiungi una condizione di corrispondenza. Poi, procedi nel seguente modo:
- Per Tipo di corrispondenza, seleziona Corrispondenza con modello di percorso.
- Per Corrispondenza del percorso, specifica i nomi o i modelli di percorso per il file manifest HLS principale (M3U8) o DASH (MPD). Per ulteriori informazioni, vedi Corrispondenza dei percorsi.
Fai clic su Configurazioni avanzate.
Nella sezione Azione del percorso, fai clic su Aggiungi un elemento.
In Tipo, seleziona Criterio CDN.
Nella sezione Richiesta firmata, per Modalità di richiesta firmata, seleziona Richiedi token.
Nella sezione Keyset di richieste firmate, segui questi passaggi:
Per specificare il keyset per i token di breve durata, fai clic su Seleziona un keyset e seleziona il keyset dei token di breve durata.
In alternativa, per creare un nuovo keyset con le chiavi che ti servono, fai clic su Crea nuovo keyset. Quindi, selezionalo.
Per Algoritmo di firma, seleziona Ed25519 con chiavi pubbliche.
Per Parametro di query del token, mantieni il valore predefinito,
edge-cache-token
.In alternativa, se prevedi di utilizzare parametri di ricerca dell'URL del manifest HLS anziché i cookie per l'autenticazione, specifica il parametro in cui memorizzare i token di richiesta.
Per Durata massima, specifica, in secondi, la durata massima dei token di richieste in entrata.
Per salvare le modifiche nella sezione Azione di percorso, fai clic su Fine.
Per salvare le modifiche alla regola di routing, fai clic su Salva.
gcloud e YAML
Esporta la configurazione di Media CDN in un file YAML. Utilizza il comando
gcloud edge-cache services export
.gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yaml
Sostituisci quanto segue:
SERVICE_NAME
: il nome del servizioFILENAME
: il nome del file YAML
Per abilitare l'autenticazione con token di breve durata nella regola di routing del manifest principale, specifica una configurazione
signedTokensOptions
nella sezionecdnPolicy
del file YAML della route.pathMatchers: - name: "ROUTE_NAME" routeRules: - priority: 1 description: "ROUTE_DESCRIPTION" origin: "ORIGIN_NAME" matchRules: - pathTemplateMatch: "/MANIFEST_OR_PLAYLIST" routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_TOKENS signedRequestKeyset: SHORT_KEYSET_NAME signedRequestMaximumExpirationTtl: SIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME signedTokenOptions: tokenQueryParameter: SHORT_TOKEN_NAME
Sostituisci quanto segue:
ROUTE_NAME
: il nome della regola di routingROUTE_DESCRIPTION
: una descrizione della regola di routeORIGIN_NAME
: il nome dell'origineMANIFEST_OR_PLAYLIST
: il nome della playlist principale HLS (M3U8) o del file manifest DASH (MPD). Per ulteriori informazioni, vedi Corrispondenza dei percorsi.SHORT_KEYSET_NAME
: il nome del keyset da utilizzare per i token di breve durataSIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME
: l'ora di scadenza delle richieste firmate, ad esempio600s
. Per ulteriori informazioni, vedisignedRequestMaximumExpirationTtl
.- (Facoltativo)
SHORT_TOKEN_NAME
: il parametro della query in cui trovare il token breve. Il valore predefinito èedge-cache-token
. Per ulteriori informazioni, vediSignedTokenOptions
.
Quando utilizzi HMAC con chiave simmetrica, nella sezione
signedTokenOptions
, aggiungiallowedSignatureAlgorithms
con il relativo valoreHMAC_SHA_256
:allowedSignatureAlgorithms: - HMAC_SHA_256
Per aggiornare il servizio, importa la configurazione di Media CDN dal file YAML. Utilizza il comando
gcloud edge-cache services import
.gcloud edge-cache services import SERVICE_NAME \ --source=FILENAME.yaml
In questo modo, la procedura di attivazione dell'autenticazione con singolo token è completata.
Per configurare l'autenticazione con doppio token, vai alle sezioni seguenti.
Configura la regola di routing del manifest principale per generare token di lunga durata
Configura Media CDN per generare token di lunga durata sulla route del manifest principale. Scegli i cookie o parametri di ricerca dell'URL per generare questi token.
Console
Modifica la regola di routing del manifest principale in modo che Media CDN possa generare token di lunga durata sulla route:
- Nella pagina Modifica regola di routing, fai clic su Configurazioni avanzate.
- In Tipo, seleziona Criterio CDN.
- Espandi Autenticazione con doppio token.
- In Azione della firma, seleziona Genera nuovo token di lunga durata.
Per Tipo di firma, seleziona una delle seguenti opzioni:
- tramite cookie (per flussi HLS e DASH): configura
Media CDN in modo che restituisca un
Edge-Cache-Cookie
con la risposta del manifest principale. - Mediante parametri di ricerca per l'URL del manifest HLS (senza cookie): configura Media CDN per manipolare il manifest HLS principale aggiungendo un token di lunga durata a ogni URL.
- tramite cookie (per flussi HLS e DASH): configura
Media CDN in modo che restituisca un
Nella sezione Genera nuovo token di lunga durata, segui questi passaggi:
Per specificare un keyset per i token di lunga durata, fai clic su Seleziona un keyset e seleziona il keyset dei token di lunga durata.
In alternativa, fai clic su Crea nuovo keyset per creare un nuovo keyset con le chiavi che ti servono. Quindi, selezionalo.
Per TTL token, specifica, in secondi, la durata massima del token di lunga durata.
Per Tipo di firma, se hai selezionato l'opzione tramite cookie, nella sezione Parametri copiati, seleziona i parametri che vuoi che Media CDN copi dal token di breve durata al token di lunga durata. Per utilizzare l'autenticazione con doppio token, devi selezionare
PathGlobs
(o uno dei suoi alias,acl
opaths
) oURLPrefix
.Se hai selezionato l'opzione tramite parametri di query dell'URL del manifest HLS, per Parametro di query del token, mantieni il valore predefinito,
edge-cache-token
.
Per salvare le modifiche nella sezione Azione di percorso, fai clic su Fine.
Per salvare le modifiche alla regola di routing, fai clic su Salva.
Viene visualizzato un messaggio che chiede se vuoi creare le route per i segmenti e le playlist multimediali automaticamente o manualmente. Se selezioni l'opzione automatica, viene creato un nuovo percorso per la firma dei cookie e due per la firma senza cookie. Se selezioni l'opzione manuale, vai alla sezione successiva.
gcloud e YAML
Modifica la sezione addSignatures
della regola di route del manifest principale in modo che
Media CDN possa generare token di lunga durata sulla route:
Cookie
addSignatures:
actions:
- GENERATE_COOKIE
keyset: LONG_KEYSET_NAME
tokenTtl: TOKEN_EXPIRATION_TIME
copiedParameters:
- PathGlobs
- SessionID
Sostituisci quanto segue:
LONG_KEYSET_NAME
: il nome del keyset di token di lunga durataTOKEN_EXPIRATION_TIME
: la scadenza del token di lunga durata, ad esempio86400s
per una scadenza di un giorno
Questo esempio di codice implementa le seguenti modifiche:
addSignatures.actions: GENERATE_COOKIE
: configura Media CDN per restituire unEdge-Cache-Cookie
con la risposta del manifest principalecopiedParameters.PathGlobs
: configura Media CDN per copiarePathGlobs
dal token di breve durata al token di lunga durata. Per utilizzare l'autenticazione con doppio token, devi utilizzarecopiedParameters.PathGlobs
ocopiedParameters.URLPrefix
. Per ulteriori informazioni, vedicopiedParameters
.(Facoltativo)
copiedParameters.SessionID
: configura Media CDN per copiareSessionID
dal token di breve durata al token di lunga durata
Quando viene applicata l'azione GENERATE_COOKIE
, Media CDN
restituisce un'intestazione Set-Cookie
simile alla seguente con la risposta del manifest principale:
Set-Cookie: Edge-Cache-Cookie=PathGlobs=PATHS~SessionID=SESSION_ID~Expires=EXPIRATION~_GO=Generated~Signature=SIGNATURE
Parametri di ricerca dell'URL
addSignatures:
actions:
- GENERATE_TOKEN_HLS_COOKIELESS
keyset: LONG_KEYSET_NAME
tokenTtl: TOKEN_EXPIRATION_TIME
copiedParameters:
- PathGlobs
- SessionID
tokenQueryParameter: LONG_TOKEN_NAME
Sostituisci quanto segue:
LONG_KEYSET_NAME
: il nome del tuo set di chiavi di lunga durataTOKEN_EXPIRATION_TIME
: il tempo per la scadenza del token di lunga durata, ad esempio86400s
per una scadenza di un giorno
Questo esempio di codice implementa le seguenti modifiche:
addSignatures.actions: GENERATE_TOKEN_HLS_COOKIELESS
: configura Media CDN per manipolare il manifest HLS principale aggiungendo un token di lunga durata a ogni URI presente.copiedParameters.PathGlobs
: configura Media CDN per copiarePathGlobs
dal token di breve durata al token di lunga durata. Per utilizzare l'autenticazione con doppio token, devi utilizzare uno dei seguenti metodi:copiedParameters.PathGlobs
ocopiedParameters.URLPrefix
. Per ulteriori informazioni, vedicopiedParameters
.(Facoltativo)
copiedParameters.SessionID
: configura Media CDN per copiareSessionID
dal token di breve durata al token di lunga durata.(Facoltativo)
LONG_TOKEN_NAME
: il parametro di query in cui inserire il token lungo generato. Il valore predefinito èedge-cache-token
. Per ulteriori informazioni, veditokenQueryParameter
.
Il seguente file manifest mostra l'azione GENERATE_TOKEN_HLS_COOKIELESS
applicata:
#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000 http://example.com/HLS_PRIMARY_PLAYLIST.m3u8?LONG_TOKEN_NAME=PathGlobs=PATHS~SessionID=SESSION_ID~Expires=EXPIRATION~_GO=Generated~Signature=SIGNATURE
La CDN per i contenuti multimediali verifica il token di breve durata, quindi
genera e archivia il token di lunga durata nel
parametro di query LONG_TOKEN_NAME
.
Configura le route dei segmenti e delle playlist multimediali in modo che richiedano token di lunga durata
Configura le route dei segmenti e delle playlist multimediali in modo che richiedano token di lunga durata.
Console
Cookie
Crea una regola di route per la route dei segmenti e della playlist multimediale:
- Nella pagina Modifica servizio Edge Cache, nella sezione Routing, fai clic sulla regola host che contiene la route del manifest principale.
- Fai clic su Aggiungi regola di percorso.
- Nel riquadro Modifica regola di route, per Priorità, imposta un valore
maggiore di quello della route del manifest principale, ad esempio
2
. Valori più alti indicano una priorità inferiore. - In Descrizione, fornisci una breve descrizione che possa aiutarti a identificare la regola nell'elenco delle regole.
Imposta i seguenti campi come suggerito:
- Seleziona un'origine: come per la regola di routing del manifest principale
- Aggiungi una condizione di corrispondenza: come per la regola di route del file manifest principale
- Tipo: Criterio CDN
- Modalità di richiesta firmata: Richiedi token
- Seleziona un set di chiavi: come per i token di lunga durata
- Algoritmo di firma: lo stesso della regola di routing del manifest principale
Espandi Autenticazione con doppio token.
In Azione firma, mantieni il valore predefinito Nessuna.
Fai clic su Fine e poi su Salva.
Parametri di ricerca dell'URL
Crea una regola di routing per la playlist multimediale.
- Nella pagina Modifica servizio Edge Cache, nella sezione Routing, fai clic sulla regola host che contiene la route del manifest principale.
- Fai clic su Aggiungi regola di percorso.
- Nel riquadro Modifica regola di route, per Priorità, imposta un valore
maggiore di quello della route del manifest principale, ad esempio
2
. Valori più alti indicano una priorità inferiore. - In Descrizione, fornisci una breve descrizione che possa aiutarti a identificare la regola nell'elenco.
Imposta i seguenti campi come suggerito:
- Seleziona un'origine: la stessa della regola di routing del manifest principale
- Aggiungi una condizione di corrispondenza: la stessa della regola di percorso del manifest principale
- Tipo: Criterio CDN
- Modalità di richiesta firmata: Richiedi token
- Seleziona un set di chiavi: come per i token di lunga durata
- Algoritmo di firma: lo stesso della regola di route del manifest principale
- Parametro di query del token: lo stesso dei token di lunga durata
Espandi Autenticazione con doppio token.
Per Azione della firma, seleziona Propaga token di lunga durata esistente.
Questa opzione viene attivata solo dopo che Media CDN verifica che il token di lunga durata è stato generato utilizzando il tipo di firma tramitparametri di ricercary per l'URL del manifest HLS (senza cookie).
Per Parametro di query del token, mantieni il valore predefinito,
edge-cache-token
.Fai clic su Fine e poi su Salva.
Crea una regola di route per i segmenti multimediali.
Questo percorso è simile a quello delle playlist multimediali, con le seguenti differenze principali:
- Per Priorità, imposta un valore maggiore di quello della regola di route della playlist multimediale, ad esempio
3
. - In Descrizione, fornisci una breve descrizione che possa aiutarti a identificare la regola nell'elenco.
- Nella sezione Autenticazione con due token, per Azione di firma, mantieni il valore predefinito Nessuna.
- Per Priorità, imposta un valore maggiore di quello della regola di route della playlist multimediale, ad esempio
gcloud e YAML
Modifica il file YAML:
Cookie
Configura la playlist multimediale e i segmenti in modo che richiedano cookie di lunga durata:
- priority: 2
description: "SEGMENTS_ROUTE_DESCRIPTION"
origin: "ORIGIN_NAME"
matchRules:
- pathTemplateMatch: "/**.m3u8" # HLS media playlists
- pathTemplateMatch: "/**.ts" # HLS segments
- pathTemplateMatch: "/**.m4s" # DASH / CMAF segments
routeAction:
cdnPolicy:
cacheMode: CACHE_ALL_STATIC
signedRequestMode: REQUIRE_TOKENS
signedRequestKeyset: LONG_KEYSET_NAME
Sostituisci SEGMENTS_ROUTE_DESCRIPTION con una descrizione dell'itinerario.
Questo esempio di codice implementa le seguenti modifiche:
priority: 2
: la priorità della route. Valori più alti indicano una priorità inferiore. Poiché la route per le playlist multimediali e i segmenti multimediali corrisponde a qualsiasi nome file che termina con.m3u8
, la priorità della route deve essere inferiore a quella della route creata in precedenza per il manifest principale.signedRequestMode: REQUIRE_TOKENS
: impone i token per le playlist multimediali e i segmenti multimediali. Se utilizzi file di descrizione della presentazione (MPD) di contenuti multimediali statici, i set di chiavi lunghi e brevi potrebbero essere diversi. Se utilizzi file MPD dinamici, i set di chiavi lunghi e brevi devono essere uguali.signedRequestKeyset: LONG_KEYSET_NAME
: Media CDN utilizza il set di chiavi di lunga durata per convalidare il cookie di lunga durata fornito da un user agent per le richieste di playlist multimediali e segmenti multimediali.
Parametri di ricerca dell'URL
Aggiungi due configurazioni di route:
Configura le route del manifest multimediale HLS per propagare i token di lunga durata:
- priority: 2 description: "PLAYLIST_ROUTE_DESCRIPTION" origin: "ORIGIN_NAME" matchRules: - pathTemplateMatch: "/**.m3u8" # HLS media playlists routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_TOKENS signedRequestKeyset: LONG_KEYSET_NAME addSignatures: actions: - PROPAGATE_TOKEN_HLS_COOKIELESS
Sostituisci PLAYLIST_ROUTE_DESCRIPTION con una descrizione dell'itinerario.
Questo esempio di codice implementa le seguenti modifiche:
priority: 2
: la priorità della route. Valori più alti indicano una priorità inferiore. Poiché la route per le playlist multimediali corrisponde a qualsiasi nome file che termina con.m3u8
, la priorità della route deve essere inferiore a quella della route creata in precedenza per il manifest principale.signedRequestMode: REQUIRE_TOKENS
: impone i token per le playlist multimediali e i segmenti multimediali. Se utilizzi file di descrizione della presentazione (MPD) di contenuti multimediali statici, i set di chiavi lunghi e brevi potrebbero essere diversi. Se utilizzi file MPD dinamici, i keyset lunghi e corti devono essere uguali.signedRequestKeyset: LONG_KEYSET_NAME
: Media CDN utilizza il set di chiavi di lunga durata per convalidare il cookie di lunga durata fornito da un user agent per le richieste di playlist multimediali e segmenti multimediali.addSignatures.actions: PROPAGATE_TOKEN_HLS_COOKIELESS
: configura Media CDN per copiare il token di lunga durata negli URI dei segmenti multimediali nelle playlist multimediali.
Configura le route dei segmenti in modo che richiedano token di lunga durata:
- priority: 3 description: "SEGMENTS_ROUTE_DESCRIPTION" origin: "ORIGIN_NAME" matchRules: - pathTemplateMatch: "/**.ts" # HLS segments routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_TOKENS signedRequestKeyset: LONG_KEYSET_NAME
Sostituisci SEGMENTS_ROUTE_DESCRIPTION con una descrizione dell'itinerario.
Questo esempio di codice implementa le seguenti modifiche:
priority: 3
: la priorità della route. Valori più alti indicano una priorità inferiore. La priorità di questa route deve essere inferiore a quella della route creata in precedenza per le playlist multimediali.signedRequestMode: REQUIRE_TOKENS
: impone i token per le playlist multimediali e i segmenti multimediali.signedRequestKeyset: LONG_KEYSET_NAME
: Media CDN utilizza il set di chiavi di lunga durata per convalidare il token firmato di lunga durata fornito da un user agent per le richieste di playlist multimediali e segmenti multimediali.
File di configurazione di esempio
Il seguente esempio di codice mostra un file di configurazione completato:
Cookie
name: SERVICE_NAME
routing:
hostRules:
- hosts:
- DOMAIN_NAME
pathMatcher: routes
pathMatchers:
- name: "ROUTE_NAME"
routeRules:
- priority: 1
description: "ROUTE_DESCRIPTION"
origin: "ORIGIN_NAME"
matchRules:
- pathTemplateMatch: "/HLS_MASTER_PLAYLIST.m3u8" # HLS primary playlists
- pathTemplateMatch: "/DASH_MANIFESTS.mpd" # DASH manifests
routeAction:
cdnPolicy:
cacheMode: CACHE_ALL_STATIC
signedRequestMode: REQUIRE_TOKENS
signedRequestKeyset: SHORT_KEYSET_NAME
signedRequestMaximumExpirationTtl: SIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME
addSignatures:
actions:
- GENERATE_COOKIE
keyset: LONG_KEYSET_NAME
tokenTtl: TOKEN_EXPIRATION_TIME
copiedParameters:
- PathGlobs
- SessionID
- priority: 2
description: "SEGMENTS_ROUTE_DESCRIPTION"
origin: "ORIGN_NAME"
matchRules:
- pathTemplateMatch: "/**.m3u8" # HLS media playlists
- pathTemplateMatch: "/**.ts" # HLS segments
- pathTemplateMatch: "/**.m4s" # DASH / CMAF segments
routeAction:
cdnPolicy:
cacheMode: CACHE_ALL_STATIC
signedRequestMode: REQUIRE_TOKENS
signedRequestKeyset: LONG_KEYSET_NAME
Parametri di ricerca dell'URL
name: SERVICE_NAME
routing:
hostRules:
- hosts:
- DOMAIN_NAME
pathMatcher: routes
pathMatchers:
- name: "ROUTE_NAME"
routeRules:
- priority: 1
description: "ROUTE_DESCRIPTION"
origin: "ORIGIN_NAME"
matchRules:
- pathTemplateMatch: "/HLS_PRIMARY_PLAYLIST.m3u8" # HLS primary playlists
routeAction:
cdnPolicy:
cacheMode: CACHE_ALL_STATIC
signedRequestMode: REQUIRE_TOKENS
signedRequestKeyset: SHORT_KEYSET_NAME
signedRequestMaximumExpirationTtl: SIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME
signedTokenOptions:
tokenQueryParameter: SHORT_TOKEN_NAME
addSignatures:
actions:
- GENERATE_TOKEN_HLS_COOKIELESS
keyset: LONG_KEYSET_NAME
tokenTtl: TOKEN_EXPIRATION_TIME
tokenQueryParameter: LONG_TOKEN_NAME
copiedParameters:
- PathGlobs
- SessionID
- priority: 2
description: "PLAYLIST_ROUTE_DESCRIPTION"
origin: "ORIGIN_NAME"
matchRules:
- pathTemplateMatch: "/**.m3u8" # HLS media playlists
routeAction:
cdnPolicy:
cacheMode: CACHE_ALL_STATIC
signedRequestMode: REQUIRE_TOKENS
signedRequestKeyset: LONG_KEYSET_NAME
addSignatures:
actions:
- PROPAGATE_TOKEN_HLS_COOKIELESS
- priority: 3
description: "SEGMENTS_ROUTE_DESCRIPTION"
origin: "ORIGIN_NAME"
matchRules:
- pathTemplateMatch: "/**.ts" # HLS segments
routeAction:
cdnPolicy:
cacheMode: CACHE_ALL_STATIC
signedRequestMode: REQUIRE_TOKENS
signedRequestKeyset: LONG_KEYSET_NAME
Generare token di breve durata sul server delle applicazioni
Per informazioni sulla generazione di token, consulta Generare token.
Applica protezioni dei contenuti in profondità
Come best practice, attiva l'autenticazione dell'origine nel seguente modo:
Per Cloud Storage, utilizza le autorizzazioni Identity and Access Management con bucket Cloud Storage privati.
Per i provider di spazio di archiviazione compatibili con AWS, utilizza la versione 4 della firma di AWS. L'utilizzo dell'autenticazione dell'origine blocca le richieste che tentano di aggirare Media CDN e accedere direttamente all'origine.