Casos de uso comuns para proteção das distribuições do CloudFront com o AWS WAF - Administrador de segurança da rede do AWS WAF, AWS Firewall Manager, AWS Shield Advanced e AWS Shield

Apresentação de uma nova experiência de console para o AWS WAF

Agora você pode usar a experiência atualizada para acessar a funcionalidade do AWS WAF em qualquer lugar no console. Consulte mais detalhes em Trabalhar com a experiência atualizada do console.

Casos de uso comuns para proteção das distribuições do CloudFront com o AWS WAF

Os recursos do AWS WAF a seguir funcionam da mesma maneira para todas as distribuições do CloudFront. As considerações sobre distribuições multilocatárias estão listadas após cada cenário de atributo.

Usando o AWS WAF com páginas de erro personalizadas do CloudFront

Por padrão, quando o AWS WAF bloqueia uma solicitação da web com base nos critérios especificados, ela retorna o código de status HTTP 403 (Forbidden) ao CloudFront e o CloudFront retorna esse código de status ao visualizador. O visualizador, em seguida, exibirá uma breve mensagem padrão esparsamente formatada, semelhante à seguinte:

Forbidden: You don't have permission to access /myfilename.html on this server.

Você pode substituir esse comportamento nas regras de pacote de proteção (ACL da Web) do AWS WAF definindo respostas personalizadas. Para obter mais informações sobre como personalizar o comportamento de resposta usando regras do AWS WAF, consulte Como enviar respostas personalizadas para ações Block.

nota

As respostas que você personaliza usando regras do AWS WAF têm precedência sobre qualquer especificação de resposta definida nas páginas de erro personalizadas do CloudFront.

Se você preferir exibir uma mensagem de erro personalizada através do CloudFront, possivelmente usando a mesma formatação que o restante do seu website, pode configurar o CloudFront para retornar um objeto ao visualizador (por exemplo, um arquivo HTML) que contenha sua mensagem de erro personalizada.

nota

O CloudFront não consegue diferenciar entre um código de status HTTP 403 retornado por sua origem e um retornado pelo AWS WAF quando uma solicitação é bloqueada. Isso significa que você não pode retornar diferentes páginas de erro personalizadas com base em diferentes causas de um código de status HTTP 403.

Para obter mais informações sobre páginas de erro personalizadas do CloudFront, consulte Gerar respostas personalizadas a erros no Guia do desenvolvedor do Amazon CloudFront.

Páginas de erros personalizadas em distribuições multilocatárias

Para as distribuições multilocatárias do CloudFront, você pode configurar páginas de erros personalizadas das seguintes maneiras:

  • No nível da distribuição multilocatária: essas configurações se aplicam a todas as distribuições multilocatárias que usam o modelo de distribuição multilocatária

  • Por meio de regras do AWS WAF: as respostas personalizadas definidas nos pacotes de proteção (ACLs da Web) têm precedência sobre a distribuição multilocatária e sobre as páginas de erros personalizadas em nível do locatário

Usar o AWS WAF com o CloudFront para aplicativos em execução no seu próprio servidor HTTP

Ao usar o AWS WAF com o CloudFront, é possível proteger os aplicativos em execução em qualquer servidor da web HTTP, seja um servidor da web que esteja sendo executado no Amazon Elastic Compute Cloud (Amazon EC2) ou um servidor da web gerenciado de forma privada. Também é possível configurar o CloudFront para exigir HTTPS entre o CloudFront e seu próprio servidor web, bem como entre visualizadores e o CloudFront.

Exigir HTTPS entre o CloudFront e seu próprio servidor da web

Para exigir HTTPS entre o CloudFront e seu próprio servidor da web, é possível usar o recurso de origem personalizada do CloudFront e definir as configurações da Política de protocolo da origem e do Nome de domínio de origem para origens específicas. Na configuração do CloudFront é possível especificar o nome de DNS do servidor com a porta e o protocolo que você deseja que o CloudFront use ao obter objetos da origem. Você também deve garantir que o certificado SSL/TLS no servidor de origem personalizado corresponda ao nome de domínio de origem configurado. Ao usar seu próprio servidor da web HTTP fora da AWS, é necessário usar um certificado assinado por uma autoridade de certificação (CA) externa confiável, por exemplo, Comodo, DigiCert ou Symantec. For obter informações sobre exigir HTTPS para comunicação entre o CloudFront e seu próprio servidor da web, consulte o tópico Exigindo HTTPS para comunicação entre CloudFront e sua origem personalizada no Guia do Desenvolvedor do Amazon CloudFront.

Exigir HTTPS entre um visualizador e o CloudFront

Para exigir HTTPS entre visualizadores e o CloudFront, é possível alterar a Política de protocolo do visualizador para um ou mais comportamentos de cache na distribuição do CloudFront. Para obter mais informações sobre como usar HTTPS entre visualizadores e o CloudFront, consulte o tópico Exigir HTTPS para a comunicação entre visualizadores e o CloudFront no Guia do desenvolvedor do Amazon CloudFront. Também é possível trazer seu próprio certificado SSL para que os visualizadores possam se conectar à distribuição do CloudFront por HTTPS usando seu próprio nome de domínio, por exemplo https://www.mysite.com. Para obter mais informações, consulte Configuração de nomes de domínio alternativos e HTTPS no Guia do desenvolvedor do Amazon CloudFront.

Em distribuições multilocatárias, as configurações de método HTTP seguem esta hierarquia:

  • As configurações no nível de modelo definem os métodos HTTP básicos permitidos para todas as distribuições multilocatárias

  • As distribuições de locatários podem substituir essas configurações para:

    • Permitir menos métodos do que a distribuição multilocatária (usando as regras do AWS WAF para bloquear métodos adicionais)

    • Permitir mais métodos se a distribuição multilocatária estiver configurada para ser compatível com eles

  • As regras do AWS WAF no nível da distribuição multilocatária e no nível do locatário podem restringir ainda mais os métodos HTTP, independentemente da configuração do CloudFront

Escolher os métodos HTTP aos quais o CloudFront responde

Quando você cria uma distribuição da web do Amazon CloudFront, seleciona os métodos HTTP que deseja que o CloudFront processe e encaminhe para sua origem. Você pode escolher entre as seguintes opções:

  • GET, HEAD – é possível usar o CloudFront somente para obter objetos da sua origem ou para obter cabeçalhos do objeto.

  • GET, HEAD, OPTIONS – você pode usar o CloudFront apenas para obter objetos da sua origem, obter cabeçalhos de objeto ou recuperar uma lista das opções para as quais seu servidor de origem oferece suporte.

  • GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE – você pode usar o CloudFront para obter, adicionar, atualizar e excluir objetos, e também para obter os cabeçalhos de objeto. Além disso, você pode executar outras operações de POST, como enviar dados de um formulário da web.

Você também pode usar instruções de regra de correspondência de bytes do AWS WAF para permitir ou bloquear solicitações com base no método HTTP, conforme descrito em Instrução de regra de correspondência de string. Se você quiser usar uma combinação de métodos compatíveis com o CloudFront, como GET e HEAD, não precisa configurar o AWS WAF para bloquear solicitações que usam os outros métodos. Se você deseja permitir uma combinação de métodos com os quais o CloudFront não é compatível, como GET, HEAD e POST, você pode configurar o CloudFront para responder a todos os métodos e, em seguida, usar o AWS WAF para bloquear solicitações que usam outros métodos.

Para obter mais informações sobre a escolha de métodos aos quais o CloudFront responde, consulte Métodos HTTP permitidos no tópico Valores que você especifica ao criar ou atualizar uma distribuição da web no Guia do desenvolvedor do Amazon CloudFront.

Configurações de método HTTP permitidas em distribuições multilocatárias

Para distribuições multilocatárias, as configurações de método HTTP definidas no nível da distribuição multilocatária se aplicam, por padrão, a todas as distribuições de locatários. As distribuições de locatários podem substituir essas configurações se necessário.

  • Se você quiser usar uma combinação de métodos compatíveis com o CloudFront, como GET e HEAD, não será necessário configurar o AWS WAF para bloquear solicitações que usam os outros métodos.

  • Se desejar permitir uma combinação de métodos com os quais o CloudFront não é compatível por padrão, como GET, HEAD e POST, você poderá configurar o CloudFront para responder a todos os métodos e, depois, usar o AWS WAF para bloquear as solicitações que usem outros métodos.

Ao implementar cabeçalhos de segurança em distribuições multilocatárias, considere o seguinte:

  • Os cabeçalhos de segurança no nível do modelo fornecem proteção básica em todas as distribuições de locatários

  • As distribuições de locatários podem:

    • Adicionar novos cabeçalhos de segurança não definidos na distribuição multilocatária

    • Modificar os valores dos cabeçalhos específicos do locatário

    • Não é possível remover ou substituir os cabeçalhos de segurança definidos no nível da distribuição multilocatária

  • Considere o uso de cabeçalhos do nível da distribuição multilocatária para controles de segurança críticos que devem ser aplicados a todos os locatários

Considerações sobre tamanho

As distribuições padrão e as distribuições multilocatárias são compatíveis com o registro em log do AWS WAF, mas existem importantes diferenças na forma como os logs são estruturados e gerenciados:

Comparação entre registros em log
Distribuições padrão Distribuições multilocatárias
Uma única configuração de log por distribuição Opções de registro em log no nível do modelo e do locatário
Campos padrão do log Campos adicionais de identificação de locatário
Um único destino por distribuição Destinos possivelmente separados para logs de distribuições multilocatárias e logs de locatários

Recursos adicionais