Restringir o acesso a arquivos
É possível controlar o acesso do usuário ao seu conteúdo privado de duas maneiras:
-
Restrinja o acesso a arquivos na sua origem de uma das seguintes 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:
Atualize sua distribuição do CloudFront para começar a encaminhar um novo cabeçalho para sua origem personalizada.
Atualize sua aplicação para aceitar o novo cabeçalho como confirmação de que a solicitação é proveniente do CloudFront.
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.