0Pricing
AWS Solutions Architect · Lección

URL firmadas, cookies firmadas y restricción geográfica

Restrinja el acceso a contenido premium mediante URL y cookies firmadas, y bloquee a usuarios de países específicos con la restricción geográfica.

URL firmadas, cookies firmadas y restricción geográfica es una lección gratuita de AWS Solutions Architect en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AWS Solutions Architect, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AWS Solutions Architect incluye 4 lecciones en total.

Restricción del acceso al contenido de CloudFront

De forma predeterminada, CloudFront sirve contenido a cualquier usuario que conozca la URL. Para contenido prémium o privado —cursos de vídeo, descargas de software de pago o recursos exclusivos para miembros— debe restringir el acceso para que solo los usuarios autorizados puedan recuperarlo.

CloudFront proporciona dos mecanismos para el acceso autorizado: URL firmadas (una URL concede acceso a un objeto específico) y cookies firmadas (un conjunto de cookies concede acceso a varios objetos que coinciden con un patrón de ruta). Ambos utilizan firmas criptográficas generadas con un par de claves RSA.

URL firmadas de CloudFront

Una URL firmada es una URL de CloudFront que incluye una firma criptográfica que codifica una fecha de expiración y, de forma opcional, una restricción de dirección IP. La URL solo es válida hasta que expira y únicamente desde la IP permitida, si se especifica. Después de la expiración, CloudFront devuelve un error 403 Forbidden.

Las URL firmadas son ideales para: conceder a un solo usuario acceso a un archivo específico (por ejemplo, un informe PDF generado), crear enlaces de descarga con una duración limitada o cuando el cliente no puede establecer cookies (por ejemplo, en aplicaciones móviles o streaming RTMP).

# Generate a signed URL using AWS CLI (requires a CloudFront key pair)
aws cloudfront sign \
  --url https://d1234abcdef.cloudfront.net/premium/video.mp4 \
  --key-pair-id APKA1234567890 \
  --private-key file://private-key.pem \
  --date-less-than 2026-06-21T00:00:00Z

Cookies firmadas de CloudFront

Las cookies firmadas funcionan de forma similar a las URL firmadas, pero conceden acceso a varios archivos sin cambiar cada URL. Después de una autenticación correcta, su servidor genera tres cookies (CloudFront-Policy, CloudFront-Signature y CloudFront-Key-Pair-Id) y las establece en la respuesta al navegador. Las solicitudes posteriores de CloudFront desde ese navegador incluyen las cookies, lo que concede acceso a todo el contenido coincidente.

Las cookies firmadas son ideales para: conceder a usuarios autenticados acceso a toda una sección prémium (por ejemplo, todos los vídeos de /members/*) o cuando no puede controlar el formato de la URL de cada recurso individual.

Grupos de claves de confianza

Para generar firmas de CloudFront, necesita un par de claves de CloudFront. El enfoque moderno utiliza grupos de claves de confianza: cree un par de claves RSA, cargue la clave pública en CloudFront, añádala a un grupo de claves y, después, asocie el grupo de claves al comportamiento de caché que requiere acceso firmado.

La clave privada se almacena de forma segura (por ejemplo, en Secrets Manager) en su servidor de firma. Cuando un usuario se autentica, el servidor utiliza la clave privada para firmar una URL o una política de cookies. CloudFront valida las firmas mediante la clave pública correspondiente del grupo de claves de confianza.

# Upload a public key to CloudFront
aws cloudfront create-public-key \
  --public-key-config '{
    "Name": "MySigningKey",
    "EncodedKey": "-----BEGIN PUBLIC KEY-----\n...<key>...\n-----END PUBLIC KEY-----",
    "CallerReference": "2026-06-20-key"
  }'

Políticas de URL firmadas predefinidas frente a personalizadas

Las URL firmadas pueden utilizar uno de dos tipos de políticas:

  • Política predefinida: es la forma más sencilla; especifica únicamente una URL de recurso y una fecha de expiración. La firma es compacta y fácil de generar.
  • Política personalizada: es más flexible; especifica la URL del recurso con comodines opcionales (https://d123.cloudfront.net/videos/*), una hora de inicio opcional (not-before) y, de forma opcional, una restricción de dirección IP. El JSON de la política se codifica en Base64 dentro de la URL.

Utilice políticas predefinidas para enlaces sencillos a archivos individuales; utilice políticas personalizadas cuando necesite coincidencias de recursos mediante comodines o restricciones basadas en IP.

Restricción geográfica de CloudFront

La restricción geográfica (también denominada restricciones geográficas) bloquea o permite que CloudFront sirva contenido en función del país del visitante. CloudFront determina el país del visitante a partir de su dirección IP mediante una base de datos de geolocalización de terceros.

Puede configurar la restricción geográfica por distribución como una lista de permitidos (solo los países incluidos pueden acceder al contenido) o una lista de bloqueados (se bloquea a los países incluidos). Los usuarios de países restringidos reciben una respuesta HTTP 403. La restricción geográfica es una herramienta general: se aplica a toda la distribución, no a rutas individuales.

# Enable geo-restriction: block two countries
aws cloudfront update-distribution \
  --id EDFDVBD6EXAMPLE \
  --distribution-config '{
    ...existing config...
    "Restrictions": {
      "GeoRestriction": {
        "RestrictionType": "blacklist",
        "Quantity": 2,
        "Items": ["CN", "RU"]
      }
    }
  }' \
  --if-match ETVPDKIKX0DER

Restricción geográfica frente a geolocalización de Route 53

La restricción geográfica de CloudFront y el enrutamiento por geolocalización de Route 53 utilizan la geografía, pero tienen finalidades diferentes:

  • Restricción geográfica de CloudFront: bloquea o permite el servicio desde las ubicaciones periféricas del contenido en la capa de CDN; devuelve 403 a los países bloqueados y se aplica por distribución.
  • Geolocalización de Route 53: dirige las consultas DNS a distintos puntos de conexión (servidores o páginas diferentes) según la ubicación geográfica; no bloquea el acceso, sino que redirige a contenido o infraestructura diferentes.

Utilice la restricción geográfica de CloudFront para controlar el acceso (bloquear países enteros). Utilice la geolocalización de Route 53 para dirigir a los usuarios hacia contenido o infraestructura adecuados para su región.

Combinación de URL firmadas con S3 y OAC

Una arquitectura completa para la entrega de contenido privado:

  1. El bucket de S3 es privado (sin acceso público).
  2. CloudFront utiliza OAC, de modo que solo la distribución puede leer de S3.
  3. El comportamiento de caché del contenido privado requiere URL o cookies firmadas (con un grupo de claves de confianza asociado).
  4. Su servidor de aplicaciones autentica a los usuarios y emite URL o cookies firmadas.
  5. Los usuarios acceden al contenido únicamente mediante URL firmadas de CloudFront con una duración limitada.

Aunque un usuario adivine o comparta la URL de S3, el acceso se bloquea. Aunque comparta la URL de CloudFront, esta caduca después del tiempo configurado. Este enfoque por capas proporciona defensa en profundidad para el contenido digital.

Cifrado a nivel de campo

El cifrado a nivel de campo es una función avanzada de CloudFront que permite cifrar campos de datos confidenciales en solicitudes HTTP POST en la ubicación periférica antes de reenviarlas al origen. Aunque el servidor de origen se vea comprometido, los campos cifrados (por ejemplo, números de tarjetas de crédito o números de la Seguridad Social) siguen siendo ilegibles sin la clave privada correspondiente.

CloudFront cifra los campos especificados mediante una clave pública en la ubicación periférica. Solo el servicio de backend previsto que disponga de la clave privada correspondiente puede descifrar los datos. El cifrado a nivel de campo añade una capa de protección dentro de una canalización que ya está protegida mediante TLS.

Patrón de control de acceso basado en tokens

Para aplicaciones dinámicas que necesitan un control de acceso detallado más allá del bloqueo por país, un patrón habitual es el acceso basado en tokens mediante Lambda@Edge:

  1. El usuario se autentica con Cognito o con su servicio de autenticación y recibe un JWT.
  2. El usuario incluye el JWT como parámetro de consulta o cookie en las solicitudes a CloudFront.
  3. La función Viewer-Request de Lambda@Edge valida la firma y las declaraciones del JWT.
  4. Si es válido, Lambda@Edge reenvía la solicitud al origen; si no es válido, devuelve 401.

Esto proporciona un control de acceso detallado por usuario y por recurso, completamente en la ubicación periférica de CloudFront, sin llegar al origen para las solicitudes no autorizadas.

Resumen de casos de uso reales

Patrones de escenarios de examen para URL/cookies firmadas y restricción geográfica:

  • «Enlace de descarga con duración limitada para un archivo comprado» → URL firmada con expiración
  • «Los usuarios prémium autenticados acceden a todos los vídeos de /premium/*» → Cookies firmadas con política de comodín
  • «Bloquear el acceso a usuarios de países específicos por motivos de licencia» → Lista de bloqueados de la restricción geográfica de CloudFront
  • «Servir contenido diferente a distintos países» → Geolocalización de Route 53 + varias distribuciones u orígenes
  • «Proteger los campos de tarjetas de crédito incluso frente a los administradores del origen» → Cifrado a nivel de campo

Comprobación rápida

Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.

Resumen de la lección

En esta lección ha aprendido que las URL firmadas restringen el acceso a archivos individuales con una fecha de expiración y una restricción de IP opcional; las cookies firmadas conceden acceso a varios archivos que coinciden con un patrón de ruta durante una única sesión autenticada; y la restricción geográfica bloquea o permite países enteros en el nivel de distribución de CloudFront. A continuación, exploraremos CloudFront con WAF y Lambda@Edge.

Preguntas frecuentes

¿La lección «URL firmadas, cookies firmadas y restricción geográfica» es gratis?

Sí — el texto completo de «URL firmadas, cookies firmadas y restricción geográfica» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AWS Solutions Architect, actualiza a CoddyKit PRO. El curso de AWS Solutions Architect incluye 4 lecciones en total.

¿Qué aprenderé en «URL firmadas, cookies firmadas y restricción geográfica»?

Restrinja el acceso a contenido premium mediante URL y cookies firmadas, y bloquee a usuarios de países específicos con la restricción geográfica. Practicas AWS Solutions Architect con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AWS Solutions Architect?

No se requiere experiencia previa. AWS Solutions Architect en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «URL firmadas, cookies firmadas y restricción geográfica»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AWS Solutions Architect?

Sí. Cada lección de AWS Solutions Architect incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Distribuciones y orígenes de CloudFront
  2. Comportamientos de caché y configuración de TTL
  3. URL firmadas, cookies firmadas y restricción geográfica
  4. CloudFront con WAF y Lambda@Edge
← Volver a AWS Solutions Architect