Planejar e implementar a integração de rede para Serviço de Aplicativo do Azure e Azure Functions
Com as redes virtuais do Azure, você pode colocar muitos dos seus recursos do Azure em uma rede não roteável para a Internet. O recurso de integração de rede virtual do Serviço de Aplicativo permite que os seus aplicativos acessem recursos em uma rede virtual ou por meio dela.
O Serviço de Aplicativo tem duas variações:
- Os tipos de preço de computação dedicados, que incluem Básico, Standard, Premium, Premium v2 e Premium v3.
- O Ambiente do Serviço de Aplicativo, que é implantado diretamente em sua rede virtual com infraestrutura de suporte dedicada e está usando os tipos de preço Isolado e Isolado v2.
O recurso de integração de rede virtual é usado nos tipos de preço de computação dedicada do Serviço de Aplicativo do Azure. Se seu aplicativo estiver em um Ambiente do Serviço de Aplicativo, já está integrado a uma rede virtual e não exigirá que você configure o recurso de integração de rede virtual para acessar recursos na mesma rede virtual.
A Integração de rede virtual concede ao seu aplicativo acesso a recursos da sua rede virtual, mas não permite acesso privado de entrada ao seu aplicativo por meio da rede virtual. Acesso ao site privado significa tornar seu aplicativo acessível somente de uma rede privada, como de dentro de uma rede virtual do Azure. A integração de rede virtual é usada apenas para fazer chamadas de saída do aplicativo para a rede virtual.
O recurso de integração de rede virtual:
- Exige um tipo de preço do Serviço de Aplicativo Básico ou Standard com suporte, Premium, Premium v2, Premium v3 ou Premium Elástico.
- Dá suporte a TCP e UDP.
- Funciona com aplicativos do Serviço de Aplicativo, aplicativos de funções e aplicativos lógicos.
Há algumas coisas às quais a integração de rede virtual não dá suporte, incluindo:
- A montagem de uma unidade.
- Ingresso no domínio do Windows Server Active Directory.
- NetBIOS.
A integração de rede virtual dá suporte à conexão a uma rede virtual na mesma região. O uso da integração de rede virtual permite que seu aplicativo acesse:
- Recursos na rede virtual com a qual você está integrado.
- Recursos em redes virtuais emparelhadas com a rede virtual à qual seu aplicativo está integrado, incluindo conexões de emparelhamento global.
- Recursos nas conexões do Azure ExpressRoute.
- Serviços protegidos por ponto de extremidade de serviço.
- Serviços habilitados para ponto de extremidade privado.
Usando a integração de rede virtual, você pode usar os seguintes recursos de rede do Azure:
- NSGs (grupos de segurança de rede) : você pode bloquear o tráfego de saída com um NSG que é colocado em sua sub-rede de integração. As regras de entrada não se aplicam porque você não pode usar a integração de rede virtual para fornecer acesso de entrada ao seu aplicativo.
- UDRs (tabelas de rotas) : você pode inserir uma tabela de rotas na sub-rede de integração para enviar o tráfego de saída para onde desejar.
- Gateway da NAT: você pode usar o gateway da NAT para obter um IP de saída dedicado e atenuar o esgotamento da porta SNAT.
Como funciona a integração de rede virtual
Os aplicativos do Serviço de Aplicativo são hospedados em funções de trabalho. A integração de rede virtual funciona por meio da montagem de interfaces virtuais nas funções de trabalho com endereços na sub-rede delegada. As interfaces virtuais usadas não são recursos aos quais os clientes têm acesso direto. Como o endereço de origem está em sua rede virtual, ela pode acessar a maioria das coisas em ou por meio de sua rede virtual, como uma VM em sua rede virtual faria.
Quando a integração de rede virtual está habilitada, seu aplicativo faz chamadas de saída por meio de sua rede virtual. Os endereços de saída listados no portal de propriedades do aplicativo são os endereços ainda usados pelo seu aplicativo. No entanto, se a chamada de saída for para uma máquina virtual ou ponto de extremidade privado na rede virtual de integração ou emparelhada, o endereço de saída será um endereço da sub-rede de integração. O IP privado atribuído a uma instância é exposto por meio da variável de ambiente, WEBSITE_PRIVATE_IP.
Quando todo o roteamento de tráfego está habilitado, todo o tráfego de saída é enviado para sua rede virtual. Se todo o roteamento de tráfego não estiver habilitado, somente o tráfego privado (RFC1918) e os pontos de extremidade de serviço configurados na sub-rede de integração serão enviados à rede virtual. O tráfego de saída para a Internet é roteado diretamente pelo aplicativo.
Para os planos do Serviço de Aplicativo do Windows, o recurso de integração de rede virtual dá suporte a duas interfaces virtuais por trabalho. Duas interfaces virtuais por trabalho significa duas integrações de rede virtual por Plano do Serviço de Aplicativo. Em outras palavras, um plano de Serviço de Aplicativo do Windows pode ter integrações de rede virtual com até duas sub-redes/redes virtuais. Os aplicativos no mesmo plano de Serviço de Aplicativo só podem usar uma das integrações de rede virtual a uma sub-rede específica, o que significa que um aplicativo só pode ter uma única integração de rede virtual em um determinado momento. Os planos de Serviço de Aplicativo do Linux dão suporte apenas a uma integração de rede virtual por plano.
Requisitos de sub-rede
A integração de rede virtual depende de uma sub-rede dedicada. Quando você cria uma sub-rede, a sub-rede do Azure consome cinco IPs desde o início. Um endereço da sub-rede de integração é usado para cada instância do Plano do Serviço de Aplicativo. Se você dimensionar seu aplicativo para quatro instâncias, quatro endereços serão usados.
Quando você aumenta/reduz verticalmente em tamanho ou expande/reduz em número de instâncias, o espaço de endereço necessário é dobrado por um curto período de tempo. A operação de escala adiciona o mesmo número de novas instâncias e, em seguida, exclui as instâncias existentes. A operação de escala afeta as instâncias reais disponíveis, com suporte, para um determinado tamanho de sub-rede. As atualizações da plataforma precisam de endereços IP gratuitos para garantir que as atualizações possam ocorrer sem interrupções no tráfego de saída. Por fim, após a conclusão das operações de ampliação e redução, pode demorar um curto período de tempo para que os endereços IP sejam liberados.
Como o tamanho da sub-rede não pode ser alterado após a atribuição, use uma sub-rede que seja grande o suficiente para acomodar qualquer escala que seu aplicativo possa alcançar. Você também deve reservar endereços IP para atualizações da plataforma. Para evitar problemas com a capacidade de sub-rede, use um /26
com 64 endereços. Ao criar sub-redes no portal do Azure como parte da integração com a rede virtual, um tamanho mínimo de /27 é necessário. Se a sub-rede já existir antes da integração por meio do portal, será possível usar uma sub-rede /28.
Observação
Os Contêineres do Windows usam um endereço IP adicional por aplicativo para cada instância de Plano do Serviço de Aplicativo e você precisa dimensionar a sub-rede adequadamente. Se você tiver, por exemplo, 10 instâncias de Plano do Serviço de Aplicativo do Contêiner do Windows com 4 aplicativos em execução, serão necessários 50 endereços IP e endereços adicionais para dar suporte à escala horizontal (entrada/saída).
Exemplo de cálculo:
para cada instância do Plano do Serviço de Aplicativo, você precisará:
- 4 aplicativos do Contêiner do Windows = 4 endereços IP
- 1 endereço IP por instância do Plano do Serviço de Aplicativo
- 4 + 1 = 5 endereços IP
Para 10 instâncias:
- 5 x 10 = 50 endereços IP por Plano do Serviço de Aplicativo
Como você tem 1 Plano do Serviço de Aplicativo, 1 x 50 = 50 endereços IP.
Quando você quiser que os aplicativos no plano acessem uma rede virtual que já esteja conectada com aplicativos em outro plano, selecione uma sub-rede diferente daquela que estiver sendo usada pela integração de rede virtual preexistente.
Permissões
Você deve ter pelo menos as seguintes permissões de controle de acesso baseado em função na sub-rede ou em um nível superior para configurar a integração de rede virtual por meio de portal do Azure, CLI ou ao definir a propriedade virtualNetworkSubnetId
do site diretamente:
Ação | Descrição |
---|---|
Microsoft.Network/virtualNetworks/read | Ler a definição de rede virtual |
Microsoft.Network/virtualNetworks/subnets/read | Ler uma definição de sub-rede de rede virtual |
Microsoft.Network/virtualNetworks/subnets/join/action | Ingressar em uma rede virtual |
Rotas
Você pode controlar qual tráfego passa pela integração de rede virtual. Há três tipos de roteamento a serem considerados quando a integração de rede virtual é configurada. O roteamento de aplicativo define qual tráfego é roteado do aplicativo para a rede virtual. O roteamento de configuração afeta as operações que ocorrem antes ou durante a inicialização do aplicativo. Entre os exemplos estão o pull de imagem de contêiner e as configurações de aplicativo com referência do Key Vault. O roteamento de rede é a capacidade de tratar como o tráfego do aplicativo e da configuração é roteado da rede virtual e para fora dela.
Por meio de opções de roteamento de configuração ou de roteamento de aplicativo, é possível configurar o tráfego enviado por meio da integração de rede virtual. O tráfego só estará sujeito ao roteamento de rede se for enviado por meio da integração de rede virtual.
Roteamento da solicitação de emprego
O roteamento de aplicativo se aplica ao tráfego enviado do aplicativo depois que ele é iniciado. Confira Roteamento de configuração para ver o tráfego durante a inicialização. Ao configurar o roteamento de aplicativos, é possível rotear todo o tráfego ou apenas o tráfego privado (também conhecido como tráfego RFC1918) para sua rede virtual. Configure esse comportamento por meio da configuração de tráfego de saída da Internet. Se o roteamento de tráfego de saída da Internet estiver desabilitado, seu aplicativo só roteará o tráfego privado à rede virtual. Se quiser rotear todo o tráfego de aplicativos de saída para a rede virtual, verifique se o tráfego de saída da Internet está habilitado.
- Somente o tráfego configurado no roteamento de aplicativo ou de configuração está sujeito aos NSGs e às UDRs aplicados à sub-rede de integração.
- Quando o roteamento do tráfego de saída da Internet está habilitado, o endereço de origem do tráfego de saída do aplicativo ainda é um dos endereços IP listados nas propriedades do aplicativo. Se você rotear o tráfego por meio de um firewall ou um gateway da NAT, o endereço IP de origem se origina desse serviço.
Saiba como configurar o roteamento de aplicativos.
Observação
Há suporte para conectividade SMTP de saída (porta 25) para Serviço de Aplicativo, quando o tráfego SMTP é encaminhado por meio da integração de rede virtual. A capacidade de suporte é determinada por uma configuração na assinatura em que a rede virtual é implantada. Para redes virtuais/sub-redes criadas antes de 1º de agosto de 2022, você precisa iniciar uma alteração de configuração temporária na rede virtual/sub-rede para que a configuração seja sincronizada com base na assinatura. Um exemplo seria adicionar uma sub-rede temporária, associar/dissociar um NSG temporariamente ou configurar um ponto de extremidade de serviço provisoriamente. Para saber mais, confira Solucionar problemas de conectividade de SMTP de saída no Azure.
Roteamento de configuração
Ao usar a integração de rede virtual, é possível configurar como partes do tráfego de configuração são gerenciadas. Por padrão, o tráfego de configuração passa diretamente pela rota pública, mas para os componentes individuais mencionados, é possível configurá-lo ativamente para ser roteado por meio da integração de rede virtual.
Compartilhamento de Conteúdo
Colocar seu armazenamento para o conteúdo frequentemente usado no Functions em que o compartilhamento de conteúdo é configurado como parte do aplicativo Functions.
Para rotear o tráfego de compartilhamento de conteúdo por meio da integração de rede virtual, você deve garantir que a configuração de roteamento esteja configurada. Saiba como configurar o roteamento de compartilhamento de conteúdo.
Além de configurar o roteamento, você também deve garantir que qualquer firewall ou grupo de segurança de rede configurado no tráfego da sub-rede permita o tráfego para as portas 443 e 445.
Pull de imagem de contêiner
Ao usar contêineres personalizados, você pode efetuar pull do contêiner na integração de rede virtual. Para rotear o tráfego pull do contêiner por meio da integração de rede virtual, você deve garantir que a configuração de roteamento esteja configurada. Saiba como configurar um roteamento de pull de imagem.
Backup/restauração
O Serviço de Aplicativo tem backup/restauração internos, mas se você quiser fazer o backup em sua própria conta de armazenamento, poderá usar o recurso de backup/restauração personalizado. Se quiser rotear o tráfego para a conta de armazenamento por meio da integração de rede virtual, defina a configuração de rota. Não há suporte para backup de banco de dados na integração de rede virtual.
Configurações de aplicativo usando as referências do Key Vault
As configurações de aplicativo que usam referenciar do Key Vault tentam obter segredos pela rota pública. Se o Key Vault estiver bloqueando o tráfego público e o aplicativo estiver usando a integração de rede virtual, será feita uma tentativa de obter os segredos por meio da integração de rede virtual.
- Atualmente, não há suporte para configurar certificados SSL/TLS de Key Vaults privados
- No momento, não há suporte para Logs de Serviço de Aplicativo para contas de armazenamento privadas. É recomendável usar o log de diagnóstico e permitir serviços confiáveis para a conta de armazenamento.
Configurações do aplicativo de roteamento
O Serviço de Aplicativo tem configurações de aplicativo existentes para definir o roteamento de configuração e aplicativo. As propriedades do site substituirão as configurações do aplicativo se ambas existirem. As propriedades do site têm a vantagem de serem auditáveis com o Azure Policy e validadas no momento da configuração. Recomendamos que você use as propriedades do site.
Você ainda pode usar a configuração de aplicativo WEBSITE_VNET_ROUTE_ALL existente para configurar o roteamento de aplicativos.
As configurações do aplicativo também existem para algumas opções de roteamento de configuração. Essas configurações de aplicativo são nomeadas WEBSITE_CONTENTOVERVNET
e WEBSITE_PULL_IMAGE_OVER_VNET
.
Roteamento de rede
Você pode usar tabelas de rotas para encaminhar o tráfego de saída do aplicativo, sem restrições. Os destinos comuns podem incluir dispositivos de firewall ou gateways. Também é possível usar um NSG (grupo de segurança de rede) para bloquear o tráfego de saída para recursos em sua rede virtual ou na Internet. Um NSG aplicado à sub-rede de integração entra em vigor independentemente das tabelas de rotas aplicadas à sub-rede de integração.
As tabelas de rotas e os grupos de segurança de rede se aplicam somente ao tráfego encaminhado por meio da integração de rede virtual. Confira Roteamento de aplicativo e Roteamento de configuração para obter detalhes. As rotas não se aplicam a respostas de solicitações de aplicativo de entrada e as regras de entrada em um NSG não se aplicam ao seu aplicativo. A integração de rede virtual afeta apenas o tráfego de saída do seu aplicativo. Para controlar o tráfego de entrada para seu aplicativo, use a funcionalidade de restrições de acesso ou os pontos de extremidade privados.
Ao configurar grupos de segurança de rede ou tabelas de rotas que se aplicam ao tráfego de saída, você deve considerar as dependências do aplicativo. As dependências do aplicativo incluem os pontos de extremidade que seu aplicativo precisa durante o runtime. Além das APIs e dos serviços que o aplicativo está chamando, esses pontos de extremidade também podem ser pontos de extremidade derivados, como pontos de extremidade de verificação da CRL (lista de certificados revogados) e pontos de extremidade de identidade/autenticação, por exemplo, Microsoft Entra ID. Ao usar a implantação contínua no Serviço de Aplicativo, também pode ser preciso permitir pontos de extremidade dependendo do tipo e do idioma. Especificamente para a implantação contínua do Linux, é necessário permitir oryx-cdn.microsoft.io:443
. Para Python, além disso, você precisa usar allow files.pythonhosted.org, pypi.org
.
Quando você quiser rotear o tráfego de saída local, use uma tabela de rotas para enviar o tráfego de saída para o gateway do Azure ExpressRoute. Se você rotear o tráfego para um gateway, defina rotas na rede externa para enviar respostas. As rotas de BGP (Border Gateway Protocol) também afetam o tráfego do aplicativo. Se você tiver rotas de BGP de, por exemplo, um gateway de ExpressRoute, o tráfego de saída do aplicativo será afetado. Semelhante às rotas definidas pelo usuário, as rotas BGP afetam o tráfego de acordo com a configuração no escopo de roteamento.
Pontos de extremidade de serviço
A integração de rede virtual permite que você alcance os serviços do Azure que são protegidos com pontos de extremidade de serviço. Para acessar um serviço protegido por ponto de extremidade de serviço, siga estas etapas:
- Configure a integração de rede virtual com seu aplicativo Web para se conectar a uma sub-rede específica para integração.
- Vá para o serviço de destino e configure os pontos de extremidade de serviço em relação à sub-rede de integração.
Pontos de extremidade privados
Se você quiser fazer chamadas para pontos de extremidade privados, verifique se as pesquisas de DNS são resolvidas para o ponto de extremidade privado. Você pode impor esse comportamento de uma das seguintes maneiras:
- Integrar com as zonas privadas do DNS do Azure. Quando a rede virtual não tem um servidor DNS personalizado, a integração é feita automaticamente quando as zonas são vinculadas à rede virtual.
- Gerenciar o ponto de extremidade privado no servidor DNS usado pelo seu aplicativo. Para gerenciar a configuração, você precisa saber o endereço IP do ponto de extremidade privado. Em seguida, aponte o ponto de extremidade que você está tentando alcançar para esse endereço usando um registro A.
- Configure seu próprio servidor DNS para encaminhar para as zonas privadas do DNS do Azure.
Zonas privadas do DNS do Azure
Depois que seu aplicativo se integra à sua rede virtual, ele usa o mesmo servidor DNS com o qual a sua rede virtual está configurada. Se nenhum DNS personalizado for especificado, ele usará o DNS padrão do Azure e as zonas privadas vinculadas à rede virtual.
Limitações
Há algumas limitações para o uso da integração de rede virtual:
- O recurso está disponível em todas as implantações do Serviço de Aplicativo em Premium v2 e Premium v3. Ele também está disponível no tipo Básico e no Standard, mas somente em implantações mais recentes do Serviço de Aplicativo. Se você estiver usando uma implantação mais antiga, só poderá usar o recurso em um plano do Serviço de Aplicativo Premium v2. Se você quiser ter certeza de que pode usar o recurso em um plano de Serviço de Aplicativo Básico ou Padrão, crie seu aplicativo em um plano de Serviço de Aplicativo Premium v3. Só há suporte para esses planos nas implantações mais recentes. Se desejar, você poderá reduzir verticalmente depois que o plano for criado.
- O recurso não está disponível para aplicativos do plano Isolado em um Ambiente do Serviço de Aplicativo.
- Você não pode acessar recursos em conexões de emparelhamento com Redes Virtuais Clássicas.
- O recurso requer uma sub-rede não utilizada que seja um bloco IPv4/28 ou maior em uma rede virtual do Azure Resource Manager. O MPSJ exige um bloco /26 ou maior.
- O aplicativo e a rede virtual precisam estar na mesma região.
- A rede virtual de integração não pode ter espaços de endereço IPv6 definidos.
- Não é possível ter políticas de ponto de extremidade de serviço habilitadas na sub-rede de integração.
- Você não pode excluir uma rede virtual com um aplicativo integrado. Remova a integração antes de excluir a rede virtual.
- Você não pode ter mais de duas integrações de rede virtual por plano do Serviço de Aplicativo. Vários aplicativos no mesmo Plano do Serviço de Aplicativo podem usar a mesma integração de rede virtual.
- Você não pode alterar a assinatura de um aplicativo ou plano enquanto há um aplicativo usando a integração de rede virtual.
Acessar recursos locais
Nenhuma configuração extra é necessária para que o recurso de integração de rede virtual acesse a rede virtual até os recursos locais. Você apenas precisa conectar sua rede virtual aos recursos locais usando o ExpressRoute ou uma VPN site a site.
Emparelhamento
Se você usar o emparelhamento com a integração de rede virtual, não precisará fazer mais nenhuma configuração.
Gerenciar a integração de rede virtual
A conexão e a desconexão com uma rede virtual estão no nível do aplicativo. As operações que podem afetar a integração de rede virtual entre vários aplicativos estão no nível do Plano do Serviço de Aplicativo. No aplicativo, Rede, portal de integração de VNet, você pode obter detalhes sobre sua rede virtual. Você pode ver informações semelhantes no nível do plano do Serviço de Aplicativo no Plano do Serviço de Aplicativo, Rede, portal de Integração de VNet.
Na exibição de aplicativo da instância de integração de rede virtual, você pode desconectar seu aplicativo da rede virtual e configurar o roteamento de aplicativos. Para desconectar o aplicativo de uma rede virtual, selecione Desconectar. Seu aplicativo é reiniciado quando você se desconecta de uma rede virtual. Desconectar-se não altera a rede virtual. A sub-rede não será removida. Caso deseje excluir sua rede virtual, primeiro desconecte seu aplicativo da rede virtual.
O IP privado atribuído à instância é exposto por meio da variável de ambiente, WEBSITE_PRIVATE_IP. A interface do usuário do console do Kudu também mostra a lista de variáveis de ambiente disponíveis para o aplicativo Web. Esse IP é atribuído por meio do intervalo de endereços da sub-rede integrada. Esse IP é usado pelo aplicativo Web para se conectar aos recursos por meio da rede virtual do Azure.
Observação
O valor de WEBSITE\_PRIVATE\_IP está associado à alteração. No entanto, ele será um IP dentro do intervalo de endereços da sub-rede de integração, portanto, você precisará permitir o acesso de todo o intervalo de endereços.
Detalhes de preço
O recurso de integração de rede virtual não tem nenhum custo extra para uso além dos custos do tipo de preço do Plano do Serviço de Aplicativo.
Solução de problemas
Embora o recurso seja fácil de configurar, isso não significa que sua experiência estará livre de problemas. Se você encontrar problemas para acessar o ponto de extremidade desejado, há várias etapas que você pode executar dependendo do que estiver observando. Para saber mais, confira o guia de solução de problemas de integração de rede virtual.
- Não há suporte para a integração de rede virtual em cenários do Docker Compose no Serviço de Aplicativo.
- As restrições de acesso não se aplicam ao tráfego que chega por meio de um ponto de extremidade privado.
Como excluir o plano do Serviço de Aplicativo ou o aplicativo antes de desconectar a integração de rede
Se você excluiu o aplicativo ou o plano do Serviço de Aplicativo antes de desconectar a integração de rede virtual, não poderá fazer operações de atualização/exclusão na rede virtual ou na sub-rede usada para a integração com o recurso excluído. Uma delegação de sub-rede 'Microsoft.Web/serverFarms' permanece atribuída à sua sub-rede e impede as operações de atualização/exclusão.
Para atualizar/excluir a sub-rede ou a rede virtual novamente, você precisa criar novamente a integração de rede virtual e desconectá-la:
- Crie o plano do Serviço de Aplicativo e o aplicativo (é obrigatório usar exatamente o mesmo nome do aplicativo Web anterior).
- Navegue até Rede no aplicativo no portal do Azure e configure a integração de rede virtual.
- Depois que a integração de rede virtual estiver configurada, escolha o botão "Desconectar".
- Exclua o plano do Serviço de Aplicativo ou o aplicativo.
- Atualize ou exclua a sub-rede ou a rede virtual.