¿Cómo se configura un objeto raíz predeterminado para subdirectorios en un sitio web alojado estáticamente en Cloudfront? Específicamente, me gustaría que me www.example.com/subdir/index.html
sirvieran cuando el usuario lo solicite www.example.com/subdir
. Tenga en cuenta que esto es para entregar un sitio web estático en un bucket de S3. Además, me gustaría usar una identidad de acceso de origen para restringir el acceso al bucket de S3 solo a Cloudfront.
Ahora, soy consciente de que Cloudfront funciona de manera diferente a S3 y Amazon afirma específicamente :
El comportamiento de los objetos raíz predeterminados de CloudFront es diferente del comportamiento de los documentos de índice de Amazon S3. Cuando configura un bucket de Amazon S3 como sitio web y especifica el documento de índice, Amazon S3 devuelve el documento de índice incluso si un usuario solicita un subdirectorio en el bucket. (Debe aparecer una copia del documento de índice en cada subdirectorio). Para obtener más información sobre la configuración de buckets de Amazon S3 como sitios web y sobre documentos de índice, consulte el capítulo Alojamiento de sitios web en Amazon S3 en la Guía para desarrolladores de Amazon Simple Storage Service.
Como tal, aunque Cloudfront nos permite especificar un objeto raíz predeterminado, esto solo funciona para www.example.com
y no para www.example.com/subdir
. Para sortear esta dificultad, podemos cambiar el nombre de dominio de origen para que apunte al punto final del sitio web proporcionado por S3. Esto funciona muy bien y permite que los objetos raíz se especifiquen de manera uniforme. Desafortunadamente, esto no parece ser compatible con las identidades de acceso de origen . Específicamente, los enlaces anteriores indican:
Cambiar al modo de edición:
Distribuciones web: haz clic en la pestaña Orígenes, haz clic en el origen que deseas editar y haz clic en Editar. Solo puede crear una identidad de acceso de origen para los orígenes para los que el Tipo de origen es Origen S3.
Básicamente, para establecer el objeto raíz predeterminado correcto, usamos el punto final del sitio web de S3 y no el depósito del sitio web en sí. Esto no es compatible con el uso de la identidad de acceso de origen. Como tal, mis preguntas se reducen a
¿Es posible especificar un objeto raíz predeterminado para todos los subdirectorios de un sitio web alojado estáticamente en Cloudfront?
¿Es posible configurar una identidad de acceso de origen para el contenido servido desde Cloudfront donde el origen es un punto final del sitio web de S3 y no un depósito de S3?