Proteger os Aplicativos de Contêiner do Azure com o Firewall de Aplicativo Web no Gateway de Aplicativo
Quando você hospeda seus aplicativos ou microsserviços nos Aplicativos de Contêiner do Azure, pode não querer publicá-los diretamente na internet. Em vez disso, você pode querer expô-los por meio de um proxy reverso.
Um proxy reverso é um serviço que fica na frente de um ou mais serviços, interceptando e direcionando o tráfego recebido para o destino apropriado.
Proxies reversos permitem que você coloque serviços na frente dos seus aplicativos que dão suporte a funcionalidades transversais, incluindo:
- Roteamento
- Cache
- Limitação de taxa
- Balanceamento de carga
- Camadas de segurança
- Filtragem de solicitações
Este artigo demonstra como proteger seus Aplicativos de Contêiner usando um Firewall de Aplicativo Web (WAF) no Gateway de Aplicativo do Azure com um ambiente Interno de Aplicativos de Contêiner.
Para obter mais informações sobre conceitos de sistemas de rede nos Aplicativos de Contêiner, confira Ambiente de Rede nos Aplicativos de Contêiner do Azure.
Pré-requisitos
Ambiente interno com VNet personalizada: Tenha um aplicativo de contêiner que esteja em um ambiente interno e integrado a uma rede virtual personalizada. Para obter mais informações sobre como criar um aplicativo integrado a uma rede virtual personalizada, consulte fornecer uma rede virtual para um ambiente dos Aplicativos de Contêiner do Azure.
Certificados de segurança: Se você precisar usar criptografia TLS/SSL para o gateway de aplicativo, será necessário um certificado público válido que será usado para associar ao seu gateway de aplicativo.
Recuperar o domínio do seu aplicativo de contêiner
Use as seguintes etapas para recuperar os valores do domínio padrão e do IP estático para configurar sua Zona DNS Privada.
Na janela Visão geral do grupo de recursos no portal, selecione seu aplicativo de contêiner.
Na janela Visão geral do recurso do seu aplicativo de contêiner, selecione o link para Ambientes de Aplicativos de Contêiner
Na janela Visão geral do recurso de ambiente do seu aplicativo de contêiner, selecione Exibição JSON no canto superior direito da página para exibir a representação JSON do ambiente de aplicativos de contêiner.
Copie os valores das propriedades defaultDomain e staticIp e cole-os em um editor de texto. Você criará uma zona DNS privada usando esses valores para o domínio padrão na próxima seção.
Criar e configurar uma Zona DNS Privada do Azure
No menu do portal do Azure ou na Página inicial, selecione Criar um recurso.
Pesquise por Zona DNS Privada, e selecione Zona DNS Privada nos resultados da pesquisa.
Selecione o botão Criar.
Insira os valores a seguir:
Configuração Ação Subscription Selecione sua assinatura do Azure. Resource group Selecione o grupo de recursos do seu aplicativo de contêiner. Nome Insira a propriedade defaultDomain do Ambiente de Aplicativos de Contêiner da seção anterior. Localização do grupo de recursos Deixe como padrão. Um valor não é necessário, pois as Zonas DNS Privadas são globais. Selecione Examinar + criar. Depois da validação, selecione Criar.
Após a criação da zona DNS privada, selecione Ir para o recurso.
Na janela Visão geral, selecione +Conjunto de registros, para adicionar um novo conjunto de registros.
Na janela Adicionar conjunto de registros, insira os seguintes valores:
Configuração Ação Nome Digite *. Tipo Selecione Registro de Endereço A. TTL Mantenha os valores padrão. Unidade de TTL Mantenha os valores padrão. Endereço IP Insira a propriedade staticIp do Ambiente de Aplicativos de Contêiner da seção anterior. Selecione OK para criar o conjunto de registros.
Selecione +Conjunto de registros novamente, para adicionar um segundo conjunto de registros.
Na janela Adicionar conjunto de registros, insira os seguintes valores:
Configuração Ação Nome Digite @. Tipo Selecione Registro de Endereço A. TTL Mantenha os valores padrão. Unidade de TTL Mantenha os valores padrão. Endereço IP Insira a propriedade staticIp do Ambiente de Aplicativos de Contêiner da seção anterior. Selecione OK para criar o conjunto de registros.
Selecione a janela Links de rede virtual no menu à esquerda da página.
Selecione +Adicionar para criar um link com os seguintes valores:
Configuração Ação Nome do link Insira my-custom-vnet-pdns-link. Conheço a ID de recurso da rede virtual Deixe desmarcado. Rede virtual Selecione a rede virtual com a qual seu aplicativo de contêiner está integrado. Habilitar o registro automático Deixe desmarcado. Selecione OK para criar o link de rede virtual.
Criar e configurar um Gateway de Aplicativo do Azure
Guia Básico
Insira os valores a seguir na seção Detalhes do projeto.
Configuração Ação Subscription Selecione sua assinatura do Azure. Resource group Selecione o grupo de recursos para seu aplicativo de contêiner. Nome do gateway de aplicativo Insira my-container-apps-agw. Region Selecione a localização onde seu Aplicativo de Contêiner foi provisionado. Camada Selecione WAF V2. Você pode usar Standard V2 se não precisar do WAF. Habilitar o dimensionamento automático Sair como padrão. Para ambientes de produção, o dimensionamento automático é recomendado. Consulte Dimensionamento Automático do Gateway de Aplicativo do Azure. Zona de disponibilidade Selecione Nenhum. Para ambientes de produção, Zonas de Disponibilidade são recomendadas para maior disponibilidade. HTTP2 Mantenha o valor padrão. Política do WAF Selecione Criar e insira my-waf-policy para a Política do WAF. Selecione OK. Se você escolheu Standard V2 para a camada, ignore essa etapa. Rede virtual Selecione a rede virtual com a qual seu aplicativo de contêiner está integrado. Sub-rede Clique em Gerenciar a configuração da sub-rede. Se você já tiver uma sub-rede que deseja usar, use-a e pule para a seção Front-ends. De dentro da janela Sub-redes de my-custom-vnet, selecione +Sub-rede e insira os seguintes valores:
Configuração Ação Nome Insira appgateway-subnet. Intervalo de endereços da sub-rede Mantenha os valores padrão. Para o restante das configurações, mantenha os valores padrão.
Selecione Salvar para criar a sub-rede.
Feche a janela Sub-redes para retornar à janela Criar gateway de aplicativo.
Selecione os seguintes valores:
Configuração Ação Sub-rede Selecione a appgateway-subnet que você criou. Selecione Avançar: Front-ends para prosseguir.
Guia Front-ends
Na guia Front-ends, insira os seguintes valores:
Configuração Ação Tipo de endereço IP de front-end Selecione Público. Endereço IP público Selecione Adicionar nova. Insira my-frontend para o nome do seu front-end e selecione OK Observação
Para a SKU do Gateway de Aplicativo v2, deve haver um IP de front-end Público. Você pode ter uma configuração de IP de front-end pública e privada, mas uma configuração de IP de front-end somente privada sem IP público atualmente não tem suporte na SKU v2. Para saber mais, leia aqui.
Selecione Avançar: Back-ends.
Guia Back-ends
O pool de back-end é usado para rotear solicitações para os servidores de back-end apropriados. Os pools de back-end podem ser compostos por qualquer combinação dos seguintes recursos:
- NICs
- Endereços IP públicos
- Endereço IP interno
- Conjuntos de Dimensionamento de Máquinas Virtuais
- Nomes de domínio totalmente qualificados (FQDN)
- Back-ends multi-locatário como Serviço de Aplicativo do Azure e Aplicativos de Contêiner
Neste exemplo, você criará um pool de back-end que direcionará seu aplicativo de contêiner.
Selecione Adicionar pool de back-end.
Abra uma nova guia e navegue até seu aplicativo de contêiner.
Na janela Visão Geral do Aplicativo de Contêiner, encontre a URL do Aplicativo e copie-a.
Retorne à guia Back-ends e insira os seguintes valores na janela Adicionar um pool de back-end:
Configuração Ação Nome Insira my-agw-backend-pool. Adicionar pool de back-end sem destinos Selecione Não. Tipo de destino Selecione Endereço IP ou FQDN. Destino Insira a URL do Aplicativo do Aplicativo de Contêiner que você copiou e remova o prefixo https://. Esta localização é o FQDN do seu aplicativo de contêiner. Selecione Adicionar.
Na guia Back-ends, selecione Avançar: Configuração.
Guia Configuração
Na guia Configuração, você conectará o front-end e o pool de back-end que você criou usando uma regra de roteamento.
Selecione Adicionar uma regra de roteamento. Insira os valores a seguir:
Configuração Ação Nome Insira my-agw-routing-rule. Prioridade Insira 1. Na guia Ouvinte, insira os seguintes valores:
Configuração Ação Nome do ouvinte Insira my-agw-listener. IP de front-end Selecione Público. Protocolo Selecione HTTPS. Se você não tiver um certificado que deseja usar, poderá selecionar HTTP Porta Inserir 443. Se você escolheu HTTP para seu protocolo, insira 80 e pule para a seção de domínio padrão/personalizado. Escolha um Certificado Selecione Carregar um certificado. Se o seu certificado estiver armazenado no cofre de chaves, você poderá selecionar Escolher um certificado do Key Vault. Nome do certificado Insira um nome para seu certificado. Arquivo de certificado PFX Selecione seu certificado público válido. Senha Insira a senha do seu certificado. Se você quiser usar o domínio padrão, insira os seguintes valores:
Configuração Ação Tipo de Ouvinte Selecione Básico URL da página de erro Deixe como Não Alternativamente, se você quiser usar um domínio personalizado, insira os seguintes valores:
Configuração Ação Tipo de Ouvinte Selecione Multi site Host type Selecione Simples Nomes de Host Insira o Domínio Personalizado que você deseja usar. URL da página de erro Deixe como Não Selecione a guia Destinos de Back-end e insira os seguintes valores:
Ativar/Desativar para a guia Destinos de Back-end e insira os seguintes valores:
Configuração Ação Tipo de destino Selecione my-agw-backend-pool que você criou anteriormente. Configurações de back-end Selecione Adicionar nova. Na janela Adicionar configuração de Back-end, insira os seguintes valores:
Configuração Ação Nome das configurações de back-end Insira my-agw-backend-setting. Protocolo de back-end Selecione HTTPS. Porta de back-end Inserir 443. Usar um Certificado de Autoridade de Certificação conhecido Selecione Sim. Substituir por um novo nome do host Selecione Sim. Substituir o nome do host Selecione Escolher o nome do host do destino de back-end. Criar investigações personalizadas Selecione Não. Selecione Adicionar, para adicionar as configurações de back-end.
Na janela Adicionar uma regra de roteamento, selecione Adicionar novamente.
Selecione Avançar: Marcas.
Selecione Avançar: Revisar + criar, e então selecione Criar.
Adicionar link privado ao seu Gateway de Aplicativo
Você pode estabelecer uma conexão segura com ambientes de aplicativo de contêiner somente internos usando link privado, pois ele permite que seu Gateway de Aplicativo se comunique com seu Aplicativo de Contêiner no back-end através da rede virtual.
Depois que o Gateway de Aplicativo for criado, selecione Ir para o recurso.
No menu à esquerda, selecione Link privado, depois selecione Adicionar.
Insira os valores a seguir:
Configuração Ação Nome Insira my-agw-private-link. Sub-rede de link privado Selecione a sub-rede com a qual você deseja criar o link privado. Configuração do IP de Front-end Selecione o IP de front-end para o seu Gateway de Aplicativo. Em Configurações do endereço IP privado selecione Adicionar.
Selecione Adicionar na parte inferior da janela.
Verificar o aplicativo de contêiner
Encontre o endereço IP público do gateway de aplicativo na sua página Visão geral, ou pesquise o endereço. Para pesquisar, selecione Todos os recursos e insira my-container-apps-agw-pip na caixa de pesquisa. Em seguida, selecione o IP nos resultados da pesquisa.
Navegue até o endereço IP público do gateway de aplicativo.
Sua solicitação é automaticamente roteada para o aplicativo de contêiner, que verifica se o gateway de aplicativo foi criado com sucesso.
Limpar os recursos
Quando não precisar mais dos recursos que criou, exclua o grupo de recursos. Ao excluir o grupo de recursos, você também remove todos os recursos relacionados.
Para excluir o grupo de recursos:
No menu do portal do Azure, selecione Grupos de recursos ou pesquise e selecione Grupos de recursos.
Na página Grupos de recursos, pesquise e selecione my-container-apps.
Na página Grupo de recursos, selecione Excluir grupo de recursos.
Insira my-container-apps em DIGITE O NOME DO GRUPO DE RECURSOS e então selecione Excluir