Amazon SAA-C03: Entrega de Conteúdo, Edge e Otimização de Desempenho — Guia de estudos

Faz parte do AWS SAA-C03 — Guia de estudos completo. Pratique com respostas verificadas no centro de exames da Amazon, ou faça testes cronometrados no ExamRoll.io.

Amazon CloudFront: O que é e por que ajuda

O Amazon CloudFront é uma rede de entrega de conteúdo (CDN) distribuída globalmente, construída sobre mais de 600 pontos de presença. Sua função é encerrar o TLS do visualizador na borda mais próxima e servir respostas em cache imediatamente ou encaminhar os erros de cache (cache misses) por proxy através do backbone privado da AWS até a origem. O benefício de desempenho é duplo: os acertos de cache (cache hits) reduzem o tempo de ida e volta para milissegundos de um dígito e desoneram completamente a origem, enquanto os erros de cache ainda se beneficiam da terminação TLS/TCP otimizada na borda, suporte a HTTP/2 e HTTP/3, reutilização de conexões keep-alive para a origem e trânsito pelo backbone que evita a ruidosa internet pública.

Um equívoco comum é que o CloudFront acelera apenas ativos estáticos. Colocar um ALB atrás do CloudFront com uma política CachingDisabled ainda melhora o desempenho de APIs dinâmicas, porque o handshake do visualizador é concluído no PoP local, em vez de atravessar a internet até a Região de origem. Combine isso com uma carga de trabalho mista — por exemplo, /static/* servido a partir do S3 e /api/* servido a partir de um ALB — e uma única distribuição pode lidar com ambos:

Distribution:
  Aliases: [www.example.com]
  ViewerCertificate: ACM cert in us-east-1
  Origins:
    - Id: s3-static
      DomainName: static-assets.s3.us-east-1.amazonaws.com
      S3OriginConfig:
        OriginAccessControlId: !Ref OAC
    - Id: alb-dynamic
      DomainName: alb-1234.us-east-1.elb.amazonaws.com
      CustomOriginConfig: { OriginProtocolPolicy: https-only }
  DefaultCacheBehavior:
      TargetOriginId: alb-dynamic
      CachePolicyId: CachingDisabled
      OriginRequestPolicyId: AllViewer
  CacheBehaviors:
    - PathPattern: /static/*
      TargetOriginId: s3-static
      CachePolicyId: CachingOptimized
    - PathPattern: /api/*
      TargetOriginId: alb-dynamic
      CachePolicyId: !Ref ShortTtlPolicy

Os registros alias do Route 53 então apontam www.example.com para o d123.cloudfront.net da distribuição — registros alias são gratuitos e resolvem diretamente para os IPs anycast do CloudFront.

Certificados Ficam em us-east-1

Para qualquer distribuição do CloudFront servida em um domínio personalizado, o certificado TLS voltado para o visualizador no AWS Certificate Manager deve ser emitido em us-east-1 (N. Virginia), independentemente de onde o bucket de origem, o ALB ou os usuários estejam. O CloudFront é um serviço global cujo plano de controle está ancorado em us-east-1; as localizações de borda (edge locations) puxam o certificado dessa Região. Solicitar um certificado ACM em eu-west-1 porque seu bucket S3 está lá é um padrão que não funciona — a distribuição nunca o verá.

aws acm request-certificate \
  --domain-name media.example.com \
  --validation-method DNS \
  --region us-east-1

Se você encerrar o TLS uma segunda vez entre o CloudFront e uma origem de ALB, esse certificado voltado para a origem fica na Região do ALB. Apenas o certificado do visualizador está travado em us-east-1. A mesma regra se aplica a domínios personalizados otimizados para a borda (edge-optimized) do API Gateway (que usam uma distribuição do CloudFront gerenciada pela AWS internamente): o certificado deve estar em us-east-1. Endpoints regionais do API Gateway, em contraste, usam um certificado da própria Região da API.

Origin Access Control para Origens S3

Colocar um bucket S3 atrás do CloudFront e deixar o bucket público anula o propósito: os visualizadores contornam o CloudFront ao acessar o endpoint REST do S3 diretamente, ignorando o WAF, restrições geográficas, URLs assinadas e os benefícios do cache — e potencialmente expondo dados.

A solução moderna é o Origin Access Control (OAC), que substitui o antigo Origin Access Identity (OAI). O OAC usa assinatura SigV4, suporta SSE-KMS, funciona em todas as Regiões do S3 (incluindo as lançadas após 2022) e suporta solicitações dinâmicas. O Bloqueio de Acesso Público (Block Public Access) permanece ativado, não são necessárias ACLs, e a política do bucket concede acesso de leitura apenas ao principal de serviço (service principal) do CloudFront, restringido ainda mais pelo ARN específico da distribuição:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AllowCloudFrontServicePrincipal",
    "Effect": "Allow",
    "Principal": { "Service": "cloudfront.amazonaws.com" },
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::media-example-com/*",
    "Condition": {
      "StringEquals": {
        "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/E1ABCDEF"
      }
    }
  }]
}

O OAI ainda funciona, mas deve ser considerado legado — sempre escolha o OAC para novos projetos.

Correção do Cache

A eficácia do cache depende dos cabeçalhos Cache-Control e Expires que a origem retorna, combinados com os TTLs mínimo/padrão/máximo da política de cache do CloudFront. Ativos imutáveis e com fingerprint devem ser cacheados agressivamente; as estruturas HTML que os referenciam devem ter vida curta para que as implantações se propaguem; JSON autenticado não deve ser cacheado de forma alguma no CDN compartilhado:

Cache-Control: public, max-age=31536000, immutable   # fingerprinted assets
Cache-Control: public, max-age=60, s-maxage=300      # HTML that changes
Cache-Control: private, no-store                      # authenticated JSON

Duas armadilhas simétricas são comuns. Primeiro, se a origem não emite cabeçalhos de cache, o CloudFront recorre ao TTL padrão da distribuição e pode silenciosamente cachear respostas dinâmicas por horas. Segundo, um Cache-Control: no-cache indiscriminado em ativos que deveriam ser cacheados força cada solicitação a voltar para a origem e anula o propósito do CDN.

A armadilha mais perigosa é cachear respostas personalizadas sem os cabeçalhos adequados. Se /account/dashboard retorna um HTML específico para o usuário A, mas a origem omite no-store e a política de cache não inclui um cabeçalho de autenticação ou cookie na chave de cache, a borda servirá alegremente a página do usuário A para o usuário B. Ou marque tais respostas como private, no-store, ou inclua o identificador da sessão na chave de cache e aceite a menor taxa de acerto.

Para um cenário de otimização de custos onde um grupo de Auto Scaling de instâncias EC2 On-Demand serve conteúdo estático, o redesenho correto é mover os ativos para o S3, colocar o CloudFront na frente com OAC e eliminar ou encolher o ASG. Isso desloca o custo de computação por hora para entrega por solicitação, que é ordens de magnitude mais barato para cargas de trabalho estáticas.

URLs Assinadas, Cookies Assinados e Restrição Geográfica

O CloudFront suporta URLs assinadas (acesso com tempo limitado, opcionalmente restrito por IP, a um único objeto — o download de um vídeo comprado, um link único para um PDF) e cookies assinados (acesso a muitos objetos que correspondem a um padrão de caminho — um assinante autenticado navegando em um catálogo). Ambos usam um grupo de chaves confiável (trusted key group) cuja chave pública é carregada no CloudFront; a chave privada assina uma política que especifica a expiração, o intervalo de IPs de origem ou o padrão de URL.

https://d123.cloudfront.net/premium/movie.mp4
  ?Expires=1735689600
  &Signature=...
  &Key-Pair-Id=APKAI...

Isso é diferente de uma URL pré-assinada (presigned URL) do S3, que contorna o CloudFront e concede acesso direto ao bucket. Combine as URLs assinadas do CloudFront com o OAC e o bucket permanecerá privado de ponta a ponta.

A restrição geográfica (Geo-restriction) impõe listas de permissão (allow-lists) ou de bloqueio (block-lists) no nível do país, na camada da distribuição, antes que as solicitações atinjam o cache ou a origem. Ela usa o banco de dados GeoIP mantido pelo CloudFront e é o mecanismo barato e à prova de desvio de cache para impor embargos de licenciamento. Para uma lógica mais refinada (nível de estado, combinações de cabeçalhos), recorra a uma CloudFront Function ou Lambda@Edge; para um mecanismo de regras completo, use o WAF.

AWS Global Accelerator

O Global Accelerator não é uma CDN e não faz cache. Ele provisiona dois endereços IPv4 anycast estáticos (ou BYOIP) anunciados a partir das localizações de borda (edge locations) da AWS globalmente. As conexões TCP ou UDP do cliente entram no backbone da AWS na borda mais próxima e são roteadas pela rede privada da AWS até o endpoint mais saudável (ALB, NLB, EC2 ou Elastic IP) em uma ou mais Regiões, agrupadas em grupos de endpoints (endpoint groups) com seletores de tráfego (traffic dials) e pesos (weights).

Os IPs estáticos oferecem três benefícios concretos: as listas de permissão (allowlists) de clientes e firewalls nunca mudam, mesmo que o backend seja re-arquitetado; o failover regional é concluído em segundos, deslocando o tráfego entre os grupos de endpoints com base em mudanças nas verificações de saúde (health-checks), evitando completamente a propagação de TTL do DNS; e o handshake TCP termina na borda, com o trecho de longa distância (long haul) sendo executado no backbone da AWS.

Escolha o Global Accelerator quando:

Escolha o CloudFront quando:

RequisitoCloudFrontGlobal Accelerator
Conteúdo HTTP(S) armazenável em cache✅❌
UDP ou TCP arbitrário❌✅
IPs anycast estáticos❌✅
Failover regional rápido para aplicações L4 com estado (stateful)Parcial✅
WAF na borda, URLs assinadas✅❌
Redução de custo de saída da origem para mídias grandes✅❌

Duas armadilhas a serem evitadas. Escolher o CloudFront para “tornar nossos servidores de jogos mais rápidos globalmente” falha porque jogos usam UDP e não são armazenáveis em cache — o Global Accelerator é necessário. Por outro lado, escolher o Global Accelerator para um site estático é caro (taxa fixa por hora mais por GB) e perde os benefícios do cache — o CloudFront reduziria drasticamente a saída de dados (egress) da origem. Para uma API HTTP distribuída globalmente, mas em uma única Região, onde os usuários toleram a latência, o roteamento simples baseado em latência do Route 53 pode ser suficiente e mais barato do que qualquer um dos dois.

Políticas de Roteamento do Route 53 para Tráfego Global

O Route 53 escolhe para qual endpoint um cliente resolve o nome; o CloudFront ou o Global Accelerator então gerenciam a conexão. Três políticas dominam as arquiteturas globais.

Roteamento baseado em latência (Latency-based routing) mede a latência de rede real da localização do resolvedor (resolver) para cada Região e retorna a mais rápida. Use-o para stacks idênticos em várias Regiões, quando você quer que os usuários sejam direcionados para a Região que for mais rápida no momento.

Roteamento por geoproximidade (Geoproximity routing) é baseado em coordenadas em vez de latência: você declara a localização (ou a Região da AWS) de cada endpoint, e o Route 53 envia os usuários para o geograficamente mais próximo. Sua característica distintiva é um valor de bias (viés) (−99 a +99) que expande ou contrai a área de serviço efetiva — útil para deslocar o tráfego gradualmente durante o lançamento de uma Região ou para drenar uma Região para manutenção. O roteamento por geoproximidade requer o Route 53 traffic flow (políticas de tráfego) e é geralmente combinado com um NLB ou ALB regional em cada Região.

RecordSets:
  - Region: eu-west-1
    Endpoint: nlb-eu.example.internal
    Bias: +30       # expand EU service area during launch
  - Region: us-east-1
    Endpoint: nlb-us.example.internal
    Bias: 0
  - Region: ap-southeast-1
    Endpoint: nlb-ap.example.internal
    Bias: 0

Roteamento de failover (Failover routing) usa um par primário/secundário vinculado a verificações de saúde (health checks). É um failover no nível do DNS, sujeito ao TTL e ao cache do resolvedor, por isso é mais lento que o failover no plano de dados (data-plane) do Global Accelerator — escolha o roteamento de failover para cenários ativo-passivo simples, onde um minuto de propagação de DNS é tolerável, e o Global Accelerator quando você precisa de segundos.

Essas políticas podem ser combinadas. Um padrão global comum: registros de latência ou geoproximidade do Route 53 apontam para o Global Accelerator (para TCP/UDP) ou para o CloudFront (para HTTPS armazenável em cache), com registros de failover com verificação de saúde por baixo como uma rede de segurança. A sobreposição de camadas é deliberada: o Route 53 escolhe a Região, o Global Accelerator ou o CloudFront escolhe a borda e o caminho através do backbone, e um load balancer regional escolhe o alvo (target) dentro da Região.

Tipos de Endpoint e Domínios Personalizados do API Gateway

O API Gateway oferece três tipos de endpoint com topologias distintas:

TipoCaminhoMelhor para
Otimizado para a borda (Edge-optimized)Cliente → CloudFront gerenciado pela AWS → API Gateway na RegiãoClientes geograficamente dispersos chamando uma API REST
RegionalCliente → API Gateway na Região diretamenteChamadores na mesma Região, ou clientes que colocarão seu próprio CloudFront na frente da API
PrivadoCliente na VPC → Endpoint de VPC de interface → API GatewayAPIs internas nunca expostas à internet

Endpoints otimizados para a borda (edge-optimized) envolvem a API em uma distribuição CloudFront gerenciada pela AWS que você não pode configurar diretamente. Isso é conveniente para um alcance global rápido, mas limitador quando você deseja seus próprios comportamentos de cache (cache behaviors), regras de WAF ou políticas de solicitação de origem (origin request policies). O padrão idiomático para controle máximo é um endpoint Regional com uma distribuição CloudFront gerenciada pelo cliente na frente.

A alocação de certificados segue a regra do CloudFront: domínios personalizados otimizados para a borda exigem um certificado ACM em us-east-1; endpoints Regionais exigem o certificado na mesma Região da API. HTTP APIs impõem um mínimo de TLS 1.2; REST APIs suportam políticas de segurança até TLS 1.3.

Certificados ACM: Emitidos, Validados, Importados

O ACM emite e renova automaticamente certificados TLS públicos sem custo e se integra diretamente com CloudFront, API Gateway, ALB, NLB e outros serviços da AWS. A validação é feita por validação de DNS (o ACM fornece um CNAME para ser colocado no Route 53 ou em qualquer provedor de DNS; enquanto o registro persistir, o ACM renova automaticamente para sempre) ou por validação por e-mail (requer um clique manual a cada renovação, frágil para automação). A validação de DNS é o padrão correto para qualquer ambiente de produção.

Certificados emitidos pelo ACM não podem ser exportados e não podem ser usados fora dos serviços integrados da AWS. Quando um requisito regulatório ou de negócio exige uma CA de terceiros específica — por exemplo, uma API REST que deve ter uma cadeia de confiança até um emissor comercial particular e impor o TLS 1.3 — você não pode usar um certificado emitido pelo ACM. Obtenha o certificado da CA exigida e importe-o para o ACM, depois anexe-o a um domínio personalizado do API Gateway Regional com uma política de segurança TLS 1.3.

A armadilha com as importações é dupla: certificados importados não são renovados automaticamente (reimporte antes de expirar ou o endpoint falhará drasticamente), e o ACM não valida a cadeia na importação — um certificado intermediário quebrado só aparecerá no momento do handshake com clientes reais. Teste a cadeia completa com um cliente rigoroso antes da implantação.

S3 Transfer Acceleration vs. CloudFront

O CloudFront otimiza downloads; o S3 Transfer Acceleration otimiza uploads. O Transfer Acceleration usa a mesma rede de borda do CloudFront ao contrário: os PUTs entram na borda mais próxima e percorrem o backbone da AWS até a Região do bucket de destino. Ele se destaca quando um conjunto de usuários globalmente disperso faz upload de objetos grandes para um bucket em uma única Região — por exemplo, engenheiros de campo em todo o mundo fazendo upload de desenhos de vários gigabytes para us-east-1.

Os dois recursos coexistem no mesmo bucket: habilite o Transfer Acceleration e exponha uma distribuição CloudFront com OAC para downloads. Para objetos pequenos ou clientes que já estão perto da Região do bucket, o Transfer Acceleration adiciona custo sem benefício — use a ferramenta de comparação de velocidade do S3 Transfer Acceleration para medir antes de se comprometer. Os clientes devem usar o endpoint s3-accelerate para que a aceleração seja ativada.

AWS WAF para Proteção da Camada 7

O AWS WAF inspeciona requisições HTTP(S) antes que elas cheguem ao recurso protegido. Ele se anexa a distribuições CloudFront, ALBs, estágios do API Gateway, APIs do AppSync, user pools do Cognito, serviços do App Runner e instâncias do Verified Access. Uma web ACL contém regras que correspondem a URI, cabeçalhos, query strings, corpo (até 8 KB por padrão, expansível para 64 KB no ALB/API Gateway), conjuntos de IPs e geolocalização.

Os blocos de construção mais comuns são as AWS Managed Rules: AWSManagedRulesCommonRuleSet e AWSManagedRulesKnownBadInputsRuleSet cobrem os principais exploits do OWASP; AWSManagedRulesSQLiRuleSet e declarações de correspondência de XSS lidam com injeção. Regras personalizadas adicionam correspondência geográfica (listas de permissão/bloqueio de países para conformidade), correspondências de conjuntos de IPs e regras baseadas em taxa (rate-based rules) — que contam as requisições por IP de origem em uma janela contínua de cinco minutos e bloqueiam quando um limite é excedido. As regras baseadas em taxa são a primeira linha de defesa contra inundações HTTP (HTTP floods) e credential stuffing:

{
  "Name": "LoginRateLimit",
  "Priority": 1,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 500,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "SearchString": "/login",
          "FieldToMatch": {"UriPath": {}},
          "PositionalConstraint": "STARTS_WITH",
          "TextTransformations": [{"Priority":0,"Type":"NONE"}]
        }
      }
    }
  },
  "Action": {"Block": {}}
}

As regras de Região são importantes. As web ACLs para o CloudFront são globais e devem ser criadas em us-east-1. As web ACLs para recursos Regionais (ALB, API Gateway, etc.) são criadas na própria Região do recurso.

Para proteger um site estático no S3, você não pode anexar o WAF ao bucket — o S3 não é um recurso compatível com o WAF. O padrão correto é CloudFront + OAC na frente do bucket com a web ACL anexada à distribuição. O fato de o bucket ser inacessível, exceto através do CloudFront, é o que torna a inspeção de todo o tráfego verdadeira.

Firewall Manager para Governança de WAF Multi-Contas

Gerenciar o WAF uma conta de cada vez não escala. Em uma Organization, uma equipe pode criar um novo ALB sem anexar a linha de base corporativa, e a postura de conformidade regride silenciosamente. O AWS Firewall Manager resolve isso com políticas para toda a organização aplicadas às contas e recursos no escopo.

Pré-requisitos: AWS Organizations com todos os recursos (all-features) habilitados, uma conta de administrador designada para o Firewall Manager e o AWS Config habilitado em cada conta-membro. Os tipos de política cobrem AWS WAF, AWS Shield Advanced, security groups (auditoria e uso), Network Firewall, Route 53 Resolver DNS Firewall e firewalls de terceiros.

Uma política do WAF pode impor um grupo de regras “primeiro” (avaliado antes das regras da aplicação), um grupo de regras “último” (avaliado depois), ou substituir a web ACL completamente. Novos ALBs ou distribuições CloudFront que correspondem ao escopo do recurso recebem automaticamente o conjunto de regras corporativas, e os recursos não conformes são sinalizados e — dependendo das configurações de remediação — corrigidos automaticamente. Sempre que um cenário mencionar “múltiplas contas”, “gerenciar centralmente” ou “regras de WAF consistentes em toda a organização”, a resposta é o Firewall Manager, e não o WAF por conta.

Shield Standard vs. Shield Advanced

Assumir que o WAF sozinho impede ataques DDoS é um erro crítico. O WAF opera nas requisições que chegam até ele — é excelente contra inundações na camada de aplicação, credential stuffing e assinaturas de exploits conhecidos — mas ataques volumétricos de grande escala nas Camadas 3/4 (SYN floods, reflexão UDP) são absorvidos pelo AWS Shield.

O Shield Standard está ativo por padrão, sem custo. Ele defende automaticamente contra ataques comuns de L3/L4 e se aplica ao CloudFront, Route 53 e Global Accelerator, com proteção básica para ELB, EC2 e outros recursos. Ele não fornece visibilidade específica do ataque, engajamento com o Shield Response Team ou proteção de custos.

O Shield Advanced (US$ 3.000/mês por organização, com um compromisso de um ano) adiciona:

CapacidadeStandardAdvanced
Mitigação automática de L3/L4✅✅
Detecção e mitigação aprimoradas de ataques L7 (com WAF)❌✅
Diagnóstico e visibilidade de ataques em tempo real❌✅
Shield Response Team (SRT) 24/7❌✅
Proteção de custos de DDoS (cobranças de escalonamento)❌✅
Painel de ameaças globais❌✅
Recursos protegidosAutomáticoCloudFront, Route 53, Global Accelerator, ALB, NLB, EIP

Assumir que o Shield Standard é suficiente para “DDoS em grande escala com proteção de custos e resposta de especialistas” está errado precisamente porque o Standard não possui visibilidade, proteção de custos e acesso ao SRT. Quando a origem é uma instância EC2 atrás de um ELB e o DNS está com um terceiro (de modo que os truques de alias do Route 53 não são uma opção), o padrão recomendado é habilitar o Shield Advanced no ELB e colocar o CloudFront na frente da aplicação (também protegido pelo Shield Advanced) para mover o perímetro de mitigação para a borda e diminuir a superfície de ataque que chega à Região.

A postura correta em camadas é: Shield para ataques volumétricos de L3/L4, WAF para filtragem de L7, CloudFront ou Global Accelerator como o ponto de entrada na borda ao qual ambos os serviços se anexam, e Firewall Manager para aplicar a política em todas as contas.


← Redes e Conectividade · Todos os domínios · Bancos de Dados e Caching →

Pratique estas questões → · Prática cronometrada no ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Passe no seu exame →

Navegar Amazon →

Related guides

Acesso completo

Uma assinatura. Todos os exames.

Todo plano desbloqueia pesquisa ilimitada de respostas, testes práticos, explicações de AI e a biblioteca completa de recursos — em mais de 20 idiomas.

Mensal
€24.87
Just €0.83/day
Tudo incluído:
  • ✓Pesquisa ilimitada de respostas
  • ✓Testes práticos ilimitados
  • ✓Explicações com AI
  • ✓Biblioteca completa de recursos
  • ✓Mais de 20 idiomas
  • ✓Atualizações semanais de conteúdo
  • ✓Recompensas e indicações
  • ✓Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

Melhor custo-benefício
12 meses
€179.87
Just €0.49/daySave 40%
Tudo incluído:
  • ✓Pesquisa ilimitada de respostas
  • ✓Testes práticos ilimitados
  • ✓Explicações com AI
  • ✓Biblioteca completa de recursos
  • ✓Mais de 20 idiomas
  • ✓Atualizações semanais de conteúdo
  • ✓Recompensas e indicações
  • ✓Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

✓ Plano gratuito incluído · ✓ Cancele a qualquer momento · ✓ Todos os planos desbloqueiam o produto completo