Usando pontos de extremidade privados para aplicativos do Serviço de Aplicativo

Importante

O ponto de extremidade privado está disponível para aplicativos do Windows e do Linux, conteinerizados ou não, hospedados nestes Planos do Serviço de Aplicativo: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (às vezes chamado de plano Premium do Elastic).

Você pode usar o ponto de extremidade privado dos aplicativos do Serviço de Aplicativo para permitir que os clientes localizados na sua rede privada acessem o aplicativo com segurança pelo 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 na rede privada e o aplicativo atravessa a rede virtual e um Link Privado na rede principal da Microsoft, eliminando a exposição na Internet pública.

O uso do ponto de extremidade privado para o seu aplicativo permite:

  • Proteja seu aplicativo configurando o ponto de extremidade privado e desabilite o acesso à rede pública para eliminar 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 ExpressRoute.
  • Evite a exfiltração de dados de sua rede virtual.

Visão geral conceitual

Um ponto de extremidade privado é um adaptador de rede especial do Serviço de Aplicativo em uma sub-rede na 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 usará esse ponto de extremidade privado. Você pode injetar tráfego de saída na 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 conectar até 100 pontos de extremidade privados por slot. Não é possível compartilhar um ponto de extremidade privado entre slots. O nome do sub-recurso de um slot é sites-<slot-name>.

A sub-rede na qual você conecta o ponto de extremidade privado pode ter outros recursos, não é necessária 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

O recurso de integração de rede virtual não pode usar a mesma sub-rede que o ponto de extremidade privado. Essa é uma limitação do recurso de integração de rede virtual.

Do ponto de vista da segurança:

  • O ponto de extremidade privado e o acesso público podem coexistir em um aplicativo. Para obter mais informações, confira Visão geral das restrições de acesso
  • Ao habilitar pontos de extremidade privados para seu aplicativo, verifique se o acesso à rede pública está desabilitado para garantir o isolamento.
  • 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ções 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 dos dados da rede virtual removendo todas as regras de NSG em que o destino é marcar a Internet ou serviços do Azure.

Nos logs HTTP da Web do seu aplicativo, você encontra o IP de origem do cliente. Esse recurso é implementado usando o protocolo TCP Proxy, encaminhando a propriedade IP do cliente até o aplicativo. Para obter mais informações, consulte Obtendo informações de conexão usando o TCP Proxy v2.

App Service app private endpoint global overview

DNS

Quando você usa o Ponto de Extremidade Privado para aplicativos do Serviço de Aplicativo, a URL solicitada deve corresponder ao nome do seu aplicativo. Por padrão, mywebappname.azurewebsites.net.

Por padrão, sem o 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 Um 40.122.110.154

Quando você implanta um ponto de extremidade privado, atualizamos a entrada DNS 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 Um 40.122.110.154 <: esse IP público não é o ponto de extremidade privado. Você receberá 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. Por exemplo, a resolução de nomes é:

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

Após essa configuração de DNS, você pode acessar seu aplicativo de forma privada com o nome padrão mywebappname.azurewebsites.net. Você deve usar esse nome, pois o certificado padrão é emitido para *.azurewebsites.net.

Caso precise usar um nome DNS personalizado, adicione o nome personalizado no seu aplicativo e valide o nome personalizado como qualquer nome personalizado usando a resolução de DNS público. Para mais informações, consulte validação DNS personalizada.

Para o console do Kudu ou a API REST do Kudu (implantação com os agentes auto-hospedados do Azure DevOps, por exemplo), deve-se criar dois registros na zona privada do DNS do Azure ou no servidor DNS personalizado que apontam para o IP do ponto de extremidade privado. A primeira é para seu aplicativo, o segundo é para o SCM do seu aplicativo.

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

Consideração especial do Ambiente do Serviço de Aplicativo v3

Para habilitar o ponto de extremidade privado para aplicativos hospedados em um plano IsolatedV2 (Ambiente do Serviço de Aplicativo v3), você precisa habilitar o suporte de ponto de extremidade privado no nível de Ambiente do Serviço de Aplicativo. É possível ativar o recurso pelo portal do Azure no painel de configuração do Ambiente do Serviço de Aplicativo ou por meio da CLI a seguir:

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, certifique-se de registrar a assinatura com a rede virtual para o provedor de recursos Microsoft.Web. Você pode registrar explicitamente o provedor seguindo esta documentação, mas você também registrará o provedor automaticamente 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 Elástico Premium com um ponto de extremidade privado para executar a função no portal do Azure, você precisa ter acesso direto à rede ou receberá um erro HTTP 403. Em outras palavras, seu navegador deve ser capaz de acessar o ponto de extremidade Privado para executar a função no portal do Azure.
  • Você pode conectar até 100 pontos de extremidade privados a um aplicativo específico.
  • A funcionalidade de Depuração Remota não fica disponível por meio do ponto de extremidade privado. A recomendação é implantar o código em um slot e depurá-lo remotamente.
  • O acesso ao FTP é fornecido por meio do endereço IP público de entrada. O ponto de extremidade privado não dá suporte ao acesso FTP ao aplicativo.
  • O SSL baseado em IP não dá suporte com pontos de extremidade privados.
  • Os aplicativos configurados com pontos de extremidade privados não podem usar regras de restrição de acesso baseadas em ponto de extremidade de serviço.
  • A nomenclatura de ponto de extremidade privado deve seguir as regras definidas para recursos do tipo Microsoft.Network/privateEndpoints. As regras de nomenclatura podem ser encontradas aqui.

Estamos melhorando o recurso de Link Privado do Azure e o ponto de extremidade privado regularmente, marque este artigo para obter informações atualizadas sobre as limitações.

Próximas etapas