Como usar Cloudflare para servir um domínio customizado com HTTPS de um bucket S3

como-usar-cloudflare-para-servir-um-dominio-customizado-com-https-de-um-bucket-s3

Servir arquivos estáticos diretamente da AWS S3 com um domínio customizado e HTTPS é uma prática comum em ambientes modernos de DevOps. Neste artigo, mostro como configurar um domínio como https://static.dominioexemplo.com para servir um frontend hospedado em um bucket S3, mantendo HTTPS via Cloudflare.

Objetivo

Apontar https://static.dominioexemplo.com para o conteúdo hospedado em:

https://nome-do-bucket.s3.us-east-1.amazonaws.com/dev/app/index.html

Mantendo:

  • Domínio próprio na barra de endereços
  • HTTPS válido via Cloudflare
  • Performance e caching otimizados

Estrutura do conteúdo

No exemplo, os arquivos estão no seguinte caminho no S3:

/dev/app/index.html

Para servir isso diretamente como https://static.dominioexemplo.com, a abordagem ideal é usar um bucket com o mesmo nome do domínio e mover os arquivos para a raiz.

Passo 1: Criar um bucket com o nome do domínio

No AWS S3:

  1. Crie um bucket chamado static.dominioexemplo.com
  2. Desabilite o bloqueio de acesso público (libere leitura pública)
  3. Ative a opção Static Website Hosting
    • Index document: index.html
    • Error document: 404.html (opcional)
  4. Faça upload do conteúdo (por exemplo: index.html, arquivos JS/CSS, etc)

Passo 2: Configurar o Cloudflare

No painel do Cloudflare:

DNS

  1. Crie um registro CNAME:
  • Nome: static
  • Target: static.dominioexemplo.com.s3-website-us-east-1.amazonaws.com
  • Proxy: ativado (ícone laranja)

SSL/TLS

  1. Acesse SSL/TLS > Overview
  • Modo: Full ou Full (Strict) (recomendado se usar certificado válido via ACM)

    1. Em SSL/TLS > Edge Certificates
  • Ative o Always Use HTTPS

  • Habilite Automatic HTTPS Rewrites

Passo 3: Permissões públicas no bucket

Política mínima para permitir leitura pública:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicRead",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::static.dominioexemplo.com/*"
    }
  ]
}

Aplica-se diretamente nas configurações do bucket.

Resultado

Acessando https://static.dominioexemplo.com, o visitante terá acesso ao conteúdo estático hospedado na AWS, com:

  • HTTPS válido via Cloudflare
  • Domínio próprio preservado
  • Boa performance e cache via proxy reverso

Considerações finais

  • Utilize sempre o endpoint de site estático da S3, não o endpoint padrão de objetos (s3.amazonaws.com)
  • O certificado do Cloudflare cobre o acesso HTTPS dos visitantes, mesmo que o S3 não tenha um certificado público
  • Essa abordagem é ideal para frontends estáticos.
Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
6-ways-to-generate-more-pipeline-for-your-saas-company-(with-examples)

6 ways to generate more pipeline for your SaaS company (with examples)

Next Post
why-“building-in-public”-is-going-to-damage-your-brand

Why “Building in Public” is Going to Damage Your Brand

Related Posts