Compartilhar via


Proteger 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, nem sempre convém publicá-los diretamente na Internet. Em vez disso, convém 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 de entrada para o destino apropriado.

Os proxies reversos permitem que você coloque serviços na frente de seus aplicativos que oferecem suporte a funcionalidades transversais, incluindo:

  • Roteiro
  • 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 WAF (Web Application Firewall) no Gateway de Aplicativo do Azure com um ambiente interno de Aplicativos de Contêiner.

Para obter mais informações sobre conceitos de rede em Aplicativos de Contêiner, consulte Ambiente de Rede em Aplicativos de Contêiner do Azure.

Pré-requisitos

  • Ambiente interno com rede virtual 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 de rede virtual personalizado, consulte Fornecer uma rede virtual a um ambiente interno de Aplicativos de Contêiner do Azure.

  • Certificados de segurança: se você precisar usar a criptografia TLS/SSL para o gateway de aplicativo, será necessário um certificado público válido usado para vincular ao gateway de aplicativo.

Recuperar o domínio do aplicativo de contêiner

Use as etapas a seguir para recuperar os valores do domínio padrão e do IP estático para configurar sua Zona DNS Privada.

  1. Na janela Visão geral do grupo de recursos no portal, selecione seu aplicativo de contêiner.

  2. Na janela Visão geral do recurso do aplicativo de contêiner, selecione o link para Ambiente de aplicativos de contêiner

  3. Na janela Visão geral do recurso de ambiente de aplicativo de contêiner, selecione Modo de exibição JSON no canto superior direito da página para exibir a representação JSON do ambiente de aplicativos de contêiner.

  4. 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

  1. No menu do portal do Azure ou na Página inicial, selecione Criar um recurso.

  2. Procure Zona DNS Privada e selecione Zona DNS Privada nos resultados da pesquisa.

  3. Selecione o botão Criar.

  4. 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.
  5. Selecione Examinar + criar. Depois da validação, selecione Criar.

  6. Depois que a zona DNS privada for criada, selecione Ir para o recurso.

  7. Na janela Visão geral, selecione +Conjunto de registros para adicionar um novo conjunto de registros.

  8. 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.
  9. Selecione OK para criar o conjunto de registros.

  10. Selecione +Conjunto de registros novamente para adicionar um segundo conjunto de registros.

  11. 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.
  12. Selecione OK para criar o conjunto de registros.

  13. Selecione a janela Links de rede virtual no menu no lado esquerdo da página.

  14. Selecione +Adicionar para criar um novo link com os seguintes valores:

    Configuração Ação
    Nome do link Digite my-custom-vnet-pdns-link.
    Conheço a ID de recurso da rede virtual Deixe-o desmarcado.
    Rede virtual Selecione a rede virtual à qual seu aplicativo de contêiner está integrado.
    Habilitar o registro automático Deixe-o desmarcado.
  15. Selecione OK para criar o link de rede virtual.

Criar e configurar um Gateway de Aplicativo do Azure

Guia Básico

  1. 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 Digite my-container-apps-agw.
    Region Selecione o local onde seu Aplicativo de Contêiner foi provisionado.
    Camada Selecione WAF V2. Você pode usar o Standard V2 se não precisar do WAF.
    Habilitar o dimensionamento automático Mantenha o 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, as zonas de disponibilidade são recomendadas para maior disponibilidade.
    HTTP2 Mantenha o valor padrão.
    Política do WAF Selecione Criar novo e insira my-waf-policy para a Política do WAF. Selecione OK. Se você escolheu Standard V2 para a camada, ignore esta etapa.
    Rede virtual Selecione a rede virtual à 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 vá para a seção Frontends.
  2. Na janela Sub-redes de my-custom-vnet, selecione +Sub-rede e insira os seguintes valores:

    Configuração Ação
    Nome Digite appgateway-subnet.
    Intervalo de endereços da sub-rede Mantenha os valores padrão.
  3. Para o restante das configurações, mantenha os valores padrão.

  4. Selecione Salvar para criar a nova sub-rede.

  5. Feche a janela Sub-redes para retornar à janela Criar gateway de aplicativo.

  6. Selecione os seguintes valores:

    Configuração Ação
    Sub-rede Selecione a sub-rede appgateway que você criou.
  7. Selecione Avançar: Frontends, para continuar.

Guia Front-ends

  1. Na guia Frontends, 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. Digite my-frontend para o nome do seu frontend e selecione OK

    Observação

    Para a SKU do Application Gateway 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 não é suportada atualmente na SKU v2. Para saber mais, leia aqui.

  2. 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 de 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 multilocatários como o Serviço de Aplicativo do Azure e Aplicativos de Contêiner

Neste exemplo, você cria um pool de back-end direcionado ao seu aplicativo de contêiner.

  1. Selecione Adicionar pool de back-end.

  2. Abra uma nova guia e navegue até seu aplicativo de contêiner.

  3. Na janela Visão geral do aplicativo de contêiner, localize a URL do aplicativo e copie-a.

  4. Retorne à guia Backends e insira os seguintes valores na janela Adicionar um pool de back-ends:

    Configuração Ação
    Nome Digite 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 de Aplicativo de Contêiner que você copiou e remova o prefixo https://. Esse local é o FQDN do seu aplicativo de contêiner.
  5. Selecione Adicionar.

  6. Na guia Back-ends, selecione Avançar: Configuração.

Guia Configuração

Na guia Configuração, você conecta o pool de front-end e back-end criado usando uma regra de roteamento.

  1. Selecione Adicionar uma regra de roteamento. Insira os valores a seguir:

    Configuração Ação
    Nome Digite my-agw-routing-rule.
    Prioridade Insira 1.
  2. Na guia Ouvinte, insira os seguintes valores:

    Configuração Ação
    Nome do ouvinte Digite 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, digite 80 e vá para a seção de domínio padrão/personalizado.
    Escolha um Certificado Selecione Carregar um certificado. Se o certificado estiver armazenado no cofre de chaves, você poderá selecionar Escolher um certificado no Cofre de chaves.
    Nome do certificado Insira um nome para seu certificado.
    Arquivo de certificado PFX Selecione seu certificado público válido.
    Senha Digite a senha do 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

    Como alternativa, 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 Solteiro
    Nomes de host Insira o Domínio Personalizado que você deseja usar.
    URL da página de erro Deixe como Não
  3. Selecione a guia Destinos de back-end e insira os seguintes valores:

  4. Alterne 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.
  5. Na janela de configuração Adicionar Back-end, insira os seguintes valores:

    Configuração Ação
    Nome das configurações de back-end Digite 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.
  6. Selecione Adicionar para adicionar as configurações de back-end.

  7. Na janela Adicionar uma regra de roteamento, selecione Adicionar novamente.

  8. Selecione Avançar: Marcas.

  9. Selecione Avançar: Revisar + criar e selecione Criar.

Você pode estabelecer uma conexão segura com ambientes de aplicativo de contêiner somente internos usando o link privado, pois ele permite que seu Gateway de Aplicativo se comunique com seu Aplicativo de Contêiner no back-end por meio da rede virtual.

  1. Depois que o Gateway de Aplicativo for criado, selecione Ir para o recurso.

  2. No menu à esquerda, selecione Link privado e, em seguida, selecione Adicionar.

  3. Insira os valores a seguir:

    Configuração Ação
    Nome Digite 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 Gateway de Aplicativos.
  4. Em Configurações de endereço IP privado, selecione Adicionar.

  5. Selecione Adicionar na parte inferior da janela.

Verificar o aplicativo de contêiner

  1. Localize o endereço IP público do gateway de aplicativo em sua página Visão geral ou pesquise o endereço. Para pesquisar, selecione Todos os recursos e digite my-container-apps-agw-pip na caixa de pesquisa. Em seguida, selecione o IP nos resultados da pesquisa.

  2. Navegue até o endereço IP público do gateway de aplicativo.

  3. Sua solicitação é roteada automaticamente para o aplicativo de contêiner, que verifica se o gateway de aplicativo foi criado com êxito.

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:

  1. No menu do portal do Azure, selecione Grupos de recursos ou pesquise e selecione Grupos de recursos.

  2. Na página Grupos de recursos, procure e selecione my-container-apps.

  3. Na página Grupo de recursos, selecione Excluir grupo de recursos.

  4. Insira my-container-apps em DIGITE O NOME DO GRUPO DE RECURSOS e selecione Excluir

Próximas etapas