Uso de URL firmadas - Amazon CloudFront

Uso de URL firmadas

Una URL firmada incluye información adicional, por ejemplo, una fecha y hora de vencimiento, lo que permite un mayor control sobre el acceso a su contenido. Esta información adicional aparece en una instrucción de política basada en una política predefinida o personalizada. Las diferencias entre las políticas personalizadas y las predefinidas se explican en las próximas dos secciones.

nota

Puede crear algunas URL firmadas con políticas predefinidas y crear otras con políticas personalizadas para la misma distribución.

Decisión de utilizar políticas predefinidas o personalizadas para URL firmadas

Al crear una URL firmada, se escribe una instrucción de política en formato JSON que especifica las restricciones en la URL firmada, por ejemplo, el tiempo de validez de la URL. Puede utilizar una política predefinida o personalizada. A continuación, se presenta una comparación entre las políticas predefinidas y las personalizadas:

Descripción Política predefinida Política personalizada

Puede reutilizar la instrucción de la política con varios archivos. Para reutilizar la instrucción de política, debe utilizar caracteres comodín en el objeto Resource. Para obtener más información, consulte Valores que se especifican en la instrucción de política de una URL firmada que utiliza una política personalizada).

No

Puede especificar la fecha y la hora a la que los usuarios pueden empezar a obtener acceso a su contenido.

No

Sí (opcional)

Puede especificar la fecha y la hora a la que los usuarios dejan de obtener acceso a su contenido.

Puede especificar la dirección IP o a un rango de direcciones IP de los usuarios que pueden obtener acceso a su contenido.

No

Sí (opcional)

La URL firmada incluye una versión de la política con codificación de tipo base64, lo que resulta en una URL más larga.

No

Para obtener información acerca de cómo crear URL firmadas mediante una política predefinida, consulte Creación de una URL firmada mediante una política predefinida.

Para obtener información acerca de cómo crear URL firmadas mediante una política personalizada, consulte Creación de una URL firmada mediante una política personalizada.

Cómo funcionan las URL firmadas

A continuación, se muestra información general de cómo se configura CloudFront y Amazon S3 para URL firmadas y cómo responde CloudFront cuando un usuario utiliza una URL firmada para solicitar un archivo.

  1. En la distribución de CloudFront, especifique uno o más grupos de claves de confianza, que contienen las claves públicas que CloudFront puede utilizar para comprobar la firma de URL. Se utilizan las claves privadas correspondientes para firmar las URL.

    Para obtener más información, consulte Especificación de los signatarios que pueden crear URL firmadas y cookies firmadas.

  2. Desarrolle la aplicación para determinar si un usuario debe tener acceso al contenido y crear URL firmadas para los archivos o partes de la aplicación a las que desea restringir el acceso. Para obtener más información, consulte los siguientes temas:

  3. Un usuario solicita un archivo que va a requerir URL firmadas.

  4. La aplicación verifica si el usuario tiene derecho para obtener acceso al archivo: si ha iniciado sesión, si ha pagado por obtener acceso al contenido o si ha cumplido algún otro requisito para obtener acceso.

  5. Su aplicación crea una URL firmada y la devuelve el usuario.

  6. Las URL firmadas permiten al usuario descargar o transmitir el contenido.

    Este paso es automático; el usuario normalmente no tiene que hacer nada más para obtener acceso al contenido. Por ejemplo, si un usuario accede a su contenido desde un navegador web, la aplicación devuelve la URL firmada al navegador. El navegador utiliza inmediatamente la URL firmada para acceder al archivo de la caché de borde de CloudFront sin necesidad de que el usuario intervenga.

  7. CloudFront utiliza la clave pública para validar la firma y confirmar que la URL no se ha manipulado. Si la firma no es válida, se rechaza la solicitud.

    Si la firma es válida, CloudFront examina la instrucción de la política en la URL (o crea una si utiliza una política predefinida) para confirmar que la solicitud sigue siendo válida. Por ejemplo, si especifica una fecha y hora de inicio y fin de la URL, CloudFront confirma que el usuario intenta acceder al contenido durante el periodo que usted ha decidido permitir dicho acceso.

    Si la solicitud cumple los requisitos de la instrucción de política, CloudFront realiza las operaciones estándar: determina si el archivo ya está en la caché de borde, reenvía la solicitud al origen en caso necesario y devuelve el archivo al usuario.

nota

Si una URL sin firmar contiene parámetros de cadena de consulta, asegúrese de incluirlos en la parte de la dirección URL que firma. Si agrega una cadena de consulta a una URL firmada después de firmarla, la URL devuelve un estado HTTP 403.

Decisión del tiempo de validez de las URL firmadas

Puede distribuir contenido privado mediante una URL firmada cuyo periodo de validez sea corto, incluso de unos pocos minutos. Las URL firmadas con un tiempo de validez tan corto son adecuadas para distribuir contenido sobre la marcha a un usuario con una finalidad específica, como la distribución de películas de alquiler o descargas de música bajo demanda para clientes. Si el periodo de validez de las URL firmadas es corto, es recomendable generarlas automáticamente con una aplicación que puede desarrollar. Cuando el usuario comienza a descargar un archivo o a reproducir un archivo multimedia, CloudFront compara la fecha y hora de vencimiento de la URL con el momento actual para determinar si la URL todavía es válida.

También puede distribuir contenido privado mediante una URL firmada con un periodo de validez más largo, de incluso años. Las URL válidas durante periodos largos resultan útiles para distribuir contenido privado a usuarios conocidos, como, por ejemplo, la distribución de un plan de negocio a inversores o la distribución de materiales de formación a los empleados. Puede desarrollar una aplicación para generar estas URL firmadas a largo plazo para usted.

Cuándo comprueba CloudFront la fecha y hora de vencimiento de una URL firmada

CloudFront comprueba la fecha y hora de vencimiento de una URL firmada al realizarse la solicitud HTTP. Si un cliente comienza a descargar un archivo grande inmediatamente antes de la fecha de vencimiento, la descarga se realizará por completo incluso si se sobrepasa la hora de vencimiento durante la descarga. Si la conexión TCP se interrumpe y el cliente intenta reiniciar la descarga después de la fecha de vencimiento, la descarga fallará.

Si un cliente utiliza rangos GET para obtener un archivo en partes más pequeñas, cualquier solicitud GET que se produzca después de la fecha de vencimiento no se procesará. Para obtener más información acerca de Range GET, consulte Cómo CloudFront procesa las solicitudes parciales de un objeto (rango GET).

Código de ejemplo y herramientas de terceros

Para ver un código de ejemplo que crea la parte de las URL firmadas y a la que se le haya aplicado una función hash, consulte los siguientes temas: