GOOGLE ADS

viernes, 15 de abril de 2022

Problema al alojar una aplicación de una sola página con Amazon S3 y CloudFront: ¿cómo diferenciar 403 de S3 frente a 403 del servicio de backend?

Tengo una aplicación de una sola página que se desarrolla en uno de los marcos JS modernos.

Esta aplicación de una sola página solo tiene un único punto de entrada ( index.html).

Maneja el enrutamiento y otra lógica de página a través de JS, lo que significa que cuando un usuario va directamente o actualiza la página en una URL que no es raíz, queremos que despliegue el archivo index.html en lugar de un archivo almacenado en la URL. ubicación de la ruta (como en un sitio web alojado estáticamente).

Si no se encuentra un recurso detrás de la URL, S3 devuelve 403. Por lo tanto, en CloudFront, hemos configurado la siguiente regla:

ingrese la descripción de la imagen aquí

Ahora, estoy trabajando en la capa de Autorización en el backend que legítimamente devuelve 403 si el sujeto no tiene suficientes derechos para acceder a la API.

Y, en lugar de devolver 403, CF, por razones obvias, devuelve 200 con la página de índice.

¿Hay alguna manera de afinar este comportamiento? ¿Pensamientos?


Solución del problema

Pude resolver esto usando el siguiente enfoque:


  • activar el alojamiento web estático en S3

  • reemplace el nombre del depósito de S3 en el origen de CloudFront con la URL del sitio web estático de S3.

  • elimine las páginas de error de CloudFront.


Las páginas de error serán manejadas por los respectivos orígenes en lugar de CloudFront.

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...