Para crear una solicitud firmada, redacta una cadena que incluya parámetros que describan el contenido que deseas proteger y la fecha de vencimiento del valor firmado. Luego, debes incluir la cadena compuesta en tu solicitud. Luego, Media CDN verifica que tu solicitud firmada sea válida antes de procesarla.
Requisitos de las solicitudes firmadas
Las solicitudes firmadas deben cumplir con los siguientes requisitos:
Tener un método HTTP
GET,HEADoOPTIONSNo se admiten otros métodos.Tener una hora de vencimiento establecida para el futuro Debido a las posibles diferencias en la sincronización del reloj, así como a las condiciones de la red del cliente (por ejemplo, desconexiones y reintentos), recomendamos establecer marcas de tiempo con una anticipación de al menos un minuto o, como mínimo, la duración de la transmisión de video por Internet, lo 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 solicitudes POST, PUT o DELETE.
Si necesitas emitir URLs firmadas para cargas orientadas al usuario, consulta la documentación de Cloud Storage sobre URLs firmadas.
Configura solicitudes firmadas
En las siguientes secciones, se detalla cómo configurar, firmar y validar solicitudes firmadas.
Generar claves
Crea las claves que Media CDN usa para firmar solicitudes.
Crea un conjunto de claves
Crea el conjunto de claves que Media CDN usa para las solicitudes firmadas.
Cómo requerir solicitudes firmadas
Para permitir que solo las solicitudes firmadas accedan a un recurso, puedes adjuntar una lista de claves a una ruta y establecer signedRequestMode en uno de los siguientes valores:
REQUIRE_SIGNATURESpara solicitudes firmadas que no usan tokensREQUIRE_TOKENSpara solicitudes firmadas que usan tokens
Habilitar las solicitudes firmadas en una ruta exige que todas las solicitudes estén firmadas o presenten un token. Las solicitudes sin una firma válida (como un nombre de clave no válido, una firma o un token vencidos, una firma que no coincide, etcétera) 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 Cómo rotar secretos.
Cuando signedRequestMode se establece en REQUIRE_SIGNATURES o REQUIRE_TOKENS, Media CDN valida tanto los aciertos como los errores 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 Genera tokens.
Para inhabilitar la firma de solicitudes, puedes establecer signedRequestMode en DISABLED y borrar la referencia a signedRequestKeyset.
Valida las solicitudes en el origen
Cuando una ruta se configura con un modo de firma de REQUIRE_SIGNATURES, Media CDN valida que cada solicitud coincidente tenga una firma válida. La falta de una firma se considera una firma no válida para estas rutas.
Para evitar casos en los que la firma esté configurada de forma incorrecta y en los que un usuario intente acceder a tu origen directamente, 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 con licencia y pagado.
En el caso de los métodos de firma basados en URL, en los que la firma forma parte de los parámetros
de consulta o está integrada como un componente de la ruta de URL, la firma y los parámetros
relacionados se quitan de la URL antes de que se envíe la solicitud al
origen. Esto evita que la firma cause problemas de enrutamiento cuando el
origen controla la solicitud. Para validar estas solicitudes, puedes inspeccionar el
encabezado de la solicitud x-client-request-url, que incluye la URL de solicitud
del cliente original (firmada) antes de quitar los componentes firmados.
Para validar solicitudes en el origen, usa el mismo código de validación como parte de tus extremos de firma de solicitudes, lo que también ayuda a mitigar las discrepancias de claves y los problemas debido a la rotación de claves.
Rotar claves
Como práctica recomendada, rota o actualiza los secretos que usa Media CDN con regularidad. Recomendamos rotar las claves cada 30 a 60 días, pero no es estrictamente obligatorio.
¿Qué sigue?
Para obtener más información sobre cómo habilitar y acceder a los registros de Media CDN, incluido cómo filtrar y realizar consultas en tus registros, consulta Registro.
Para configurar Media CDN y un bucket privado de Cloud Storage, consulta Conectividad y protección del origen.