Restringir o acesso a arquivos - Amazon CloudFront

Restringir o acesso a arquivos

É possível controlar o acesso do usuário ao seu conteúdo privado de duas maneiras:

Restringir o acesso a arquivos em caches do CloudFront

É possível configurar o CloudFront para exigir que os usuários acessem seus arquivos usando signed URLs ou signed cookies. Depois, desenvolva sua aplicação para criar e distribuir signed URLs para usuários autenticados ou para enviar cabeçalhos Set-Cookie que definem signed cookies para usuários autenticados. (Para conceder a alguns usuários acesso de longo prazo a um pequeno número de arquivos, você também pode criar URLs assinados manualmente.)

Ao criar signed URLs ou cookies para controlar o acesso a seus arquivos, você pode especificar as seguintes restrições:

  • Uma data e hora de expiração do URL.

  • (Opcional) A data e a hora em que o URL se torna válido.

  • (Opcional) O endereço IP ou os endereços dos computadores que podem ser usados para acessar seu conteúdo.

É adicionado hash ou assinatura a parte de um signed URL ou signed cookie usando a chave privada de um par de chaves públicas/privadas. Quando alguém usa um signed URL ou signed cookie para acessar um arquivo, o CloudFront compara as partes assinada e não assinada do URL ou cookie. Se elas não corresponderem, o CloudFront não fornecerá o arquivo.

É necessário usar o RSA-SHA1 para assinar URLs ou cookies. O CloudFront não aceita outros algoritmos.

Restringir o acesso a arquivos em buckets do Amazon S3

Também é possível proteger o conteúdo no bucket do Amazon S3 para que os usuários possam acessá-lo por meio da distribuição especificada do CloudFront, mas não possam acessá-lo diretamente usando URLs do Amazon S3. Isso impede que alguém ignore o CloudFront e use o URL do Amazon S3 para obter o conteúdo ao qual você deseja restringir o acesso. Essa etapa não exige o uso de signed URLs, mas recomendamos que você o faça.

Para solicitar que os usuários acessem seu conteúdo por URLs do CloudFront, siga estas etapas:

  • Conceda uma permissão de controle de acesso à origem do CloudFront para ler os arquivos no bucket do S3.

  • Crie o controle de acesso à origem e associe-o à sua distribuição do CloudFront.

  • Remova a permissão para usar URLs do Amazon S3 para ler os arquivos de todas as demais pessoas.

Para ter mais informações, consulte Restringir o acesso a uma origem do Amazon Simple Storage Service.

Restringir o acesso a arquivos em origens personalizadas

Se você usar uma origem personalizada, pode configurar os cabeçalhos personalizados para restringir o acesso. Para o CloudFront obter seus arquivos de uma origem personalizada, os arquivos devem estar acessíveis pelo CloudFront usando uma solicitação padrão HTTP (ou HTTPS). Mas, ao usar cabeçalhos personalizados, é possível restringir ainda mais o acesso ao conteúdo para que os usuários possam acessá-lo apenas por meio do CloudFront, e não diretamente. Essa etapa não exige o uso de signed URLs, mas recomendamos que você o faça.

Para exigir que os usuários acessem o conteúdo por meio do CloudFront, altere as seguintes configurações em suas distribuições do CloudFront:

Cabeçalhos personalizados de origem

Configure o CloudFront para encaminhar cabeçalhos personalizados para sua origem. Consulte Configurar o CloudFront para adicionar cabeçalhos personalizados às solicitações de origem.

Política de protocolo do visualizador

Configure a distribuição para exigir que os visualizadores usem HTTPS para acessar o CloudFront. Consulte Política de protocolo do visualizador.

Política de protocolo da origem

Configure sua distribuição para exigir que o CloudFront use o mesmo protocolo que os visualizadores para encaminhar solicitações para a origem. Consulte Protocolo (somente origens personalizadas).

Depois de fazer essas alterações, atualize sua aplicação na origem personalizada para aceitar somente solicitações que incluam os cabeçalhos personalizados que você configurou o CloudFront para enviar.

A combinação de Viewer Protocol Policy (Política de protocolo do visualizador) e Origin Protocol Policy (Política de protocolo da origem) garante que os cabeçalhos personalizados sejam criptografados em trânsito. No entanto, recomendamos que você execute periodicamente o seguinte, para alternar os cabeçalhos personalizados encaminhados pelo CloudFront para sua origem:

  1. Atualize sua distribuição do CloudFront para começar a encaminhar um novo cabeçalho para sua origem personalizada.

  2. Atualize sua aplicação para aceitar o novo cabeçalho como confirmação de que a solicitação é proveniente do CloudFront.

  3. Quando as solicitações não incluírem mais o cabeçalho que você estiver substituindo, atualize a aplicação para não aceitar mais o cabeçalho antigo como confirmação de que a solicitação é proveniente do CloudFront.