O uso de uma camada intermediária geralmente nega os benefícios de uma CDN distribuída, pois você terá apenas alguns nós em grandes datacenters centrais que atendem ao conteúdo em vez de muitos nós de cache de borda. Se o seu plano realmente requer piping o conteúdo através de um servidor em primeiro lugar, em seguida, ignorar o CloudFront e apenas ficar com S3, como você não terá nenhum benefício dele.
Uma abordagem melhor é formalizar o que você quer dizer com "segurança etc." e veja se você pode usar os controles de autenticação e acesso que estão embutidos no CDN. O S3 e a Cloudfront usam assinaturas para fornecer controle abrangente sobre quem pode acessar o conteúdo, e você ainda pode criar tempo limitado URLS que expirará após algumas horas ou minutos. Esses urls especiais podem ser criados pelo seu site para que os usuários não possam vincular profundamente o conteúdo ou compartilhar o link com outra pessoa, e geralmente oferecem segurança suficiente que ainda permite que você se beneficie do cache de borda.
Eu não estou muito familiarizado com a documentação da Amazon, mas o Windows Azure também tem o conceito de assinaturas de acesso compartilhado que permitem delegar permissões para upload ou download sem liberar suas chaves privadas. Houve um episódio recente do Cloud Cover no Canal 9 que faz um ótimo trabalho ao descrever como criar assinaturas de acesso compartilhado e como elas podem ser usadas para proteger o conteúdo e delegar permissões em um CDN.