Para crear una solicitud firmada, crea una cadena que incluya parámetros que describan el contenido que quieras proteger y el tiempo de vencimiento del valor firmado. A continuación, incluye la cadena compuesta en tu solicitud. A continuación, Media CDN verifica que la solicitud firmada sea válida antes de actuar en consecuencia.
Requisitos de las solicitudes firmadas
Las solicitudes firmadas deben cumplir los siguientes requisitos:
Tener un método HTTP
GET
,HEAD
oOPTIONS
. No se admiten otros métodos.Tener una hora de vencimiento establecida en el futuro. Debido a las posibles diferencias de sincronización del reloj, así como a las condiciones de la red del cliente (por ejemplo, desconexiones y reintentos), recomendamos definir marcas de tiempo con una antelación de al menos un minuto o con una antelación igual a la duración del flujo de vídeo (la que sea mayor).
Tener una firma que se pueda verificar con una clave o un secreto en un
EdgeCacheKeyset
.
No puedes firmar otros métodos HTTP, como las solicitudes POST
, PUT
o DELETE
.
Si necesitas emitir URLs firmadas para las subidas visibles para los usuarios, consulta la documentación de Cloud Storage sobre URLs firmadas.
Configurar solicitudes firmadas
En las siguientes secciones se explica cómo configurar, firmar y validar solicitudes firmadas.
Generar claves
Crea las claves que Media CDN usa para firmar solicitudes.
Crear un conjunto de claves
Cree el conjunto de claves que usa Media CDN para las solicitudes firmadas.
Requerir solicitudes firmadas
Para permitir que solo las solicitudes firmadas accedan a un recurso, puede adjuntar una lista de claves a una ruta y asignar a signedRequestMode
uno de los siguientes valores:
REQUIRE_SIGNATURES
para solicitudes firmadas que no usen tokens.REQUIRE_TOKENS
para solicitudes firmadas mediante tokens.
Si habilitas las solicitudes firmadas en una ruta, se exigirá que todas las solicitudes estén firmadas o que presenten un token. Las solicitudes sin una firma válida (por ejemplo, un nombre de clave no válido, una firma o un token caducados, una firma que no coincide, etc.) fallan.
Un EdgeCacheKeyset
puede contener varias claves para permitir la rotación de claves. Se aceptan las solicitudes válidas firmadas con cualquier clave de la lista y las claves se prueban en orden. Para obtener más información sobre la rotación de claves, consulta Rotar secretos.
Si signedRequestMode
se define como REQUIRE_SIGNATURES
o REQUIRE_TOKENS
, Media CDN valida tanto los aciertos como los fallos de caché. Esto incluye todas las solicitudes al origen.
A continuación, se muestra un ejemplo de una configuración de Media CDN que aplica solicitudes firmadas en un PathMatcher (ruta) determinado:
gcloud edge-cache services describe prod-media-service
... routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_SIGNATURES signedRequestKeyset: prod-vod-keyset
Para obtener información sobre cómo crear tokens para solicitudes firmadas, consulta Generar tokens.
Para inhabilitar la firma de solicitudes, puedes asignar el valor signedRequestMode
a DISABLED
y eliminar la referencia a signedRequestKeyset
.
Validar las solicitudes en el origen
Cuando una ruta se configura con el modo de firma REQUIRE_SIGNATURES
,
Media CDN valida que cada solicitud coincidente tenga una firma
válida. La falta de firma se trata como una firma no válida en estas rutas.
Para evitar casos en los que la firma esté mal configurada y en los que un usuario intente acceder directamente a tu origen, te recomendamos que valides que las solicitudes también estén firmadas en el origen. Un enfoque de defensa en profundidad para la protección del contenido ayuda a evitar el acceso y la descarga no autorizados de tu contenido de pago y con licencia.
En los métodos de firma basados en URLs, en los que la firma forma parte de los parámetros de consulta o se inserta como un componente de la ruta de la URL, la firma y los parámetros relacionados se eliminan de la URL antes de que se envíe la solicitud al origen. De esta forma, se evita que la firma cause problemas de enrutamiento cuando el origen gestione la solicitud. Para validar estas solicitudes, puede inspeccionar el encabezado de solicitud x-client-request-url
, que incluye la URL de solicitud del cliente original (firmada) antes de que se eliminen los componentes firmados.
Para validar las solicitudes en el origen, utiliza el mismo código de validación como parte de tus endpoints de firma de solicitudes, lo que también ayuda a mitigar los problemas de incompatibilidad de claves y los problemas debidos a la rotación de claves.
Rotar claves
Te recomendamos que rotes o actualices los secretos que usa Media CDN con regularidad. Te recomendamos que rotes las claves cada 30 o 60 días, pero no es estrictamente necesario.
Siguientes pasos
Para obtener más información sobre cómo habilitar y acceder a los registros de Media CDN, incluido cómo filtrar y consultar los registros, consulta Registro.
Para configurar Media CDN y un segmento de Cloud Storage privado, consulta Conectividad y protección del origen.