Implantação do Gateway de Aplicativo Privado (versão prévia)

Introdução

Historicamente, as SKUs do Gateway de Aplicativo v2 e, até certo ponto, a v1, exigiram o IP para permitir o gerenciamento do serviço. Esse requisito impôs várias limitações ao uso de controles de granularidade refinada em grupos de segurança de rede e tabelas de rotas. Especificamente, os seguintes desafios foram observados:

  • Todas as implantações de Gateways de Aplicativo v2 devem conter a configuração de IP de front-end voltado para o público para habilitar a comunicação com a marca de serviço do Gerenciador de Gateway.
  • As associações do grupo de segurança de rede exigem regras para permitir o acesso de entrada do GatewayManager e do acesso de saída à Internet.
  • Ao introduzir uma rota padrão (0.0.0.0/0) para encaminhar o tráfego em qualquer lugar que não seja a Internet, as métricas, o monitoramento e as atualizações do gateway resultam em um status com falha.

O Gateway de Aplicativo v2 agora pode abordar cada um desses itens para eliminar ainda mais o risco de exfiltração de dados e controlar a privacidade da comunicação de dentro da rede virtual. Essas alterações incluem os seguintes recursos:

  • Configuração de IP de front-end somente de endereço IP privado
    • Nenhum recurso de IP necessário
  • Eliminação do tráfego de entrada da marca de serviço GatewayManager por meio do grupo de segurança de rede
  • Capacidade de definir uma regra do NSG (grupo de segurança de rede) de saída Negar Tudo para restringir o tráfego de saída para a Internet
  • Capacidade de substituir a rota padrão para a Internet (0.0.0.0/0)
  • Resolução de DNS por meio de resolvedores definidos na rede virtual Saiba mais, incluindo zonas DNS privadas de link privado.

Cada um desses recursos pode ser configurado de forma independente. Por exemplo, um IP pode ser usado para permitir a entrada de tráfego da Internet e você pode definir uma regra de saída Negar Tudo na configuração do grupo de segurança de rede para impedir a exfiltração de dados.

Integração à versão prévia pública

A funcionalidade dos novos controles da configuração de front-end de IP privado, o controle sobre as regras do NSG e o controle sobre tabelas de rotas estão atualmente em versão prévia pública. Para ingressar na versão prévia pública, você pode optar pela experiência usando o portal do Azure, o PowerShell, a CLI ou a API REST.

Quando você participa da visualização, todos os novos Gateways de Aplicativo são fornecidos com a capacidade de definir qualquer combinação dos recursos de configuração de NSG, Tabela de Rotas ou IP privado. Se quiser recusar a nova funcionalidade e retornar à funcionalidade atual do Gateway de Aplicativo de disponibilidade geral, você poderá fazer isso cancelando o registro da versão prévia.

Para mais informações sobre como adicionar versões prévias de recurso, confira Configurar versões prévias de recurso na assinatura do Azure

Registrar-se para a versão prévia

Use as seguintes etapas para se registrar na versão prévia pública para os controles de rede aprimorados do Gateway de Aplicativo por meio do portal do Azure:

  1. Entre no portal do Azure.

  2. Na caixa de pesquisa, insira assinaturas e selecione Assinaturas.

    Captura de tela de pesquisa no portal do Azure.

  3. Selecione o link para o nome da sua assinatura.

    Captura de tela da seleção da assinatura do Azure.

  4. No menu esquerdo, em Configurações, selecione Versões prévias do recurso.

    Captura de tela do menu de versão prévia dos recursos do Azure.

  5. Você verá uma lista de versões prévias dos recursos disponíveis e seu status de registro atual.

    Captura de tela da lista de versão prévia dos recursos no portal do Azure.

  6. Em Versões prévias de recurso, digite na caixa de filtro EnableApplicationGatewayNetworkIsolation, marque o recurso e clique em Registrar.

    Captura de tela do filtro de versão prévia dos recursos no portal do Azure.

Observação

O registro de recursos pode levar até 30 minutos para fazer a transição do registro para o status registrado.

Para mais informações sobre como adicionar versões prévias de recurso, confira Configurar versões prévias de recurso na assinatura do Azure

Cancelar o registro da versão prévia

Para recusar a versão prévia pública para os controles de rede aprimorados do Gateway de Aplicativo por meio do Portal, use as seguintes etapas:

  1. Entre no portal do Azure.

  2. Na caixa de pesquisa, insira assinaturas e selecione Assinaturas.

    Captura de tela de pesquisa no portal do Azure.

  3. Selecione o link para o nome da sua assinatura.

    Captura de tela da seleção de assinatura do Azure.

  4. No menu esquerdo, em Configurações, selecione Versões prévias do recurso.

    Captura de tela do menu de versão prévia dos recursos do Azure.

  5. Você verá uma lista de versões prévias dos recursos disponíveis e seu status de registro atual.

    Captura de tela da lista de versão prévia dos recursos no portal do Azure.

  6. Em Versões prévias dos recursos, digite na caixa de filtro EnableApplicationGatewayNetworkIsolation, marque o recurso e clique em Cancelar registro.

    Captura de tela do filtro de versão prévia dos recursos no portal do Azure.

Regiões e disponibilidade

A versão prévia do Gateway de Aplicativo privado está disponível para todas as regiões de nuvem pública onde o SKU do Gateway de Aplicativo v2 tem suporte.

Configuração de controles de rede

Após o registro na versão prévia pública, a configuração do NSG, da tabela de rotas e da configuração de front-end de endereço IP privado pode ser executada usando qualquer método. Por exemplo: API REST, Modelo do ARM, implantação do Bicep, Terraform, PowerShell, CLI ou Portal. Nenhuma alteração de API ou comando foi introduzida com essa versão prévia pública.

Alterações de recursos

Depois que o gateway é provisionado, uma marca de recurso é atribuída automaticamente com o nome de EnhancedNetworkControl e o valor de True. Consulte o seguinte exemplo:

Captura de tela do rótulo EnhancedNetworkControl.

A marca de recurso é cosmética e serve para confirmar que o gateway foi provisionado com os recursos para configurar qualquer combinação dos recursos de gateway somente privado. A modificação ou exclusão da marca ou do valor não altera a operação funcional do gateway.

Dica

A marca EnhancedNetworkControl pode ser útil quando os Gateways de Aplicativo existentes foram implantados na assinatura antes da habilitação do recurso e você quer diferenciar qual gateway pode utilizar a nova funcionalidade.

Sub-rede de Gateway de Aplicativo

Sub-rede do Gateway de Aplicativo é a sub-rede da Rede Virtual do Microsoft Azure em que os recursos do Gateway de Aplicativo serão implantados. Na configuração do IP Privado do Front-end, é importante que essa sub-rede possa alcançar de forma privada os recursos que querem se conectar ao seu aplicativo ou site exposto.

Conectividade com a Internet de saída

As implantações do Gateway de Aplicativo que possuem apenas uma configuração de IP de front-end privado (sem uma configuração de IP de front-end público associada a uma regra de roteamento de solicitações) não conseguem ejetar o tráfego destinado à Internet. Essa configuração afeta a comunicação com destinos de back-end que são publicamente acessíveis por meio da Internet.

Para habilitar a conectividade de saída do Gateway de Aplicativo para um destino de back-end voltado para a Internet, você pode utilizar a NAT da Rede Virtual ou encaminhar o tráfego para um dispositivo virtual que tenha acesso à Internet.

A NAT de Rede Virtual oferece controle sobre qual endereço IP ou prefixo deve ser usado, bem como tempo limite ocioso configurável. Para configurar, crie um novo Gateway da NAT com um IP ou prefixo público e associe-o à sub-rede que contém o Gateway de Aplicativo.

Se for necessário uma solução de virtualização para a saída da Internet, confira a seção de controle da tabela de rotas neste documento.

Cenários comuns em que o uso de IP é necessário:

  • Comunicação com o cofre de chaves sem o uso de pontos de extremidade privados ou pontos de extremidade de serviço
    • A comunicação de saída não é necessária para arquivos pfx carregados diretamente no Gateway de Aplicativo
  • Comunicação com destinos de back-end via Internet
  • Comunicação com pontos de extremidade de CRL ou OCSP voltados para a Internet

Controle do grupo de segurança de rede

Os grupos de segurança de rede associados a uma sub-rede do Gateway de Aplicativo não exigem mais regras de entrada para o GatewayManager e não exigem acesso de saída à Internet. A única regra necessária é Permitir entrada do AzureLoadBalancer para garantir que as investigações de integridade possam alcançar o gateway.

A configuração a seguir é um exemplo do conjunto mais restritivo de regras de entrada, negando todo o tráfego, exceto investigações de integridade do Azure. Além das regras definidas, as regras explícitas são definidas para permitir que o tráfego do cliente chegue ao ouvinte do gateway.

Captura de tela das regras de grupo de segurança de entrada.

Observação

O Gateway de Aplicativo exibirá um alerta pedindo para garantir que a regra Permitir LoadBalanceRule seja especificada se uma regra DenyAll restringir inadvertidamente o acesso a investigações de integridade.

Cenário de exemplo

Este exemplo mostra a criação de um NSG usando o portal do Azure com as seguintes regras:

  • Permitir o tráfego de entrada para as portas 80 e 8080 para o Gateway de Aplicativo a partir de solicitações de cliente provenientes da Internet
  • Negar todos os outros tráfegos de entrada
  • Permitir tráfego de saída para um destino de back-end em outra rede virtual
  • Permitir o tráfego de saída para um destino de back-end acessível pela Internet
  • Negar todos os outros tráfegos de saída

Primeiro, crie um grupo de segurança de rede. Esse grupo de segurança contém suas regras de entrada e saída.

Regras de entrada

Três regras padrão de entrada já estão provisionadas no grupo de segurança. Consulte o seguinte exemplo:

Captura de tela das regras de grupo de segurança padrão.

Em seguida, crie as quatro novas regras de segurança de entrada a seguir:

  • Permitir a porta de entrada 80, TCP, da Internet (qualquer)
  • Permitir a porta de entrada 8080, TCP, da Internet (qualquer)
  • Permitir entrada do AzureLoadBalancer
  • Negar Qualquer Entrada

Para criar estas regras:

  • Selecione Regras de segurança de entrada
  • Selecione Adicionar
  • Insira as informações a seguir para cada regra no painel Adicionar regra de segurança de entrada.
  • Ao inserir as informações, selecione Adicionar para criar a regra.
  • A criação de cada regra leva um momento.
Nº da regra Origem Marca de serviço de origem Intervalos de portas de origem Destino Serviço Intervalos de porta de destino Protocolo Ação Prioridade Nome
1 Qualquer * Qualquer HTTP 80 TCP Allow 1028 AllowWeb
2 Qualquer * Qualquer Personalizado 8080 TCP Allow 1029 AllowWeb8080
3 Marca de serviço AzureLoadBalancer * Qualquer Personalizado * Qualquer Allow 1045 AllowLB
4 Qualquer * Qualquer Personalizado * Qualquer Negar 4095 DenyAllInBound

Selecione Atualizar para examinar todas as regras quando o provisionamento for concluído.

Captura de tela do exemplo de regras de grupo de segurança de entrada.

Regras de saída

Três regras de saída padrão com prioridade 65000, 65001 e 65500 já estão provisionadas.

Crie as três novas regras de segurança de saída a seguir:

  • Permitir TCP 443 de 10.10.4.0/24 para o destino de back-end 203.0.113.1
  • Permitir TCP 80 da origem 10.10.4.0/24 para o destino 10.13.0.4
  • Regra de tráfego DenyAll

Essas regras recebem uma prioridade de 400, 401 e 4096, respectivamente.

Observação

  • 10.10.4.0/24 é o espaço de endereço da sub-rede do Gateway de Aplicativo.
  • 10.13.0.4 é uma máquina virtual em uma VNet emparelhada.
  • 203.0.113.1 é uma VM de destino de back-end.

Para criar estas regras:

  • Selecione Regras de segurança de saída
  • Selecione Adicionar
  • Insira as informações a seguir para cada regra no painel Adicionar regra de segurança de saída.
  • Ao inserir as informações, selecione Adicionar para criar a regra.
  • A criação de cada regra leva um momento.
Nº da regra Origem Endereços IP de origem/Intervalos de CIDR Intervalos de portas de origem Destino Intervalos de CIDR /endereço IP de destino Serviço Intervalos de porta de destino Protocolo Ação Prioridade Nome
1 Endereços IP 10.10.4.0/24 * Endereços IP 203.0.113.1 HTTPS 443 TCP Allow 400 AllowToBackendTarget
2 Endereços IP 10.10.4.0/24 * Endereços IP 10.13.0.4 HTTP 80 TCP Allow 401 AllowToPeeredVnetVM
3 Qualquer * Qualquer Personalizado * Qualquer Negar 4096 DenyAll

Selecione Atualizar para examinar todas as regras quando o provisionamento for concluído.

Captura de tela das regras de segurança de saída para o gateway de aplicativos.

Associar o NSG à sub-rede

A última etapa é associar o grupo de segurança de rede à sub-rede que contém o Gateway de Aplicativo.

Captura de tela do NSG associado à sub-rede.

Resultado:

Captura de tela da visão geral do NSG.

Importante

Tenha cuidado ao definir regras DenyAll, pois você pode inadvertidamente negar o tráfego de entrada de clientes para os quais você pretende permitir o acesso. Você também pode negar inadvertidamente o tráfego de saída para o destino do back-end, fazendo com que a integridade do back-end falhe e produza respostas 5XX.

Controle de tabela de rotas

Na oferta atual do Gateway de Aplicativo, a associação de uma tabela de rotas com uma regra (ou criação de regra) definida como 0.0.0.0/0 com um próximo salto como dispositivo virtual não tem suporte para garantir o gerenciamento adequado do Gateway de Aplicativo.

Após o registro da versão prévia do recurso pública, a capacidade de encaminhar o tráfego para uma solução de virtualização agora é possível por meio da definição de uma regra de tabela de rotas que define 0.0.0.0/0 com um próximo salto para a solução de virtualização.

O túnel forçado ou o aprendizado da rota 0.0.0.0/0 por meio da publicidade BGP não afeta a integridade do Gateway de Aplicativo e é respeitado pelo fluxo de tráfego. Esse cenário pode ser aplicável ao usar VPN, ExpressRoute, Servidor de Rota ou WAN Virtual.

Cenário de exemplo

No exemplo a seguir, criamos uma tabela de rotas e a associamos à sub-rede do Gateway de Aplicativo para garantir que o acesso à Internet de saída da sub-rede será retirado de uma solução de virtualização. Em um nível alto, o design a seguir é resumido na Figura 1:

  • O Gateway de Aplicativo está na rede virtual spoke
  • Há uma solução de virtualização de rede (uma máquina virtual) na rede do hub
  • Uma tabela de rotas com uma rota padrão (0.0.0.0/0) para a solução de virtualização está associada à sub-rede do Gateway de Aplicativo

Diagrama de exemplo da tabela de rotas.

Figura 1: saída de acesso à Internet por meio de solução de virtualização

Para criar uma tabela de rotas e associá-la à sub-rede do Gateway de Aplicativo:

  1. Criar uma tabela de rotas:

Captura de tela da tabela de rotas recém criada.

  1. Selecione Rotas e crie a regra de próximo salto para 0.0.0.0/0 e configure o destino para ser o endereço IP da VM:

Captura de tela da adição de rota padrão à aplicação virtual de rede.

  1. Selecione Sub-redes e associe a tabela de rotas à sub-rede do Gateway de Aplicativo:

Captura de tela da associação da rota à sub-rede do AppGW.

  1. Valide se o tráfego está passando pela solução de virtualização.

Limitações/problemas conhecidos

As seguintes limitações são conhecidas durante a versão prévia pública.

O suporte à configuração de link privado para túnel de tráfego por meio de pontos de extremidade privados para o Gateway de Aplicativo não é compatível com o gateway somente privado.

Limitação de taxa de WAF

No momento, não há suporte para regras personalizadas de limitação de taxa para o WAF v2 do Gateway de Aplicativo.

Configuração de front-end de IP privado somente com AGIC

O AGIC v1.7 deve ser usado para introduzir suporte somente para IP de front-end privado.

Conectividade de ponto de extremidade privado por meio do emparelhamento VNet global

Se o Gateway de Aplicativo tiver uma referência de destino de back-end ou cofre de chaves a um ponto de extremidade privado localizado em uma VNet acessível por meio do emparelhamento de VNet global, o tráfego será descartado, resultando em um status não íntegro.

Integração do Observador de Rede

A solução de problemas de conexão e o diagnóstico do NSG retornam um erro ao executarem testes de verificação e diagnóstico.

Gateways de aplicativos v2 coexistentes criados antes da habilitação do controle de rede aprimorado

Se uma sub-rede compartilhar implantações do Gateway de Aplicativo v2 que foram criadas antes e depois da habilitação da funcionalidade de controle de rede aprimorado, a funcionalidade do NSG (grupo de segurança de rede) e da Tabela de Rotas será limitada à implantação anterior do gateway. Os gateways de aplicativo provisionados antes da habilitação da nova funcionalidade devem ser reprovisionados ou os gateways recém-criados devem usar uma sub-rede diferente para habilitar recursos aprimorados de grupo de segurança de rede e tabela de rotas.

  • Se um gateway implantado antes da habilitação da nova funcionalidade existir na sub-rede, você poderá ver erros como: For routes associated to subnet containing Application Gateway V2, please ensure '0.0.0.0/0' uses Next Hop Type as 'Internet' ao adicionar entradas de tabela de rotas.
  • Ao adicionar regras de grupo de segurança de rede à sub-rede, você poderá ver: Failed to create security rule 'DenyAnyCustomAnyOutbound'. Error: Network security group \<NSG-name\> blocks outgoing Internet traffic on subnet \<AppGWSubnetId\>, associated with Application Gateway \<AppGWResourceId\>. This isn't permitted for Application Gateways that have fast update enabled or have V2 Sku.

Status de integridade de back-end desconhecido

Se a integridade do back-end for Desconhecida, você poderá ver o seguinte erro:

  • Não foi possível recuperar o status de integridade do back-end. Isso acontece quando um NSG/UDR/Firewall na sub-rede do gateway do aplicativo bloqueia o tráfego nas portas 65503-65534, se houver SKU v1, e nas portas 65200-65535, se houver SKU v2, ou se o FQDN configurado no pool de back-end não puder ser resolvido em um endereço de IP. Para saber mais, consulte - https://aka.ms/UnknownBackendHealth.

Esse erro pode ser ignorado e será esclarecido em uma versão futura.

Próximas etapas