Compartilhar via


Usar endpoints privados para aplicativos do Azure App Service

Você pode usar um ponto de extremidade privado para seus aplicativos do Serviço de Aplicativo do Azure. O ponto de extremidade privado permite que os clientes localizados em sua rede privada acessem com segurança um aplicativo por meio do Link Privado do Azure. O ponto de extremidade privado usa um endereço IP do espaço de endereço da rede virtual do Azure. O tráfego de rede entre um cliente em sua rede privada e o aplicativo passa pela rede virtual e pelo Link Privado na rede de backbone da Microsoft. Essa configuração elimina a exposição da Internet pública.

Ao usar um ponto de extremidade privado para seu aplicativo, você pode:

  • Proteja seu aplicativo ao configurar o ponto de extremidade privado e desabilitar o acesso à rede pública, o que elimina a exposição pública.
  • Conecte-se com segurança ao seu aplicativo das redes locais que se conectam à rede virtual usando uma VPN ou um emparelhamento privado do ExpressRoute.
  • Evite a exfiltração de dados de sua rede virtual.

Importante

Os pontos de extremidade privados estão disponíveis para os aplicativos do Windows e do Linux, em contêineres ou não, hospedados nos seguintes planos do Serviço de Aplicativo: Básico, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (às vezes chamado de plano Elastic Premium).

Visão geral conceitual

Um ponto de extremidade privado é um adaptador de rede para seu aplicativo do Serviço de Aplicativo em uma sub-rede em sua rede virtual.

Quando você cria um ponto de extremidade privado para seu aplicativo, ele fornece conectividade segura entre clientes em sua rede privada e seu aplicativo. O ponto de extremidade privado recebe um Endereço IP do intervalo de endereços IP da sua rede virtual. A conexão entre o ponto de extremidade privado e o aplicativo usa um Link Privado seguro. O ponto de extremidade privado só é usado para o tráfego de entrada do seu aplicativo. O tráfego de saída não usa o endpoint privado. Você pode injetar tráfego de saída na sua rede em uma sub-rede diferente por meio do recurso de integração de rede virtual.

Cada slot de um aplicativo é configurado separadamente. Você pode usar até 100 pontos de extremidade privados por slot. Não é possível compartilhar um ponto de extremidade privado entre slots. O subresource nome de um slot é sites-<slot-name>.

A sub-rede que você usa para conectar o ponto de extremidade privado pode ter outros recursos nela. Você não precisa ter uma sub-rede vazia dedicada.

Você também pode implantar o ponto de extremidade privado em uma região diferente da do aplicativo.

Observação

A funcionalidade de integração de rede virtual não pode utilizar a mesma sub-rede que o ponto de extremidade privado.

Considerações de segurança

Endpoints privados e acesso público podem coexistir em um aplicativo. Para obter mais informações, confira esta visão geral das restrições de acesso.

Para garantir o isolamento, ao habilitar pontos de extremidade privados para seu aplicativo, desabilite o acesso à rede pública. Você pode habilitar vários pontos de extremidade privados em outras redes virtuais e sub-redes, incluindo redes virtuais em outras regiões.

As regras de restrição de acesso do seu aplicativo não são avaliadas quanto ao tráfego por meio do ponto de extremidade privado. Você pode eliminar o risco de exfiltração de dados da rede virtual. Remova todas as regras do grupo de segurança de rede (NSG) em que o destino é a tag internet ou os serviços do Azure.

Você pode encontrar o IP de origem do cliente nos logs HTTP da Web do seu aplicativo. Esse recurso é implementado usando o proxy TCP (protocolo de controle de transmissão), que encaminha a propriedade IP do cliente para o aplicativo. Para obter mais informações, consulte Obter informações de conexão usando o Proxy TCP v2.

Diagrama que mostra uma visão geral global dos endpoints privados do App Service.

Sistema de Nomes de Domínio (DNS)

Quando você usa o ponto de extremidade privado para aplicativos do Serviço de Aplicativo, a URL solicitada deve corresponder ao endereço do aplicativo. Por padrão, sem um ponto de extremidade privado, o nome público do seu aplicativo Web é um nome canônico para o cluster. Por exemplo, a resolução de nomes é:

Nome Tipo Valor
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 192.0.2.13

Quando você implanta um ponto de extremidade privado, a abordagem atualiza a entrada DNS (sistema de nomes de domínio) para apontar para o nome canônico: mywebapp.privatelink.azurewebsites.net. Por exemplo, a resolução de nomes é:

Nome Tipo Valor Comentário
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 192.0.2.13 <--Esse IP público não é seu ponto de extremidade privado. Você recebe um erro 403.

Você precisa configurar um servidor DNS privado ou uma zona privada do DNS do Azure. Para testes, você pode modificar a entrada de host do seu computador de teste. A zona DNS que você precisa criar é: privatelink.azurewebsites.net. Marque o registro do seu aplicativo com um registro A e o IP do ponto de extremidade privado. Com os Grupos de Zona DNS Privados do Azure, os registros DNS são adicionados automaticamente à zona DNS privada.

Por exemplo, a resolução de nomes é:

Nome Tipo Valor Comentário
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--O Azure cria essa CNAME entrada no DNS Público do Azure para apontar o endereço do aplicativo para o endereço do ponto de extremidade privado.
mywebapp.privatelink.azurewebsites.net A 10.10.10.8 <<--Você gerencia essa entrada em seu sistema DNS para apontar para seu endereço IP do ponto de extremidade privado.

Ao fazer essa configuração de DNS, você pode acessar seu aplicativo privativamente com o nome padrão mywebapp.azurewebsites.net. Você precisa usar esse nome, pois o certificado padrão é emitido para *.azurewebsites.net.

Nome de domínio personalizado

Se você precisar usar um nome de domínio personalizado, adicione o nome personalizado em seu aplicativo. Você deve validar o nome personalizado, como qualquer nome personalizado, usando a resolução DNS pública. Para mais informações, consulte validação DNS personalizada.

Em sua zona DNS personalizada, você precisa atualizar o registro DNS para apontar para o endpoint privado. Se seu aplicativo já estiver configurado com resolução DNS para o nome do host padrão, a maneira preferida é adicionar um CNAME registro para o domínio personalizado que aponta para mywebapp.azurewebsites.net. Se você quiser apenas que o nome de domínio personalizado seja resolvido para o ponto de extremidade privado, você poderá adicionar um registro A diretamente com o IP do ponto de extremidade privado.

Ponto de extremidade kudu/scm

Para o console do Kudu ou a API REST do Kudu (para implantação com agentes auto-hospedados do Azure DevOps Services, por exemplo), você deve criar um segundo registro apontando para o IP do ponto de extremidade privado em sua zona privada DNS do Azure ou seu servidor DNS personalizado. A primeira é para seu aplicativo e a segunda é para o SCM (gerenciamento de controle do código-fonte) do seu aplicativo. Com os grupos de Zona DNS Privada do Azure, o endpoint scm é adicionado automaticamente.

Nome Tipo Valor
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net A PrivateEndpointIP

Considerações especiais do App Service Environment v3

Para habilitar o ponto de extremidade privado para aplicativos hospedados em um plano IsolatedV2 (Ambiente do Serviço de Aplicativo v3), habilite o suporte de ponto de extremidade privado no nível do Ambiente do Serviço de Aplicativo. Você pode ativar o recurso usando o portal do Azure no painel de configuração do Ambiente do Serviço de Aplicativo ou por meio da seguinte CLI:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Requisitos específicos

Se a rede virtual estiver em uma assinatura diferente do aplicativo, verifique se a assinatura com a rede virtual está registrada no provedor de recursos Microsoft.Web. Para registrar explicitamente o provedor, veja Registrar um provedor de recursos. Você registra automaticamente o provedor ao criar o primeiro aplicativo Web em uma assinatura.

Preços

Para obter detalhes de preço, confira Preço do Link Privado do Azure.

Limitações

  • Ao usar uma função do Azure no plano Elastic Premium com um ponto de extremidade privado, você deve ter acesso direto à rede para executar a função no portal do Azure. Caso contrário, você receberá um erro HTTP 403. O navegador precisa conseguir acessar o ponto de extremidade privado para executar a função no portal do Azure.
  • Você pode conectar até 100 endpoints privados a um aplicativo específico.
  • A funcionalidade de depuração remota não está disponível por meio do ponto de extremidade privado. Recomendamos que você implante o código em um slot e o depure remotamente.
  • O acesso ao FTP é fornecido por meio do endereço IP público de entrada. Um ponto de extremidade privado não dá suporte ao acesso via FTP ao aplicativo.
  • O TLS baseado em IP não tem suporte com pontos de extremidade privados.
  • Os aplicativos configurados com pontos de extremidade privados não podem receber tráfego público proveniente de sub-redes com um Microsoft.Web ponto de extremidade de serviço habilitado e não podem usar regras de restrição de acesso baseadas em ponto de extremidade de serviço.
  • A nomenclatura do ponto de extremidade privado deve seguir as regras definidas para os recursos do tipo Microsoft.Network/privateEndpoints. Para obter mais informações, consulte Regras e restrições de nomenclatura.

Para obter informações atualizadas sobre as limitações, veja esta documentação.