Usando pontos de extremidade privados para aplicativos do Serviço de Aplicativo
Nota
A partir de 1º de junho de 2024, todos os aplicativos do Serviço de Aplicativo recém-criados terão a opção de gerar um nome de host padrão exclusivo usando a convenção <app-name>-<random-hash>.<region>.azurewebsites.net
de nomenclatura. Os nomes de aplicativos existentes permanecerão inalterados.
Exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obter mais detalhes, consulte Nome de host padrão exclusivo para recurso do Serviço de Aplicativo.
Importante
O ponto de extremidade privado está disponível para aplicativos Windows e Linux, em contêineres ou não, hospedados nestes planos do Serviço de Aplicativo: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (às vezes referido como o plano Elastic Premium).
Você pode usar o ponto de extremidade privado para seus aplicativos do Serviço de Aplicativo para permitir que os clientes localizados em sua rede privada acessem o aplicativo com segurança pelo Azure Private Link. O ponto de extremidade privado usa um endereço IP do seu espaço de endereço de rede virtual do Azure. O tráfego de rede entre um cliente na sua rede privada e a aplicação atravessa a rede virtual e uma ligação privada na rede de backbone da Microsoft, eliminando a exposição da Internet pública.
O uso do ponto de extremidade privado para seu aplicativo permite que você:
- 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 a partir de redes locais que se conectam à rede virtual usando uma VPN ou emparelhamento privado da Rota Expressa.
- Evite qualquer exfiltração de dados da sua rede virtual.
Descrição geral conceptual
Um ponto de extremidade privado é uma interface de rede (NIC) especial 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 é usado apenas para o tráfego de entrada para seu aplicativo. O tráfego de saída não usa esse ponto de extremidade privado. Você pode injetar tráfego de saída para sua rede em uma sub-rede diferente por meio do recurso de integração de rede virtual.
Cada slot de um aplicativo é configurado separadamente. Pode ligar até 100 terminais privados por slot. Não é possível compartilhar um ponto de extremidade privado entre slots. O nome do subrecurso de um slot é sites-<slot-name>
.
A sub-rede onde você conecta o ponto de extremidade privado pode ter outros recursos, você não precisa de uma sub-rede vazia dedicada. Você também pode implantar o ponto de extremidade privado em uma região diferente do seu aplicativo.
Nota
O recurso de integração de rede virtual não pode usar a mesma sub-rede como ponto de extremidade privado, esta é uma limitação do recurso de integração de rede virtual.
Do ponto de vista da segurança:
- Ponto de extremidade privado e acesso público podem coexistir em um aplicativo. Para obter mais informações, consulte 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 rede virtual em outras regiões.
- As regras de restrições de acesso do seu aplicativo não são avaliadas quanto ao tráfego através do ponto de extremidade privado.
- Você pode eliminar o risco de exfiltração de dados da rede virtual removendo todas as regras do NSG (Grupo de Segurança de Rede) em que o destino é marcar serviços da Internet ou 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 para o aplicativo. Para obter mais informações, consulte Obtendo informações de conexão usando o proxy TCP v2.
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 defeito <app-name>.azurewebsites.net
. Quando você estiver usando o nome de host padrão exclusivo, o nome do aplicativo terá o formato <app-name>-<random-hash>.<region>.azurewebsites.net
. Nos exemplos abaixo , mywebapp também pode representar o nome de host exclusivo regionalizado completo.
Por padrão, sem 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 | 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 | Observação |
---|---|---|---|
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 | 40.122.110.154 | <--Este IP público não é o seu ponto de extremidade privado, você recebe um erro 403 |
Você deve configurar um servidor DNS privado ou uma zona privada do DNS do Azure. Para testes, você pode modificar a entrada de host de sua máquina de teste. A zona DNS que você precisa criar é: privatelink.azurewebsites.net. Registre o registro para seu aplicativo com um registro A e o IP do ponto de extremidade privado. Por exemplo, a resolução de nomes é:
Nome | Tipo | valor | Observação |
---|---|---|---|
mywebapp.azurewebsites.net | CNAME | mywebapp.privatelink.azurewebsites.net | <--Azure cria essa entrada CNAME no DNS Público do Azure para apontar o endereço do aplicativo para o endereço de 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 de ponto final privado |
Após essa configuração de DNS, você pode acessar seu aplicativo de forma privada com o nome padrão mywebapp.azurewebsites.net. Você deve usar esse nome, porque o certificado padrão é emitido para *.azurewebsites.net.
Se você precisar usar um nome DNS personalizado, deverá adicionar o nome personalizado em seu aplicativo e validar o nome personalizado como qualquer nome personalizado, usando a resolução DNS pública. Para obter mais informações, consulte Validação de DNS personalizada.
Para o console do Kudu ou a API REST do Kudu (implantação com agentes autohospedados dos Serviços de DevOps do Azure, por exemplo), você deve criar dois registros apontando para o IP do ponto de extremidade privado na zona privada do DNS do Azure ou no servidor DNS personalizado. O primeiro é para o seu aplicativo, o segundo é para o SCM do seu aplicativo.
Nome | Tipo | valor |
---|---|---|
mywebapp.privatelink.azurewebsites.net | A | PrivateEndpointIP |
mywebapp.scm.privatelink.azurewebsites.net | A | 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 ao ponto de extremidade privado no nível do Ambiente do Serviço de Aplicativo. Você pode ativar o recurso pelo 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, você deverá garantir que a assinatura com a rede virtual esteja registrada para o provedor de Microsoft.Web
recursos. Você pode registrar explicitamente o provedor seguindo esta documentação , mas também registrar automaticamente o provedor quando criar o primeiro aplicativo Web em uma assinatura.
Preços
Para obter detalhes de preços, consulte Preços do Azure Private Link.
Limitações
- Quando você usa o Azure Function no plano Elastic Premium com ponto de extremidade privado, para executar ou executar a função no portal do Azure, você deve ter acesso direto à rede ou recebe um erro HTTP 403. Em outras palavras, seu navegador deve ser capaz de alcançar o ponto de extremidade privado para executar a função a partir do portal do Azure.
- Pode ligar até 100 terminais privados a uma aplicação específica.
- A funcionalidade de Depuração Remota não está disponível através do ponto de extremidade privado. A recomendação é implementar o código num bloco e depurá-lo remotamente aí.
- O acesso FTP é fornecido através do endereço IP público de entrada. O ponto de extremidade privado não suporta acesso FTP ao aplicativo.
- SSL baseado em IP não é suportado com pontos de extremidade privados.
- Os aplicativos que você configura com pontos de extremidade privados não podem receber tráfego público proveniente de sub-redes com
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 nomeação 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 a melhorar a funcionalidade de ligação privada do Azure e o ponto de extremidade privado regularmente, consulte este artigo para obter informações atualizadas sobre limitações.
Próximos passos
- Para implantar o ponto de extremidade privado para seu aplicativo por meio do portal, consulte Como se conectar de forma privada a um aplicativo com o portal do Azure
- Para implantar o ponto de extremidade privado para seu aplicativo usando a CLI do Azure, consulte Como se conectar de forma privada a um aplicativo com a CLI do Azure
- Para implantar o ponto de extremidade privado para seu aplicativo usando o PowerShell, consulte Como conectar-se de forma privada a um aplicativo com o PowerShell
- Para implantar o ponto de extremidade privado para seu aplicativo usando o modelo do Azure, consulte Como se conectar de forma privada a um aplicativo com o modelo do Azure
- Exemplo de ponta a ponta, como conectar um aplicativo front-end a um aplicativo back-end seguro com integração de rede virtual e ponto de extremidade privado com modelo ARM, veja este guia de início rápido
- Exemplo de ponta a ponta, como conectar um aplicativo front-end a um aplicativo back-end seguro com integração de rede virtual e ponto de extremidade privado com terraform, veja este exemplo