Também estou procurando uma solução aqui.
Uma configuração bastante padrão (e recomendada pela AWS) é nunca ter um bucket ou objetos S3 públicos e, se for necessário servir objetos publicamente, fazê-lo por meio de uma distribuição do CloudFront.
A implementação atual do S3 força o acesso público ao bucket S3 (por meio desta questão, bem como S3 CDN URL ignored when uploading into posts), o que é desencorajado — por questões de segurança e custos.