Como você define um objeto raiz padrão para subdiretórios em um site hospedado estaticamente no Cloudfront? Especificamente, gostaria www.example.com/subdir/index.html
de ser atendido sempre que o usuário solicitar www.example.com/subdir
. Observe, isso é para entregar um site estático mantido em um balde S3. Além disso, gostaria de usar uma identidade de acesso de origem para restringir o acesso ao bucket S3 apenas para o Cloudfront.
Agora, estou ciente de que o Cloudfront funciona de maneira diferente do S3 e dos estados amazônicos, especificamente :
O comportamento dos objetos raiz padrão do CloudFront é diferente do comportamento dos documentos de índice do Amazon S3. Quando você configura um bucket do Amazon S3 como um site e especifica o documento de índice, o Amazon S3 retorna o documento de índice mesmo se um usuário solicitar um subdiretório no bucket. (Uma cópia do documento de índice deve aparecer em cada subdiretório.) Para obter mais informações sobre a configuração de buckets do Amazon S3 como sites e sobre documentos de índice, consulte o capítulo Hosting Websites no Amazon S3 no Guia do desenvolvedor do Amazon Simple Storage Service.
Assim, embora o Cloudfront nos permita especificar um objeto raiz padrão, isso só funciona para www.example.com
e não para www.example.com/subdir
. Para contornar essa dificuldade, podemos alterar o nome de domínio de origem para apontar para o endpoint do site fornecido por S3. Isso funciona muito bem e permite que os objetos raiz sejam especificados uniformemente. Infelizmente, isso não parece ser compatível com as identidades de acesso de origem . Especificamente, os links acima afirmam:
Mude para o modo de edição:
Distribuições da Web - Clique na guia Origens, clique na origem que deseja editar e clique em Editar. Você só pode criar uma identidade de acesso de origem para origens cujo Tipo de Origem seja Origem S3.
Basicamente, para definir o objeto raiz padrão correto, usamos o endpoint do site S3 e não o bucket do site em si. Isso não é compatível com o uso de identidade de acesso de origem. Como tal, minhas perguntas se resumem a
É possível especificar um objeto raiz padrão para todos os subdiretórios de um site hospedado estaticamente no Cloudfront?
É possível configurar uma identidade de acesso de origem para conteúdo servido de Cloudfront onde a origem é um endpoint de site S3 e não um bucket S3?