Para aplicar de manera forzosa la autenticación de token doble cuando los espectadores acceden a un recurso de transmisión, debes configurar rutas independientes. Una ruta es una configuración que coincide con las solicitudes de Media CDN y dirige el tráfico HTTP a un origen. Media CDN admite rutas para recursos de transmisión HTTP en vivo (HLS) o transmisión dinámica adaptable a través de HTTP (DASH). Para obtener más información sobre las rutas en Media CDN, consulta Configura las rutas de servicio.
En el caso de las transmisiones HLS, Media CDN admite la autenticación de token doble a través de cookies y parámetros de consulta de URL (sin cookies). En el caso de las transmisiones DASH, Media CDN solo admite la autenticación de token doble basada en cookies.
En esta página, se describe cómo configurar rutas de Media CDN para obtener ayuda. proteger contenido con la autenticación de token doble.
Antes de comenzar
Puedes hacer lo siguiente:
Para tokens de corta duración, elige uno de los siguientes algoritmos de firma:
- Firmas Ed25519
- Códigos de autenticación de mensajes basados en hash (HMAC) de clave simétrica
Puedes habilitar los algoritmos de firma de HMAC simétrico solo para las rutas configuradas para generar nuevos tokens de larga duración. Te recomendamos que uses Ed25519 firmas para un rendimiento y una seguridad óptimos, y HMAC de clave simétrica solo cuando sea necesario para brindar compatibilidad con otras CDN.
Incluye las claves necesarias en un recurso
EdgeCacheKeyset
.Los tokens deben firmarse o verificarse con claves en un recurso
EdgeCacheKeyset
. El conjunto de claves debe incluir las claves correctas para la clave seleccionada de firma de certificados. En la siguiente tabla, se describe cada una de las firmas los algoritmos y sus claves requeridas.Algoritmo de firma Claves requeridas en el conjunto de claves Ed25519 Claves públicas HMAC-SHA1 Claves compartidas de validación HMAC‑SHA256 Claves compartidas de validación Como práctica recomendada, crea dos conjuntos de claves separados, uno para de corta duración y otro para los de larga duración.
Sin embargo, si usas DASH y la descripción (MPD), debes usar el mismo conjunto de claves para ambos tokens de larga duración y de corta duración.
Para los tokens de larga duración, elige uno de los siguientes formatos de token:
- Cookies
- Parámetros de consulta de URL
Configura tokens de corta duración
Según el algoritmo de firma que quieras usar, configura una duración los tokens usando una de las siguientes opciones.
Firma Ed25519
Genera una clave privada:
openssl genpkey -algorithm ed25519 -outform PEM -out SSL_KEY_NAME.private.key
Reemplaza
SSL_KEY_NAME
por el nombre de una clave.Genera una clave pública a partir de la clave privada:
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 nuevo conjunto de claves con una sola clave pública:
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haz clic en la pestaña Conjuntos de claves.
Haz clic en
Crear conjunto de claves.En Nombre, ingresa un nombre de conjunto de claves único.
Opcional: En Descripción, ingresa una descripción para tu conjunto de claves.
Opcional: Haz clic en Agregar etiqueta y, luego, ingresa uno o más pares clave-valor. para tu conjunto de claves.
Haz clic en Agregar clave pública y, luego, haz lo siguiente:
- En ID, ingresa un ID alfanumérico.
- Selecciona Ingresar el valor y, luego, especifica el valor codificado en base64 de tu clave pública Ed25519.
Haz clic en Crear conjunto de claves.
gcloud
Usa el 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'
Reemplaza lo siguiente:
SHORT_KEYSET_NAME
: Es un conjunto de claves único. nombre, por ejemplo,prod-vod-keyset
SSL_PUBLIC_KEY_NAME
: Es el nombre de tu Clave pública SSLSSL_PUBLIC_KEY_VALUE
: Es el valor de tu Clave pública SSL
Para revisar las claves asociadas con el conjunto de claves, usa el Comando
gcloud edge-cache keysets describe
gcloud edge-cache keysets describe prod-vod-keyset
El resultado es similar a este:
name: prod-vod-keyset description: "Keyset for prod.example.com" publicKeys: - id: "key-20200918" value: "DThVLjhAKm3VYOvLBAwFZ5XbjVyF98Ias8NZU0WEM9w" - id: "key-20200808" value: "Lw7LDSaDUrbDdqpPA6JEmMF5BA5GPtd7sAjvsnh7uDA="
Terraform
HMAC de clave simétrica
Si no has usado Secret Manager antes, configurar Secret Manager.
Agrega una versión del Secret en formato binario.
Otorga el rol de acceso a Secret Manager (
roles/secretmanager.secretAccessor
) a la cuenta de servicio de Media CDN:Console
En la consola de Google Cloud, ve a la página Secret Manager.
Selecciona la casilla de verificación junto al nombre del secreto.
Haz clic en Mostrar panel de información.
En el panel de información, haz clic en Agregar principal.
En Principales nuevas, ingresa el servicio Media CDN. cuenta en este formato:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com
Reemplaza
PROJECT_NUMBER
por tu proyecto. de la fila.En Selecciona un rol, elige Secret Manager y, luego, Administrador y descriptor de acceso a secretos.
gcloud
Usa el 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"
Reemplaza lo siguiente:
PROJECT_NUMBER
: Es el número de tu proyecto.SECRET_ID
: Es el ID del secreto.
Accede a tus versiones del Secret y copiar las rutas de acceso secretas, incluidos los números de versión.
Crea un nuevo conjunto de claves con los secretos compartidos en una clave compartida de validación:
Console
En la consola de Google Cloud, ve a la página Media CDN.
Haz clic en la pestaña Conjuntos de claves.
Haz clic en
Crear conjunto de claves.En Nombre, ingresa un nombre de conjunto de claves único.
Opcional: En Descripción, ingresa una descripción para tu conjunto de claves.
Opcional: Haz clic en Agregar etiqueta y, luego, ingresa uno o más pares clave-valor. para tu conjunto de claves.
Para especificar una clave compartida de validación, haz clic en Agregar clave compartida de validación. y, luego, haz lo siguiente:
En Secreto, selecciona un secreto de la lista, ingresa un secreto manualmente especificando su ID de recurso o crea un secreto nuevo y, luego, selecciónalo.
En Versión del secreto, selecciona una versión de la lista. crea una nueva versión del secreto y, luego, selecciónalo.
Haz clic en Crear conjunto de claves.
gcloud
Usa el 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'
Reemplaza lo siguiente:
SHORT_KEYSET_NAME
: Es un nombre único para el conjunto de claves, por ejemplo,prod-vod-keyset
.PROJECT_NUMBER
: El ID de tu proyectoSECRET_ID
: Es el ID de recurso del secreto.KEY_VERSION
: Es la versión del secreto que que quieras usar
Configura tokens de larga duración
El alcance de las claves administradas por Google se determina según el conjunto de claves. Eso significa que dos conjuntos de claves diferentes tienen diferentes claves administradas por Google. Las claves administradas por Google se rotan con regularidad.
Configura tokens de larga duración con una de las siguientes opciones:
Console
En la sección Claves, selecciona Usar la clave administrada por Google para la autenticación de token doble.
gcloud y YAML
Usa cualquiera de las siguientes opciones:
Crea una clave de firma administrada por Google:
gcloud edge-cache keysets create LONG_KEYSET_NAME \ --public-key='id=google-managed-key,managed=true'
Reemplaza
LONG_KEYSET_NAME
por una clave nombre, por ejemplo,prod-vod-keyset-long
.Modifica un conjunto de claves existente:
Exporta el conjunto de claves a un archivo YAML. Usa el comando
gcloud edge-cache keysets export
gcloud edge-cache keysets export LONG_KEYSET_NAME \ --destination=prod-vod-keyset-long.yaml
En un editor de texto o en tus herramientas de administración de configuración, edita tu keyset de modo que se vea similar al siguiente:
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 el conjunto de claves editado. Usa el comando
gcloud edge-cache keysets import
:gcloud edge-cache keysets import LONG_KEYSET_NAME \ --source=prod-vod-keyset-long.yaml
Puedes incluir claves públicas adicionales en el conjunto de claves de tokens de larga duración. El conjunto de claves puede tener como máximo tres claves públicas. En la práctica, esto significa que el conjunto de claves puede tener dos claves administradas por el usuario y una clave administrada por Google.
Media CDN siempre usa la clave administrada por Google para generar tokens. Las claves administradas por el usuario solo se pueden usar para la verificación.
Incluir claves públicas adicionales es útil para permitir que la aplicación del reproductor acceder a playlists de medios y a segmentos de medios usando solicitudes firmadas que generados por tus propias claves privadas.
Configura el intercambio de tokens
En esta sección, se muestra cómo configurar el intercambio de tokens mediante la creación de varias rutas. Una ruta te permite optimizar el comportamiento según el tipo de contenido, atributos y los requisitos de actualización. En los siguientes ejemplos, usamos rutas para configurar el intercambio de tokens para cada parte de una solicitud de contenido multimedia.
Cómo configurar la ruta del manifiesto principal para que requiera tokens de corta duración
Configura Media CDN para que requiera tokens de corta duración en el ruta del manifiesto principal.
Console
Habilita la autenticación de token de corta duración en la ruta del manifiesto principal:
En la consola de Google Cloud, ve a la página Media CDN.
Para abrir la página Detalles de un servicio, haz clic en el nombre del servicio.
Para cambiar al modo de edición, haz clic en el botón Editar.
Para navegar a la sección Enrutamiento, haz clic en Siguiente.
Expande la regla de host a la que deseas agregar el manifiesto principal. regla de enrutamiento.
Haz clic en Add route rule.
Como alternativa, para editar una regla de enrutamiento, haz clic
Editar en la fila correspondienteEn el panel Editar regla de ruta, en Prioridad, establece un valor, por ejemplo,
1
.En Descripción, proporciona una descripción breve que pueda ayudar a identificar la regla en la lista de reglas.
En la sección Coincidencia, haz clic en Agregar una condición de concordancia. Luego, haz lo siguiente: lo siguiente:
- En Tipo de concordancia, selecciona Coincidencia de plantilla de la ruta.
- En Coincidencia de ruta de acceso, especifica los nombres o las plantillas de ruta de acceso para el Lista de reproducción principal de HLS (M3U8) o archivo de manifiesto DASH (MPD). Para ver más consulta Coincidencias de rutas de acceso.
Haz clic en Configuración avanzada.
En la sección Acción de ruta, haz clic en Agregar un elemento.
En Tipo, selecciona CDN policy.
En la sección Solicitud firmada, en Modo de solicitud firmada, selecciona Solicitar tokens.
En la sección Conjunto de claves de solicitud firmada, haz lo siguiente:
Para especificar el conjunto de claves para tokens de corta duración, haz clic en Selecciona un conjunto de claves y elige tu conjunto de claves de token de corta duración.
Como alternativa, para crear un nuevo conjunto de claves que tenga las claves que necesitas, Haz clic en Crear un nuevo conjunto de claves. Luego, selecciónala.
En Algoritmo de firma, selecciona Ed25519 con claves públicas.
En Parámetro de consulta de token, conserva el valor predeterminado.
edge-cache-token
Como alternativa, si planeas usar parámetros de consulta de la URL del manifiesto de HLS en lugar de cookies para la autenticación, especifica el parámetro en en la que se almacenarán los tokens de solicitud.
En Tiempo de actividad máximo, especifica, en segundos, la vida útil máxima de tokens de solicitudes entrantes.
Para guardar los cambios en la sección Acción de ruta, haz clic en Listo.
Para guardar los cambios en la regla de enrutamiento, haz clic en Guardar.
gcloud y YAML
Exporta la configuración de Media CDN en un archivo YAML. Usa el Comando
gcloud edge-cache services export
gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yaml
Reemplaza lo siguiente:
SERVICE_NAME
: el nombre de tu servicio.FILENAME
: Es el nombre de tu archivo YAML.
Para habilitar la autenticación con token de corta duración en el manifiesto principal de ruta, en la sección
cdnPolicy
de la ruta del archivo YAML, especifica una configuración designedTokensOptions
.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
Reemplaza lo siguiente:
ROUTE_NAME
: Es el nombre de la regla de enrutamiento.ROUTE_DESCRIPTION
: Es una descripción de la regla de enrutamientoORIGIN_NAME
: Es el nombre del origen.MANIFEST_OR_PLAYLIST
: Es el nombre del HLS. la playlist principal (M3U8) o un archivo de manifiesto DASH (MPD). Para ver más consulta Coincidencias de rutas de acceso.SHORT_KEYSET_NAME
: Es el nombre del conjunto de claves que se usará. para tokens de corta duraciónSIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME
: el tiempo de vencimiento de las solicitudes firmadas, por ejemplo,600s
Para obtener más información, consultasignedRequestMaximumExpirationTtl
.SHORT_TOKEN_NAME
(la consulta) (opcional) el parámetro en el que se encuentra el token corto. El valor predeterminado esedge-cache-token
. Para obtener más información, consultaSignedTokenOptions
:
Cuando uses HMAC de clave simétrica, en la sección
signedTokenOptions
, AgregaallowedSignatureAlgorithms
con su valor comoHMAC_SHA_256
:allowedSignatureAlgorithms: - HMAC_SHA_256
Para actualizar el servicio, importa la configuración de Media CDN. del archivo YAML. Usa el Comando
gcloud edge-cache services import
gcloud edge-cache services import SERVICE_NAME \ --source=FILENAME.yaml
Esto completa el proceso de habilitación de la autenticación de token único.
Para configurar la autenticación de token doble, continúa con las siguientes secciones.
Configura la regla de enrutamiento del manifiesto principal para generar tokens de larga duración
Configura Media CDN para que genere tokens de larga duración en la ruta del manifiesto principal. Elegir cookies o parámetros de consulta de URL para generar estos tokens.
Console
Modifica la regla de enrutamiento del manifiesto principal para que Media CDN pueda generar tokens de larga duración en la ruta:
- En la página Editar regla de enrutamiento, haz clic en Configuración avanzada.
- En Tipo, selecciona CDN policy.
- Expande Autenticación de token doble.
- En Signature action, selecciona Generate new long-duration token.
En Tipo de firma, selecciona una de las siguientes opciones:
- a través de cookies (para transmisiones HLS y DASH): Configura Media CDN para que devuelva un
Edge-Cache-Cookie
con la respuesta del manifiesto principal. - A través de los parámetros de consulta de la URL del manifiesto de HLS (sin cookies): Configura la CDN de Media para manipular el manifiesto principal de HLS agregando un token de larga duración a cada URL.
- a través de cookies (para transmisiones HLS y DASH): Configura Media CDN para que devuelva un
En la sección Genera un nuevo token de larga duración, haz lo siguiente:
Para especificar un conjunto de claves para los tokens de larga duración, haz clic en Selecciona un conjunto de claves y elige tu conjunto de claves de token de larga duración.
Como alternativa, haz clic en Crear nuevo conjunto de claves para crear uno nuevo que tenga las claves que necesitas. Luego, selecciónala.
En TTL del token, especifica, en segundos, la vida útil máxima del el token de larga duración.
En Tipo de firma, si seleccionaste la opción mediante cookies, Luego, en la sección Copy parameters, selecciona los parámetros que deseas que Media CDN copie token de larga duración. Para usar la autenticación de doble token, debes seleccionar
PathGlobs
(o cualquiera de sus alias,acl
opaths
) oURLPrefix
.Si seleccionaste la opción a través de los parámetros de consulta de la URL del manifiesto de HLS, En Parámetro de consulta de token, conserva el valor predeterminado
edge-cache-token
Para guardar los cambios en la sección Acción de ruta, haz clic en Listo.
Para guardar los cambios en la regla de enrutamiento, haz clic en Guardar.
Aparecerá un mensaje en el que se te preguntará si quieres crear las rutas para el contenido multimedia listas de reproducción y segmentos de forma automática o manual. Si seleccionas automática, se crea una única ruta nueva para la firma de cookies y dos rutas para la firma sin cookies. Si seleccionas la configuración , continúa con la siguiente sección.
gcloud y YAML
Modifica la sección addSignatures
de la regla de enrutamiento del manifiesto principal para que
Media CDN puede generar tokens de larga duración en la ruta:
Cookies
addSignatures:
actions:
- GENERATE_COOKIE
keyset: LONG_KEYSET_NAME
tokenTtl: TOKEN_EXPIRATION_TIME
copiedParameters:
- PathGlobs
- SessionID
Reemplaza lo siguiente:
LONG_KEYSET_NAME
: Es el nombre de tu conjunto de claves de token de larga duraciónTOKEN_EXPIRATION_TIME
: La fecha y hora de vencimiento del token de larga duración, por ejemplo,86400s
por un token de un día fecha y hora de vencimiento
En este ejemplo de código, se implementan los siguientes cambios:
addSignatures.actions: GENERATE_COOKIE
: configura Media CDN para mostrar unEdge-Cache-Cookie
con la respuesta del manifiesto principalcopiedParameters.PathGlobs
: Configura Media CDN para que copie elPathGlobs
del token de corta duración al token de larga duración. Para usar la autenticación de token doble, debes usar cualquiera de las siguientes opciones:copiedParameters.PathGlobs
ocopiedParameters.URLPrefix
. Para ver más consultacopiedParameters
.Opcional:
copiedParameters.SessionID
: configura Media CDN para copiar elSessionID
del directorio de corta duración token de larga duración
Cuando se aplica la acción GENERATE_COOKIE
, Media CDN
muestra un encabezado Set-Cookie
similar al siguiente con el encabezado
respuesta del manifiesto:
Set-Cookie: Edge-Cache-Cookie=PathGlobs=PATHS~SessionID=SESSION_ID~Expires=EXPIRATION~_GO=Generated~Signature=SIGNATURE
Parámetros de consulta de URL
addSignatures:
actions:
- GENERATE_TOKEN_HLS_COOKIELESS
keyset: LONG_KEYSET_NAME
tokenTtl: TOKEN_EXPIRATION_TIME
copiedParameters:
- PathGlobs
- SessionID
tokenQueryParameter: LONG_TOKEN_NAME
Reemplaza lo siguiente:
LONG_KEYSET_NAME
: Es el nombre de tu conjunto de claves de larga duraciónTOKEN_EXPIRATION_TIME
: el vencimiento tiempo del token de larga duración, por ejemplo,86400s
para un tiempo de vencimiento de un día
En este ejemplo de código, se implementan los siguientes cambios:
addSignatures.actions: GENERATE_TOKEN_HLS_COOKIELESS
: configura Media CDN para manipular el servidor HLS principal del manifiesto agregando un token de larga duración a cada URI presente.copiedParameters.PathGlobs
: Configura Media CDN para copiar. elPathGlobs
del token de corta duración al token de larga duración token. Para usar la autenticación de token doble, debes usar uno decopiedParameters.PathGlobs
ocopiedParameters.URLPrefix
. Para ver más consultacopiedParameters
.Opcional:
copiedParameters.SessionID
: configura Media CDN. para copiarSessionID
del token de corta duración al de larga duración.LONG_TOKEN_NAME
(la consulta) (opcional) parámetro en el que se colocará el token largo generado. El valor predeterminado esedge-cache-token
. Para obtener más información, consultatokenQueryParameter
:
En el siguiente archivo de manifiesto, se muestra el GENERATE_TOKEN_HLS_COOKIELESS
acción aplicada:
#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
Media CDN verifica el token de corta duración y, luego,
genera y almacena el token de larga duración en la
Parámetro de consulta LONG_TOKEN_NAME
.
Configura la playlist de contenido multimedia y las rutas de segmentos para que requieran tokens de larga duración.
Configura las rutas de las playlists y los segmentos de medios para que requieran tokens de larga duración.
Console
Cookies
Crea una regla de enrutamiento para la ruta de las playlists y los segmentos de medios:
- En la página Editar servicio de almacenamiento en caché perimetral, en la sección Enrutamiento, haz lo siguiente: haz clic en la regla de host que tiene la ruta del manifiesto principal.
- Haz clic en Add route rule.
- En el panel Editar regla de enrutamiento, para Prioridad, establece un valor que
mayor que la de la ruta del manifiesto principal, por ejemplo,
2
. Los valores más altos indican una prioridad más baja. - En Descripción, proporciona una breve descripción que ayude a identificar la regla en la lista de reglas.
Configura los siguientes campos como se sugiere:
- Seleccionar un origen: Al igual que para la regla de enrutamiento del manifiesto principal
- Agrega una condición de coincidencia: Igual que para la ruta del manifiesto principal regla
- Tipo: Política de CDN
- Modo de solicitud firmada: requerir tokens
- Selecciona un conjunto de claves: igual que para los tokens de larga duración
- Algoritmo de firma: Es el mismo que el de la regla de ruta de manifiesto principal.
Expande Autenticación de token doble.
En Acción de firma (Signature action), conserva el valor predeterminado Ninguna (None).
Haz clic en Listo y, luego, en Guardar.
Parámetros de consulta de URL
Crea una regla de enrutamiento para la playlist de contenido multimedia.
- En la página Editar servicio de caché de Edge, en la sección Enrutamiento, haz clic en la regla de host que tiene la ruta de manifiesto principal.
- Haz clic en Add route rule.
- En el panel Editar regla de enrutamiento, para Prioridad, establece un valor
superior a la de la ruta del manifiesto principal, por
ejemplo,
2
. Los valores más altos indican una prioridad más baja. - En Descripción, proporciona una breve descripción que pueda servirte. identificar la regla en la lista de reglas.
Configura los siguientes campos como se sugiere:
- Seleccionar un origen: Al igual que para la ruta del manifiesto principal regla
- Agrega una condición de coincidencia: igual que para el manifiesto principal regla de enrutamiento
- Tipo: Política de CDN
- Modo de solicitud firmada: requerir tokens
- Selecciona un conjunto de claves: Igual que para los tokens de larga duración
- Algoritmo de firma: el mismo que el del manifiesto principal regla de enrutamiento
- Parámetro de consulta de token: igual que para larga duración tokens
Expande Autenticación de token doble.
En Signature action, selecciona Propagate existing long-duration token.
Esta opción se habilita solo después de que Media CDN se verifique que el token de larga duración se generó usando a través de la firma de parámetros de consulta de la URL del manifiesto de HLS (sin cookies) el tipo de letra.
En Parámetro de consulta de token, conserva el valor predeterminado.
edge-cache-token
Haz clic en Listo y, luego, en Guardar.
Crea una regla de enrutamiento para segmentos de contenido multimedia.
Esta ruta es similar a la de las playlists de contenido multimedia, con la siguiente diferencias clave:
- En Priority, establece un valor superior al del elemento multimedia.
regla de enrutamiento de playlist, por ejemplo,
3
. - En Descripción, proporciona una breve descripción que pueda ayudar a identificar la regla en la lista de reglas.
- En la sección Autenticación de token doble, para Acción de firma, conserva el valor predeterminado Ninguno.
- En Priority, establece un valor superior al del elemento multimedia.
regla de enrutamiento de playlist, por ejemplo,
gcloud y YAML
Edita el archivo YAML:
Cookies
Configura la playlist de contenido multimedia y los segmentos para que requieran cookies de larga duración:
- 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
Reemplaza SEGMENTS_ROUTE_DESCRIPTION por una descripción de la ruta.
En este ejemplo de código, se implementan los siguientes cambios:
priority: 2
: Es la prioridad de la ruta. Los valores más altos indican más bajo prioridad. Porque la ruta para tus playlists y segmentos de medios coincide con cualquier nombre de archivo que termine en.m3u8
, la prioridad de la ruta debe ser inferior a la ruta que creaste previamente para el manifiesto principal.signedRequestMode: REQUIRE_TOKENS
: Aplica tokens para contenido multimedia. listas de reproducción y segmentos de medios. Si usas contenido multimedia estático de descripción de la presentación (MPD) y, a continuación, los conjuntos de claves largo y corto pueden ser diferentes. Si usas archivos MPD dinámicos, las longitudes y los conjuntos de claves cortos deben ser iguales.signedRequestKeyset: LONG_KEYSET_NAME
: Media CDN usa el conjunto de claves de larga duración para validar cookie de larga duración proporcionada por un usuario-agente para la playlist de contenido multimedia y de segmentos multimedia.
Parámetros de consulta de URL
Agrega dos configuraciones de ruta:
Configura las rutas de manifiesto de contenido multimedia HLS para propagar tokens de larga duración:
- 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
Reemplaza PLAYLIST_ROUTE_DESCRIPTION por un descripción de la ruta.
En este ejemplo de código, se implementan los siguientes cambios:
priority: 2
: Es la prioridad de la ruta. Los valores más altos indican menor prioridad. Porque la ruta de tus playlists de contenido multimedia coincide cualquier nombre de archivo que termine en.m3u8
, la prioridad de la ruta debe ser inferior a la ruta que creaste anteriormente para el manifiesto principal.signedRequestMode: REQUIRE_TOKENS
: Aplica tokens para contenido multimedia. listas de reproducción y segmentos de medios. Si usas contenido multimedia estático archivos de descripción de presentación (MPD), los conjuntos de claves largo y corto pueden ser diferentes. Si usas archivos MPD dinámicos, la longitud y los conjuntos de claves cortos deben ser iguales.signedRequestKeyset: LONG_KEYSET_NAME
: Media CDN usa el conjunto de claves de larga duración para validar cookie de larga duración proporcionada por un usuario-agente para la playlist de contenido multimedia y de segmentos multimedia.addSignatures.actions: PROPAGATE_TOKEN_HLS_COOKIELESS
: configura Media CDN para copiar el token de larga duración al contenido multimedia los URI de segmentos en las playlists de contenido multimedia.
Configura las rutas de segmentos para que requieran tokens de larga duración:
- 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
Reemplaza SEGMENTS_ROUTE_DESCRIPTION por una descripción de la ruta.
En este ejemplo de código, se implementan los siguientes cambios:
priority: 3
: Es la prioridad de la ruta. Los valores más altos indican menor prioridad. La prioridad de esta ruta debe ser menor que la ruta que creaste anteriormente para las playlists de contenido multimedia.signedRequestMode: REQUIRE_TOKENS
: Aplica tokens para contenido multimedia. listas de reproducción y segmentos de medios.signedRequestKeyset: LONG_KEYSET_NAME
: Media CDN usa el conjunto de claves de larga duración para validar token firmado de larga duración proporcionado por un usuario-agente para medios solicitudes a playlists y segmentos multimedia.
Archivo de configuración de ejemplo
En la siguiente muestra de código, se muestra un archivo de configuración completo:
Cookies
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
Parámetros de consulta de 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
Genera tokens de corta duración en tu servidor de aplicaciones
Para obtener información sobre cómo generar tokens, consulta Genera tokens.
Aplica protecciones de contenido de defensa en profundidad
Como práctica recomendada, habilita la autenticación de origen de la siguiente manera:
Para Cloud Storage, usa permisos de Identity and Access Management con Depósitos de Cloud Storage
Para proveedores de almacenamiento compatibles con AWS, usa la firma de AWS versión 4. Usar la autenticación de origen bloquea las solicitudes que intentan eludir Media CDN y accede a tu origen directamente.