Ir para o conteúdo

Como uso o controle de acesso e a autenticação para restringir a entrega de conteúdo para distribuições do CloudFront?

5 minuto de leitura
0

Quero restringir o acesso ao conteúdo na minha distribuição do Amazon CloudFront.

Breve descrição

Para restringir o acesso ao conteúdo privado em sua distribuição do CloudFront, use URLs ou cookies assinados.

Se você precisar apenas de autenticação básica com nome de usuário e senha, use o Lambda@Edge ou o CloudFront Functions para configurar a autenticação básica.

Para restringir o acesso com base no endereço IP ou na localização geográfica, configure o CloudFront para permitir ou bloquear solicitações.

Para configurar a autenticação segura do usuário com um provedor de identidade, use o Lambda@Edge para integrar o CloudFront com o OpenID Connect (OIDC).

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Usar URLs ou cookies assinados

URLs assinadas incorporam assinaturas criptografadas em URLs para fornecer acesso temporário a arquivos individuais. Use URLs assinadas para proteger o acesso a recursos específicos.

O CloudFront emite cookies assinados aos clientes para permitir o acesso a vários arquivos em um caminho. Use cookies assinados para ter um controle de acesso mais amplo.

Observação: URLs e cookies assinados usam pares de chaves criptográficas que você cria e associa à sua distribuição.

Para usar URLs ou cookies assinados, conclua as seguintes etapas:

Criar um par de chaves

Crie um par de chaves e faça o upload do par de chaves no CloudFront.

Criar um grupo de chaves confiável

  1. Abra o console do CloudFront.
  2. No painel de navegação, em Gerenciamento de chaves, escolha Grupos de chaves.
  3. Escolha Criar grupo de chaves.
  4. Em Nome, insira um nome para seu grupo de chaves.
  5. Em Chaves públicas, escolha uma chave.
  6. Escolha Criar grupo de chaves.

Configurar a distribuição

Atualize sua distribuição para usar seu grupo de chaves confiável para URLs ou cookies assinados. Para mais informações sobre como configurar a distribuição, consulte Configurações de comportamento de cache.

Gerar URLs ou cookies assinados

Para gerar URLs assinadas, execute o seguinte comando sign da AWS CLI:

aws cloudfront sign \
    --url "https://your-distribution-domain.cloudfront.net/path/to/file.pdf" \
    --key-pair-id "YOUR_KEY_PAIR_ID" \
    --private-key file://path/to/your/private-key.pem \
    --date-less-than "2024-12-31T23:59:59"

Para obter mais opções, como restrições de IP, consulte Opções em Referência de comandos da AWS CLI.

Observação: também é possível criar URLs assinadas para ferramentas de terceiros.

Para gerar cookies assinados, use um AWS SDK para sua linguagem. Para obter exemplos de código, consulte Criar cookies assinados usando PHP e Criar URLs e cookies assinados usando um AWS SDK.

Usar URLs ou cookies assinados

Inclua as URLs ou os cookies assinados nas solicitações para o CloudFront.

Usar o Lambda@Edge para configurar a autenticação básica

Observação: é preciso criar um código personalizado para usar o Lambda@Edge para implementar sua lógica de autenticação.

Conclua as etapas a seguir:

  1. Crie uma função do AWS Lambda para lidar com a autenticação de solicitações de visualizadores.
  2. No código da função, inspecione os cabeçalhos da solicitação, valide as credenciais e permita ou negue a solicitação. Para ver um exemplo de função, consulte Exemplo: Redirecionar usuários não autenticados para uma página de login.
  3. Use gatilhos para associar a função ao comportamento da sua distribuição.

Usar o CloudFront Functions para configurar a autenticação básica

Observação: é preciso criar um código personalizado para usar o CloudFront Functions para implementar sua lógica de autenticação.

Conclua as etapas a seguir:

  1. Crie uma CloudFront Function para autenticar as solicitações do visualizador.
  2. No código da função, inspecione os cabeçalhos, valide as credenciais e permita ou negue solicitações. Para ver um exemplo de função, consulte Validar um token simples em uma solicitação do visualizador do CloudFront Functions.
  3. Associe a função ao comportamento da sua distribuição.

Configurar o CloudFront para permitir ou bloquear solicitações com base no endereço IP do cliente ou na localização geográfica

Execute uma das ações a seguir:

  • Para criar restrições com base no controle de acesso IP, use o AWS WAF para definir listas de permissões e listas de negação de endereços IP para sua distribuição.
  • Para criar restrições com base na localização geográfica, restrinja o acesso ao seu conteúdo com base no país de origem das solicitações.

Observação: o AWS WAF e a restrição geográfica se aplicam somente ao nível de distribuição e não ao comportamento do cache.

Usar o Lambda@Edge para integrar o CloudFront ao OIDC

Observação: para a integração, é preciso implementar o fluxo de autenticação do OIDC na aplicação e obter um token de ID para incluir nas solicitações ao CloudFront.

Conclua as etapas a seguir:

  1. Crie uma função do Lambda para validar o token de ID do OIDC nas solicitações do visualizador.
  2. No código da função, inspecione o cabeçalho de autorização, valide o token de ID e permita ou negue a solicitação.
  3. Associe a função ao comportamento da sua distribuição.

Informações relacionadas

Authorization@Edge – Como usar Lambda@Edge e tokens Web JSON para maior segurança do aplicativo web

Autorização de servidor externo com Lambda@Edge

Proteger as distribuições do CloudFront usando o OpenID Connect e o AWS Secrets Manager

AWS OFICIALAtualizada há um ano