Tutorial: Escalar e proteger rapidamente um aplicativo Web usando o Azure Front Door e o WAF (Firewall de Aplicativo Web do Azure)
Importante
O Azure Front Door (clássico) será desativado em 31 de março de 2027. Para evitar qualquer interrupção do serviço, é importante que você migre seus perfis do Azure Front Door (clássico) para a camada Standard ou Premium do Azure Front Door até março de 2027. Para obter mais informações, consulte Desativação do Azure Front Door (clássico).
Muitos aplicativos Web experimentam um rápido aumento de tráfego ao longo do tempo. Esses aplicativos Web também estão enfrentando um aumento no tráfego mal-intencionado, incluindo ataques de negação de serviço. Existe uma forma eficaz de escalar horizontalmente seu aplicativo para picos de tráfego e se proteger contra ataques: configure o Azure Front Door com o WAF do Azure como uma camada de aceleração, armazenamento em cache e segurança na frente do seu aplicativo Web. Este artigo mostra as diretrizes para configurar o Azure Front Door com o WAF do Azure para qualquer aplicativo Web em execução dentro ou fora do Azure.
Estamos usando a CLI do Azure para configurar o WAF neste tutorial. Faça a mesma coisa usando o portal do Azure, o Azure PowerShell, o Azure Resource Manager ou as APIs REST do Azure.
Neste tutorial, você aprenderá a:
- Criar um Front Door.
- Criar uma política de WAF do Azure.
- Configurar conjuntos de regras para uma política de WAF.
- Associar uma política de WAF ao Front Door.
- Configurar um domínio personalizado.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
As instruções deste tutorial usam a CLI do Azure. Veja este guia para obter uma introdução à CLI do Azure.
Dica
Uma forma fácil e rápida de começar a usar a CLI do Azure é com o Bash no Azure Cloud Shell.
Adicione a extensão
front-door
à CLI do Azure:az extension add --name front-door
Observação
Para obter mais informações sobre os comandos usados neste tutorial, confira a referência da CLI do Azure para o Front Door.
Criar um recurso do Azure Front Door
az network front-door create --backend-address <> --accepted-protocols <> --name <> --resource-group <>
--backend-address
: o FQDN (nome de domínio totalmente qualificado) do aplicativo que você deseja proteger. Por exemplo, myapplication.contoso.com
.
--accepted-protocols
: especifica os protocolos para os quais você deseja que o Azure Front Door dê suporte no seu aplicativo Web. Por exemplo, --accepted-protocols Http Https
.
--name
: o nome do recurso do Azure Front Door.
--resource-group
: o grupo de recursos no qual você deseja colocar este recurso do Azure Front Door. Para saber mais sobre grupos de recursos, confira Gerenciar grupos de recursos no Azure.
Na resposta obtida ao executar esse comando, procure a chave hostName
. Você precisa desse valor em uma etapa posterior. O hostName
é o nome DNS do recurso do Azure Front Door criado.
Criar um perfil de WAF do Azure para usar com os recursos do Azure Front Door
az network front-door waf-policy create --name <> --resource-group <> --disabled false --mode Prevention
--name
: o nome da nova política de WAF do Azure.
--resource-group
: o grupo de recursos no qual você deseja colocar este recurso do WAF.
O código da CLI anterior cria uma política WAF no modo de prevenção.
Observação
O ideal é criar a política de WAF no modo de detecção e observar como ela detecta e registra em log as solicitações mal-intencionadas (sem bloqueá-las) antes de optar por usar o modo de proteção.
Na resposta obtida ao executar esse comando, procure a chave ID
. Você precisa desse valor em uma etapa posterior.
O campo ID
deverá estar neste formato:
/subscriptions/subscription id/resourcegroups/resource group name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/WAF policy name
Adicionar conjuntos de regras gerenciados à política de WAF
Adicione conjuntos de regras gerenciados a uma política de WAF. Um conjunto de regras gerenciado é um conjunto de regras criado e gerenciado pela Microsoft que ajudam a proteger você contra uma classe de ameaças. Neste exemplo, adicionamos dois conjuntos de regras:
- O conjunto de regras padrão, que ajuda a proteger você contra ameaças comuns da Web.
- O conjunto de regras de proteção contra bots, que ajuda a proteger você contra bots mal-intencionados.
Adicione o conjunto de regras padrão:
az network front-door waf-policy managed-rules add --policy-name <> --resource-group <> --type DefaultRuleSet --version 1.0
Adicione o conjunto de regras de proteção contra bots:
az network front-door waf-policy managed-rules add --policy-name <> --resource-group <> --type Microsoft_BotManagerRuleSet --version 1.0
--policy-name
: o nome especificado para o recurso do WAF do Azure.
--resource-group
: o grupo de recursos no qual você colocou o recurso do WAF.
Associar a política de WAF ao recurso do Azure Front Door
Nesta etapa, associamos a política de WAF que criamos ao recurso Azure Front Door que está na frente do seu aplicativo Web:
az network front-door update --name <> --resource-group <> --set frontendEndpoints[0].webApplicationFirewallPolicyLink='{"id":"<>"}'
--name
: o nome especificado para o recurso do Azure Front Door.
--resource-group
: o grupo de recursos no qual você colocou o recurso do Azure Front Door.
--set
: é aqui que você atualiza o atributo WebApplicationFirewallPolicyLink
do frontendEndpoint
associado ao recurso do Azure Front Door com a nova política de WAF. Você deverá ter a ID da política de WAF da resposta que obteve ao criar o perfil de WAF anteriormente neste tutorial.
Observação
O exemplo anterior é aplicável quando você não está usando um domínio personalizado. Se você não está usando nenhum domínio personalizado para acessar seus aplicativos Web, ignore a próxima seção. Nesse caso, você dará aos seus clientes o hostName
obtido quando criou o recurso do Azure Front Door. Eles usarão esse hostName
para acessar seu aplicativo Web.
Configurar o domínio personalizado para seu aplicativo Web
O nome de domínio personalizado do seu aplicativo Web é aquele que os clientes usam para se referirem ao seu aplicativo. Por exemplo: www.contoso.com. Inicialmente, esse nome de domínio personalizado apontava para a localização em que ele estava em execução antes da introdução do Azure Front Door. Depois que você adicionar o Azure Front Door e o WAF à frente do aplicativo, a entrada DNS que corresponde a esse domínio personalizado deverá apontar para o recurso do Azure Front Door. Faça essa alteração remapeando a entrada no servidor DNS para o hostName
do Azure Front Door que você anotou ao criar o recurso do Azure Front Door.
As etapas específicas para atualizar seus registros DNS dependem do provedor de serviços DNS. Se você usar o DNS do Azure para hospedar seu nome DNS, veja a documentação para obter as etapas necessárias para atualizar um registro DNS e apontá-lo para o hostName
do Azure Front Door.
Há uma coisa importante a ser observada se você precisar que os clientes acessem o seu site usando o ápice da zona (por exemplo, contoso.com). Nesse caso, você precisará usar o DNS do Azure e o tipo de registro de alias para hospedar seu nome DNS.
Você também precisará atualizar a configuração do Azure Front Door para adicionar o domínio personalizado a ele para que ele esteja ciente desse mapeamento.
Por fim, se você estiver usando um domínio personalizado para acessar seu aplicativo Web e quiser habilitar o protocolo HTTPS. Você precisa configurar os certificados para o seu domínio personalizado no Azure Front Door.
Bloquear seu aplicativo Web
É recomendável verificar se apenas as bordas do Azure Front Door podem se comunicar com seu aplicativo Web. Isso garante que ninguém possa ignorar a proteção do Azure Front Door e acessar seu aplicativo diretamente. Para realizar esse bloqueio, confira Como fazer para bloquear o acesso ao meu back-end para apenas o Azure Front Door?.
Limpar os recursos
Quando não precisar mais dos recursos usados neste tutorial, use o comando az group delete para remover o grupo de recursos, o Front Door e a política de WAF:
az group delete \
--name <>
--name
: o nome do grupo de recursos de todos os recursos usados neste tutorial.
Próximas etapas
Para saber como solucionar problemas do Front Door, confira os guias de solução de problemas: