0Pricing
AWS Solutions Architect · Aula

URLs assinadas, cookies assinados e restrição geográfica

Restrinja o acesso a conteúdo premium usando URLs e cookies assinados e bloqueie usuários de países específicos com uma restrição geográfica.

URLs assinadas, cookies assinados e restrição geográfica é uma aula grátis de AWS Solutions Architect no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AWS Solutions Architect, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AWS Solutions Architect inclui 4 aulas no total.

Restrição de acesso ao conteúdo do CloudFront

Por padrão, o CloudFront disponibiliza conteúdo para qualquer visualizador que conheça a URL. Para conteúdo premium ou privado — cursos em vídeo, downloads de software pago e recursos exclusivos para membros — você precisa restringir o acesso para que somente usuários autorizados possam recuperá-lo.

O CloudFront fornece dois mecanismos para acesso autorizado: URLs assinadas (uma URL concede acesso a um objeto específico) e cookies assinados (um conjunto de cookies concede acesso a vários objetos que correspondem a um padrão de caminho). Ambos usam assinaturas criptográficas geradas com um par de chaves RSA.

URLs assinadas do CloudFront

Uma URL assinada é uma URL do CloudFront que inclui uma assinatura criptográfica com um prazo de validade e, opcionalmente, uma restrição de endereço IP. A URL só é válida até o vencimento e somente a partir do IP permitido, se especificado. Após o vencimento, o CloudFront retorna 403 Forbidden.

As URLs assinadas são mais indicadas para: conceder a um único usuário acesso a um arquivo específico, como um relatório PDF gerado; disponibilizar links de download com validade limitada; ou quando o cliente não pode definir cookies, como em aplicativos móveis ou transmissões RTMP.

# Generate a signed URL using AWS CLI (requires a CloudFront key pair)
aws cloudfront sign \
  --url https://d1234abcdef.cloudfront.net/premium/video.mp4 \
  --key-pair-id APKA1234567890 \
  --private-key file://private-key.pem \
  --date-less-than 2026-06-21T00:00:00Z

Cookies assinados do CloudFront

Os cookies assinados funcionam de forma semelhante às URLs assinadas, mas concedem acesso a vários arquivos sem alterar cada URL. Após uma autenticação bem-sucedida, seu servidor gera três cookies (CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id) e os define na resposta enviada ao navegador. As solicitações subsequentes desse navegador ao CloudFront incluem os cookies, concedendo acesso a todo o conteúdo correspondente.

Os cookies assinados são mais indicados para: conceder a usuários autenticados acesso a uma seção premium inteira, como todos os vídeos em /members/*; ou quando não é possível controlar o formato da URL de cada recurso individual.

Grupos de chaves confiáveis

Para gerar assinaturas do CloudFront, é necessário um par de chaves do CloudFront. A abordagem moderna usa grupos de chaves confiáveis: crie um par de chaves RSA, carregue a chave pública no CloudFront, adicione-a a um grupo de chaves e associe o grupo de chaves ao comportamento de cache que exige acesso assinado.

A chave privada é armazenada com segurança, por exemplo, no Secrets Manager, no servidor que assina o conteúdo. Quando um usuário se autentica, o servidor usa a chave privada para assinar uma URL ou uma política de cookies. O CloudFront valida as assinaturas usando a chave pública correspondente no grupo de chaves confiável.

# Upload a public key to CloudFront
aws cloudfront create-public-key \
  --public-key-config '{
    "Name": "MySigningKey",
    "EncodedKey": "-----BEGIN PUBLIC KEY-----\n...<key>...\n-----END PUBLIC KEY-----",
    "CallerReference": "2026-06-20-key"
  }'

Políticas de URL assinada predefinidas e personalizadas

As URLs assinadas podem usar um de dois tipos de política:

  • Política predefinida: forma mais simples — especifica apenas uma URL de recurso e um prazo de validade. A assinatura é compacta e fácil de gerar.
  • Política personalizada: mais flexível — especifica a URL do recurso com curingas opcionais (https://d123.cloudfront.net/videos/*), um horário inicial opcional (não antes de) e, opcionalmente, uma restrição de endereço IP. O JSON da política é codificado em Base64 na URL.

Use políticas predefinidas para links simples de um único arquivo; use políticas personalizadas quando precisar fazer correspondência de recursos com curingas ou de restrições baseadas em IP.

Restrição geográfica do CloudFront

A restrição geográfica, também chamada de restrição por localização geográfica, impede ou permite que o CloudFront disponibilize conteúdo com base no país do visitante. O CloudFront determina o país do visitante a partir do endereço IP, usando um banco de dados de geolocalização de terceiros.

Você configura a restrição geográfica por distribuição como uma lista de permissões, na qual somente os países listados podem acessar o conteúdo, ou como uma lista de bloqueios, na qual os países listados são bloqueados. Usuários em países restritos recebem uma resposta HTTP 403. A restrição geográfica é uma ferramenta abrangente: aplica-se à distribuição inteira, não a caminhos individuais.

# Enable geo-restriction: block two countries
aws cloudfront update-distribution \
  --id EDFDVBD6EXAMPLE \
  --distribution-config '{
    ...existing config...
    "Restrictions": {
      "GeoRestriction": {
        "RestrictionType": "blacklist",
        "Quantity": 2,
        "Items": ["CN", "RU"]
      }
    }
  }' \
  --if-match ETVPDKIKX0DER

Restrição geográfica do CloudFront versus geolocalização do Route 53

A restrição geográfica do CloudFront e o roteamento por geolocalização do Route 53 usam a geografia, mas têm finalidades diferentes:

  • Restrição geográfica do CloudFront: bloqueia ou permite a disponibilização na borda do conteúdo na camada da CDN — retorna 403 para países bloqueados; aplica-se por distribuição
  • Geolocalização do Route 53: roteia consultas DNS para endpoints diferentes, como servidores ou páginas diferentes, com base na geografia — não bloqueia o acesso, mas direciona para conteúdo ou infraestrutura diferentes

Use a restrição geográfica do CloudFront para controle de acesso, bloqueando países inteiros. Use a geolocalização do Route 53 para direcionar usuários a conteúdo ou infraestrutura adequados à região.

Combinação de URLs assinadas com S3 e OAC

Uma arquitetura completa de disponibilização de conteúdo privado:

  1. O bucket do S3 é privado, sem acesso público
  2. O CloudFront usa OAC, para que somente a distribuição possa ler do S3
  3. O comportamento de cache do conteúdo privado exige URLs ou cookies assinados, com um grupo de chaves confiável associado
  4. Seu servidor de aplicação autentica os usuários e emite URLs ou cookies assinados
  5. Os usuários acessam o conteúdo somente por meio de URLs assinadas do CloudFront com validade limitada

Mesmo que um usuário adivinhe ou compartilhe a URL do S3, o acesso será bloqueado. Mesmo que compartilhe a URL do CloudFront, ela expirará após o período configurado. Essa abordagem em camadas oferece defesa em profundidade para conteúdo digital.

Criptografia em nível de campo

A criptografia em nível de campo é um recurso avançado do CloudFront que permite criptografar campos de dados confidenciais em solicitações HTTP POST na borda, antes de encaminhá-las à origem. Mesmo que o servidor de origem seja comprometido, os campos criptografados, como números de cartão de crédito e SSNs, continuam ilegíveis sem a chave privada correspondente.

O CloudFront criptografa os campos especificados usando uma chave pública na borda. Somente o serviço de backend pretendido, com a chave privada correspondente, pode descriptografar os dados. A criptografia em nível de campo adiciona uma camada de proteção a um pipeline que já é protegido por TLS.

Padrão de controle de acesso baseado em token

Para aplicações dinâmicas que precisam de um controle de acesso detalhado, além do bloqueio por país, um padrão comum é o acesso baseado em token usando Lambda@Edge:

  1. O usuário se autentica com o Cognito ou com seu serviço de autenticação e recebe um JWT
  2. O usuário inclui o JWT como parâmetro de consulta ou cookie nas solicitações ao CloudFront
  3. A função Viewer-Request do Lambda@Edge valida a assinatura e as declarações do JWT
  4. Se for válido, o Lambda@Edge encaminha a solicitação à origem; se for inválido, retorna 401

Isso oferece um controle de acesso detalhado por usuário e por recurso inteiramente na borda do CloudFront, sem alcançar a origem para solicitações não autorizadas.

Resumo de casos de uso do mundo real

Padrões de cenários de prova sobre URLs e cookies assinados e restrição geográfica:

  • 'Link de download com validade limitada para um arquivo comprado' → URL assinada com prazo de validade
  • 'Usuários premium autenticados acessam todos os vídeos em /premium/*' → Cookies assinados com política de curinga
  • 'Bloquear o acesso de usuários em países específicos devido a licenciamento' → Lista de bloqueios da restrição geográfica do CloudFront
  • 'Disponibilizar conteúdo diferente para países diferentes' → Geolocalização do Route 53 + várias distribuições ou origens
  • 'Proteger campos de cartão de crédito até mesmo contra administradores da origem' → Criptografia em nível de campo

Verificação rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) desta lição.

Recapitulação da lição

Nesta lição, você aprendeu que: as URLs assinadas restringem o acesso a arquivos individuais com um prazo de validade e uma restrição de IP opcional; os cookies assinados concedem acesso a vários arquivos correspondentes a um padrão de caminho em uma única sessão autenticada; e a restrição geográfica bloqueia ou permite países inteiros no nível da distribuição do CloudFront. A seguir, exploraremos o CloudFront com WAF e Lambda@Edge.

Perguntas Frequentes

A aula “URLs assinadas, cookies assinados e restrição geográfica” é grátis?

Sim — o texto completo de “URLs assinadas, cookies assinados e restrição geográfica” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AWS Solutions Architect, atualize para CoddyKit PRO. O curso de AWS Solutions Architect inclui 4 aulas no total.

O que vou aprender em “URLs assinadas, cookies assinados e restrição geográfica”?

Restrinja o acesso a conteúdo premium usando URLs e cookies assinados e bloqueie usuários de países específicos com uma restrição geográfica. Você pratica AWS Solutions Architect com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AWS Solutions Architect?

Nenhuma experiência prévia é necessária. AWS Solutions Architect no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “URLs assinadas, cookies assinados e restrição geográfica”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AWS Solutions Architect?

Sim. Cada aula de AWS Solutions Architect inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Distribuições e origens do CloudFront
  2. Comportamentos de cache e configurações de TTL
  3. URLs assinadas, cookies assinados e restrição geográfica
  4. CloudFront com WAF e Lambda@Edge
← Voltar para AWS Solutions Architect