Usar solicitudes firmadas

Para crear una solicitud firmada, redacta una cadena que incluya parámetros que describe el contenido que deseas proteger y la fecha de vencimiento del con signo. Luego, debes incluir la cadena compuesta en tu solicitud. Luego, Media CDN verifica que la solicitud firmada sea válida antes tomar medidas al respecto.

Requisitos de las solicitudes firmadas

Las solicitudes firmadas deben cumplir los siguientes requisitos:

  • Tener un método HTTP GET, HEAD o OPTIONS Otros métodos no son no es compatible.

  • Establecer una fecha de vencimiento establecida en el futuro Debido a un posible reloj las diferencias de sincronización, así como las condiciones de la red del cliente (para ejemplo, desconexiones y reintentos), recomendamos configurar marcas de tiempo menos de un minuto en el futuro o no menos que la duración de transmisión de video por Internet, el 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 las cargas orientadas al usuario, consulta el Documentación de Cloud Storage para URL firmadas

Consideraciones de seguridad

Media CDN valida todas las solicitudes que coinciden con una ruta configurada con un cdnPolicy.signedRequestMode de REQUIRE_SIGNATURES o REQUIRE_TOKENS.

En la siguiente tabla, se explican las situaciones en las que Media CDN valida una solicitud:

La solicitud tiene firma ¿La firma es válida? signedRequestMode Comportamiento Código de respuesta
No N/A REQUIRE_SIGNATURES o REQUIRE_TOKENS Las solicitudes sin firmas o tokens se tratan como si la firma fuera no válido. HTTP 403
No REQUIRE_SIGNATURES o REQUIRE_TOKENS Una firma o un token se consideran no válidos si están vencidos o tienen un La URL no coincide o la clave es incorrecta. Se rechazan las firmas o los tokens no válidos en el perímetro de CDN. HTTP 403
REQUIRE_SIGNATURES o REQUIRE_TOKENS Validar una firma o un token y la respuesta con contenido de o una recuperación desde el origen. HTTP 200
Ninguno o DISABLED No se realiza ninguna validación y se entrega una respuesta al usuario. directamente. HTTP 200
No Ninguno o DISABLED No se realiza ninguna validación y se entrega una respuesta al usuario. directamente. HTTP 200

Cuando tu aplicación detecte una firma no válida, asegúrate de que la aplicación responda con un código de respuesta HTTP 403 (Forbidden). Los códigos de respuesta de HTTP 403 no se pueden almacenar en caché.

Configura solicitudes firmadas

En las siguientes secciones, se detalla cómo configurar, firmar y validar solicitudes.

Generar claves

Crea las claves que usará Media CDN para firmar solicitudes.

Crea un conjunto de claves

Crea el conjunto de claves que usará Media CDN. para las solicitudes firmadas.

Exigir solicitudes firmadas

Para permitir que solo las solicitudes firmadas accedan a un recurso, puedes adjuntar un lista de claves de una ruta y establece signedRequestMode en una de las siguientes opciones:

  • REQUIRE_SIGNATURES para las solicitudes firmadas que no usan tokens

  • REQUIRE_TOKENS para las solicitudes firmadas que usan tokens

Habilitar solicitudes firmadas en una ruta exige que todas las solicitudes estén firmadas o presentar un token. Solicitudes sin una firma válida (como una clave no válida) nombre, firma o token vencido, firma no coincidente, etc.), falla.

Un EdgeCacheKeyset puede contener varias claves para permitir claves y la rotación de claves. Se aceptan solicitudes válidas firmadas con cualquier clave de la lista y se aceptan claves se prueban en orden. Para obtener más información sobre la rotación de claves, consulta Rotar secrets.

Cuando signedRequestMode se establece en REQUIRE_SIGNATURES o REQUIRE_TOKENS, Media CDN valida los aciertos y errores de caché. Esto incluye todos solicitudes al origen.

A continuación, se muestra un ejemplo de una configuración de Media CDN que aplica las solicitudes firmadas en un PathMatcher (ruta) determinado:

gcloud edge-cache services describe prod-media-service
Resultado:
...
  routeAction:
    cdnPolicy:
      cacheMode: CACHE_ALL_STATIC
      signedRequestMode: REQUIRE_SIGNATURES
      signedRequestKeyset: prod-vod-keyset

Para obtener información sobre la creación de tokens para solicitudes firmadas, consulta Genera tokens tokens.

Para inhabilitar la firma de solicitudes, puedes establecer signedRequestMode en DISABLED. y borra la referencia a signedRequestKeyset.

Valida las solicitudes en el origen

Cuando se configura una ruta con un modo de firma de REQUIRE_SIGNATURES, Media CDN valida que cada solicitud coincidente tenga un firma. La falta de una firma se considera como una firma no válida en estos casos rutas.

Para evitar casos en los que la firma esté mal configurada o en los que un usuario intentos de acceso directo a tu origen, te recomendamos que validar que las solicitudes también estén firmadas en el origen. Una defensa en profundidad para la protección de contenido ayuda a evitar el acceso no autorizado y las descargas del contenido pagado y con licencia.

Para los métodos de firma basados en URL, en los que la firma forma parte de la consulta parámetros o se incorporan como un componente de ruta de URL, la firma y los elementos parámetros se quitan de la URL antes de que la solicitud se envíe al origen. Esto evita que la firma cause problemas de enrutamiento cuando la el origen controla la solicitud. Para validar estas solicitudes, puedes inspeccionar el Encabezado de la solicitud x-client-request-url, que incluye el original (firmado) URL de solicitud del cliente antes de quitar los componentes firmados.

Para validar las 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 la falta de coincidencia de claves y problemas debido a la rotación de claves.

Rotar claves

Como práctica recomendada, rota o actualiza los Secrets utilizados por Media CDN con regularidad. Recomendamos rotar las claves cada 30 a 60 días, pero no es estrictamente obligatorio.

¿Qué sigue?

  • Si quieres obtener más información para habilitar y acceder a Media CDN, haz lo siguiente: registros, incluido cómo filtrar y consultar en tus registros, consulta Registro.

  • Para configurar Media CDN bucket privado de Cloud Storage, consulta Conectividad y protección de origen.