Proteger o tráfego entre aplicativos lógicos Standard e redes virtuais do Azure usando pontos de extremidade privados

Aplica-se a: Aplicativos Lógicos do Azure (Standard)

Para se comunicar de maneira segura e privada entre o fluxo de trabalho do aplicativo lógico Standard e uma rede virtual do Azure, você pode configurar pontos de extremidade privados para o tráfego de entrada e usar a integração de rede virtual para o tráfego de saída.

O ponto de extremidade privado é uma interface de rede que se conecta, de forma privada e segura, a um serviço com tecnologia do Link Privado do Azure. Este serviço pode ser um serviço do Azure, como os Aplicativos Lógicos do Azure, Armazenamento do Azure, o Azure Cosmos DB, o SQL ou o seu Serviço de Link Privado. O ponto de extremidade privado usa um endereço IP privado da rede virtual, que coloca efetivamente o serviço na sua rede virtual.

Este artigo mostra como configurar o acesso através de pontos de extremidade privados para tráfego de entrada e integração de rede virtual para o tráfego de saída.

Para mais informações, consulte a seguinte documentação:

Pré-requisitos

Você precisa ter uma rede virtual do Azure nova ou existente que inclua uma sub-rede sem quaisquer delegações. Esta sub-rede é usada para implantar e alocar endereços IP privados da rede virtual.

Para saber mais, consulte a seguinte documentação:

Configurar o tráfego de entrada através de pontos de extremidade privados

Para proteger o tráfego de entrada para seu fluxo de trabalho, conclua estas etapas de alto nível:

  1. Inicie o fluxo de trabalho com um gatilho interno que possa receber e tratar solicitações de entrada, como o gatilho de Solicitação ou o gatilho de Webhook + HTTP. Esse gatilho configura seu fluxo de trabalho com um ponto de extremidade resgatável.

  2. Adicione um ponto de extremidade privado para seu recurso de aplicativo lógico à sua rede virtual.

  3. Faça chamadas de teste para verificar o acesso ao ponto de extremidade. Para chamar o fluxo de trabalho do aplicativo lógico depois de configurar esse ponto de extremidade, você deve estar conectado à rede virtual.

Considerações sobre o tráfego de entrada através de pontos de extremidade privados

  • Se acessado de fora de sua rede virtual, o modo de exibição de monitoramento não poderá acessar as entradas e saídas de gatilhos e ações.

  • Gatilhos de webhook de API gerenciada (gatilhospush) e ações não funcionarão porque são executados na nuvem pública e não podem chamar sua rede privada. Eles exigem um ponto de extremidade público para receber chamadas. Por exemplo, esses gatilhos incluem o gatilho do Dataverse e o gatilho da Grade de Eventos.

  • Se você usar o gatilho do Office 365 Outlook, o fluxo de trabalho será disparado somente por hora.

  • A implantação do Visual Studio Code ou da CLI do Azure funciona somente de dentro da rede virtual. Você pode usar o Centro de Implantação para vincular seu aplicativo lógico a um repositório GitHub. Em seguida, você pode usar a infraestrutura do Azure para criar e implantar seu código.

    Para que a integração do GitHub funcione, remova a WEBSITE_RUN_FROM_PACKAGE configuração do aplicativo lógico ou defina o valor como 0.

  • A habilitação do Link Privado não afeta o tráfego de saída, que ainda flui pela infraestrutura do Serviço de Aplicativo.

Pré-requisitos para tráfego de entrada através de pontos de extremidade privados

Junto com a configuração da rede virtual nos pré-requisitos de nível superior, você precisa ter um fluxo de trabalho de aplicativo lógico Standard novo ou existente que comece com um gatilho interno que possa receber solicitações.

Por exemplo, o gatilho de Solicitação cria um ponto de extremidade no fluxo de trabalho que pode receber e tratar solicitações de entrada de outros chamadores, incluindo fluxos de trabalho. Esse ponto de extremidade fornece uma URL que você pode usar para chamar e disparar o fluxo de trabalho. Para este exemplo, as etapas continuam com o Gatilho de solicitação.

Para obter mais informações, examine Receber e responder a solicitações HTTP de entrada usando os Aplicativos Lógicos do Azure.

Criar o fluxo de trabalho

  1. Caso ainda não tenha feito isso, crie um aplicativo lógico baseado em locatário único e um fluxo de trabalho em branco.

  2. Depois que o designer abrir, adicione o gatilho de Solicitação como a primeira etapa no fluxo de trabalho.

  3. Com base em seus requisitos de cenário, adicione outras ações que você deseja executar em seu fluxo de trabalho.

  4. Quando terminar, salve o fluxo de trabalho.

Para obter mais informações, consulte Criar fluxos de trabalho de aplicativo lógico de locatário único nos Aplicativos Lógicos do Azure.

Copie a URL do ponto de extremidade

  1. No menu de fluxo de trabalho, selecione Visão geral.

  2. Na página Visão geral, copie e salve a URL do Fluxo de Trabalho para uso posterior.

    Para disparar o fluxo de trabalho, chame ou envie uma solicitação para essa URL.

  3. Certifique-se de que a URL funcione chamando ou enviando uma solicitação para a URL. Você pode usar qualquer ferramenta que desejar para enviar a solicitação, por exemplo, Postman.

Configurar conexão de ponto de extremidade privado

  1. No menu do aplicativo lógico, em Configurações, selecione Rede.

  2. Na página Rede no cartão do Tráfego de entrada, selecione Pontos de extremidade privados.

  3. Nas conexões de Ponto de Extremidade Privado, selecione Adicionar.

  4. No painel Adicionar Ponto de Extremidade Privado que é aberto, forneça as informações solicitadas sobre o ponto de extremidade.

    Para obter mais informações, consulte Propriedades do ponto de extremidade privado.

  5. Depois que o Azure provisiona com êxito o ponto de extremidade privado, tente novamente chamar a URL do fluxo de trabalho.

    Desta vez, você obterá um erro 403 Forbidden esperado, o que significa que o ponto de extremidade privado está definido e funciona corretamente.

  6. Para garantir que a conexão esteja funcionando corretamente, crie uma máquina virtual na mesma rede virtual que tenha o ponto de extremidade privado e tente chamar o fluxo de trabalho do aplicativo lógico.

Configure o tráfego de saída usando a integração de rede virtual

Para proteger o tráfego de saída de seu aplicativo lógico, você pode integrar seu aplicativo lógico a uma rede virtual. Primeiro, crie e teste um fluxo de trabalho de exemplo. Em seguida, você pode configurar a integração de rede virtual.

Considerações sobre o tráfego de saída através da integração de rede virtual

  • Configurar a integração de rede virtual afeta apenas o tráfego de saída. Para proteger o tráfego de entrada, que continua a usar o ponto de extremidade compartilhado do Serviço de Aplicativo, revise Configurar o tráfego de entrada por meio de pontos de extremidade privados.

  • Você não pode alterar o tamanho da sub-rede após a atribuição, portanto, use uma sub-rede que seja grande o suficiente para acomodar a escala que seu aplicativo pode alcançar. Para evitar problemas com a capacidade de sub-rede, use uma sub-rede /26 com 64 endereços. Se você criar a sub-rede para integração de rede virtual com o portal do Azure, deverá usar /27 como o tamanho mínimo da sub-rede.

  • Para que o runtime dos Aplicativos Lógicos do Azure funcione, você precisa ter uma conexão ininterrupta com o armazenamento de back-end. Se o armazenamento de back-end for exposto à rede virtual por meio de um ponto de extremidade privado, verifique se as seguintes portas estão abertas:

    Porta de origem Porta de destino Fonte Destino Protocolo Finalidade
    * 443 Sub-rede integrada ao aplicativo lógico Standard Conta de armazenamento TCP Conta de armazenamento
    * 445 Sub-rede integrada ao aplicativo lógico Standard Conta de armazenamento TCP Compartilhamento de arquivos SMB (protocolo SMB)
  • Para que os conectores gerenciados hospedados no Azure funcionem, você precisa ter uma conexão ininterrupta com o serviço de API gerenciada. Com a integração de rede virtual, verifique se nenhuma política de segurança de rede ou firewall bloqueia essas conexões. Se sua rede virtual usa um NSG (grupo de segurança de rede), uma UDR (tabela de rotas definida pelo usuário) ou um firewall, verifique se a rede virtual permite conexões de saída para todos os endereços IP do conector gerenciado na região correspondente. Caso contrário, os conectores gerenciados pelo Azure não funcionarão.

Para saber mais, consulte a seguinte documentação:

Criar e testar o fluxo de trabalho

  1. Caso ainda não tenha feito isso, crie um aplicativo lógico baseado em locatário único e um fluxo de trabalho em branco no portal do Azure.

  2. Depois que o designer abrir, adicione o gatilho de Solicitação como a primeira etapa no fluxo de trabalho.

  3. Adicione uma ação HTTP para chamar um serviço interno que não esteja disponível pela Internet e seja executado com um endereço IP privado, como 10.0.1.3.

  4. Quando terminar, salve o fluxo de trabalho.

  5. No designer, execute manualmente o fluxo de trabalho.

    A ação HTTP falha, o que é proposital e esperado porque o fluxo de trabalho é executado na nuvem e não pode acessar seu serviço interno.

Configurar integração de rede virtual

  1. No portal do Azure, no menu de recursos do aplicativo lógico, em Configurações, selecione Rede.

  2. No painel Rede, no cartão Tráfego de saída, selecione Integração VNet.

  3. No painel Integração VNet, selecione Adicionar VNet.

  4. No painel Adicionar Integração VNet, selecione a assinatura e a rede virtual que se conecta ao seu serviço interno.

    Depois de adicionar a integração de rede virtual, no painel Integração VNet, a configuração Encaminhar Tudo será habilitada por padrão. Essa configuração encaminha todo o tráfego de saída através da rede virtual. Quando essa configuração está habilitada, a configuração do aplicativo WEBSITE_VNET_ROUTE_ALL é ignorada.

  5. Se você usa o seu próprio DNS (servidor de nomes de domínio) com a rede virtual, defina a configuração do aplicativo WEBSITE_DNS_SERVER do recurso de aplicativo lógico como o endereço IP do DNS. Se você tiver um DNS secundário, adicione outra configuração de aplicativo chamada WEBSITE_DNS_ALT_SERVER e defina o valor também como o IP para o DNS.

  6. Depois que o Azure provisionar a integração de rede virtual com êxito, tente executar o fluxo de trabalho novamente.

    A ação HTTP agora é executada com êxito.

Próximas etapas