Como usar terminais privados do Azure para restringir o acesso público a WebApps

Como administrador ou arquiteto do Azure, às vezes você se pergunta: “Como podemos implantar com segurança aplicativos de negócios internos nos Serviços de Aplicativos do Azure?” 

Esses aplicativos são caracteristicamente: 

  • Não acessíveis na Internet pública. 
  • Acessíveis de dentro da rede corporativa local 
  • Acessíveis por meio de um cliente VPN autorizado de fora da rede corporativa. 

Para esses cenários, podemos usar os links privados do Azure, que permitem o acesso privado e seguro aos serviços do Azure PaaS nos pontos de extremidade privados do Azure, junto à VPN site a site, VPN ponto a site ou a Rota Expressa. Ponto de extremidade privado do Azure é um serviço de interface de rede somente leitura associado aos Serviços PAAS, e permite que você coloque sites implantados em sua rede virtual, limitando o acesso a eles no nível da rede. 

Os links privados do Azure também possibilitam o uso dos endereços privados do Azure VNet, e o associa aos Serviços de Aplicativo do Azure. Esses serviços são chamados de recursos de link privado. Eles podem ser armazenamento do Azure, Azure Cosmos DB, SQL, App Services Web App, serviços próprios / de parceiro, backups do Azure, grade de eventos, barramento de serviço do Azure ou automatizações do Azure. 

Como os serviços são protegidos por endpoints privados? 

Ao usar pontos de extremidade privados para os serviços e aplicativos no Azure, o tráfego de entrada é restrito a um recurso de link privado específico. 

O tráfego da rede viaja em uma direção, do cliente para o recurso na rede de backbone da Microsoft. A conexão com o recurso é validada pela plataforma para controle de acesso. 

Usar ponto de extremidade privado fornece segurança adicional aos recursos do Azure, fornecendo proteção de exfiltração interna que impede o acesso a outros recursos hospedados no mesmo serviço do Azure. 

Principais recursos dos pontos de extremidade privados do Azure 

Algumas das principais características dos terminais privados são as seguintes: 

Acessibilidade segura – os recursos com terminais privados podem ser acessados ​​pelos consumidores na mesma rede virtual, rede virtual com peering regional / global, bem como redes locais usando VPN ou Express Route. 

Conectividade unidirecional – as conexões de rede são unidirecionais e são iniciadas pelos consumidores para o recurso Terminal privado. As conexões não podem ser iniciadas a partir do recurso Private Link para os consumidores. 

Endereço IP consistente – quando um endpoint privado é criado para um recurso, um endereço IP privado da rede virtual é alocado dinamicamente, o que não muda e permanece consistente durante todo o ciclo de vida do recurso. 

Existência na mesma região – O endpoint privado deve ser implantado na mesma região que a rede virtual, enquanto o recurso de link privado pode ser implantado em uma região diferente. 

Limitações de endpoints privados – vários endpoints privados podem ser criados na mesma rede virtual. Pode haver 1000 pontos de extremidade privados por rede virtual e um máximo de 64000 pontos de extremidade privados por assinatura. 

Como proteger WebApp de serviços de aplicativos com endpoint privado 

1. Crie uma VPN Site a Site 

Outro trabalho importante que, como administrador do Azure ou arquiteto do Azure, você pode ter é fazer uma escolha do cliente VPN a ser usado. A organização pode pedir ajuda a você, perguntando qual cliente VPN deve ser usado para sua conectividade com o Azure. Isso ocorre nos casos em que as organizações não possuem seus próprios roteadores com endereços IP públicos. Você deve fazer uma escolha com base em sua experiência, disponibilidade, recursos e preços. 

Recentemente me deparei com uma dessas questões em que tive que fazer a escolha do cliente VPN que deveria ser usado, e minha escolha foi o Perímetro-81 porque é econômico, confiável e bom para pequenas e médias empresas. O Perimeter-81 é uma rede baseada em nuvem de confiança zero como um serviço projetado para simplificar redes seguras para a força de trabalho moderna e distribuída. Você também pode escolher qualquer outro fornecedor que forneça serviços VPN. Um ponto muito importante que eu gostaria de destacar aqui é que o Perímetro-81 é apenas uma escolha que fiz após minha pesquisa na lista de fornecedores disponíveis. A Microsoft já possui uma lista abrangente de fornecedores e você é livre para fazer qualquer escolha. 

Criar Rede Virtual no Azure 

A base básica da Infraestrutura como Serviço (IaaS) é uma Rede Virtual, dentro da qual acontecem todas as implantações de infraestrutura. É composto por sub-redes, que possuem um conjunto de endereços IP a serem alocados aos recursos que estão sendo implantados. Podemos ter sub-redes diferentes para usos diferentes. Por exemplo – podemos ter uma sub-rede para máquinas virtuais, outra para terminais privados e uma sub-rede dedicada para gateway de rede virtual. 

No Azure, a primeira etapa é criar um grupo de recursos. É um contêiner lógico dentro do qual todos os recursos são criados. Criaremos e implantaremos outros recursos após a criação do grupo de recursos, w Siga as etapas abaixo para criar 

Crie um Grupo de Recursos 

Faça login no Portal do Azure, vá para “Grupo de Recursos” e clique no botão “Adicionar”. Na página “Criar Grupo de Recursos”, escolha a assinatura, insira o nome do grupo de recursos e selecione uma região com base em sua localização. 

Clique em Revisar + Criar e depois que a validação for concluída, clique no botão Criar. 

Crie uma rede virtual 

  1. Clique em “Rede Virtual” e depois clique no botão “Adicionar” 
  2. Na página Criar Rede Virtual, execute as ações abaixo 
  3. Selecione a assinatura 
  4. Escolha o nome do Grupo de Recursos que acabou de criar na lista suspensa Grupo de Recursos 
  5. Insira um nome para a Rede Virtual 
  6. Selecione a região, onde você deseja criar sua rede virtual (é idealmente igual ao seu grupo de recursos) 
  7. Clique no botão “Próximo: Endereços IP” 

6. Na guia Endereços IP, escolha o endereço IPv4 que você deseja para sua VNet (por padrão, um endereço IP de 10.0.0.0/16 é pré-preenchido). Você pode usar o mesmo. 

7. Nas sub-redes, escolha a sub-rede padrão de 10.0.0.0/24 

8. Clique no botão Adicionar sub-rede para adicionar uma sub-rede para o ponto de extremidade privado. 

  • Forneça um nome (“pte-subnet”) para a sub-rede  
  • Forneça o intervalo de endereços IP para esta sub-rede na notação CIDR (10.0.1.0/27). O “/ 27” significa que teremos 32 endereços IP, dos quais podemos usar 27 endereços IP, já que 5 endereços são reservados. 
  • Depois que a rede virtual for implantada, vá para o recurso. 
  • Clique em Sub-redes em Configurações no menu à esquerda. 
  • Em Sub-redes, clique em “Sub-rede de gateway” para adicionar uma sub-rede a ser usada para a criação de gateway de rede virtual. 

Criar gateway de rede virtual 

Para conectar a rede local à rede virtual do Azure, criaremos o Gateway de Rede Virtual, abreviado como VNG. É usado para enviar tráfego criptografado entre a origem e o destino pela Internet pública. Ao tentar criar o VNG no Azure, você notará que a rede virtual permite que apenas uma única sub-rede de gateway seja criada. Portanto, cada rede virtual no Azure pode ter apenas um Gateway de Rede Virtual.  

Para criar o gateway virtual, clique no botão “Adicionar”, e depois em “Selecionar Assinatura”. Forneça o nome (vng-varonis) para o gateway de rede virtual. Depois, selecione a região, o tipo de gaterway e o tipo de VPN baseado em rota. 

O SKU para fins de demonstração é “VPNGw1”. A geração é Generation1 por padrão. Em seguida, selecione a rede virtual como “Varonis-vnet” no menu suspenso. 

Para o endereço IP público, selecione Criar novo e dê o nome para o endereço IP (pip-vng). As opções restantes permanecem as mesmas. 

Clique em Revisar e criar e, por fim, clique em criar. 

Criar gateway de rede local 

Para criar a VPN Site a Site, precisamos configurar o Gateway de Rede Local e, em seguida, criar a conexão entre o gateway de rede local (LNG) e o gateway de rede virtual (VNG). Conforme detalhado anteriormente, configuraremos o Perimeter-81 para LNG, que é o provedor de serviços VPN. O cliente VPN pode então ser baixado nos dispositivos móveis ou nos sistemas e se conectar à rede do Azure. 

Como já mencionado antes, a escolha do provedor de serviços VPN depende inteiramente das preferências organizacionais. Você receberá o endereço IP público e também os endereços IP privados do provedor de serviços VPN. 

O endereço IP público é usado para criar o túnel de conexão entre a rede local e a rede do Azure, enquanto os endereços IP privados são alocados para os dispositivos locais que tentam se conectar à rede do Azure usando o cliente VPN. 

Criar conexões 

Após a criação do gateway de rede local, a etapa final é criar conexões entre o gateway de rede virtual e o gateway de rede local. Isso ajuda a conectar sua rede local à rede do Azure. As conexões podem ser criadas a partir do gateway de rede virtual ou do gateway de rede local. Siga as etapas abaixo para criar conexões. 

  1. Na página do gateway de rede local, clique em Conexões nas configurações 
  2. Na página de conexões, clique no botão Adicionar 
  3. Na página Adicionar Conexão, forneça o nome da conexão (s2s-Connection) 
  4. Clique em Choose a Virtual Network Gateway e selecione o gateway de rede virtual criado anteriormente (vng-varonis) 
  5. O gateway de rede local será automaticamente selecionado para você (lng-varonis) 
  6. A chave compartilhada (PSK) é a mesma fornecida durante a configuração do cliente VPN (xxxx12345xxx) 
  7. O protocolo IKE é IKEv2 por padrão 
  8. O resto das opções serão os valores padrão. 
  9. Clique no botão Criar para criar a conexão 
  10. Você pode clicar na conexão (conexão s2s) para ver o estado atual da configuração. Depois que a conexão for estabelecida, você verá a tela abaixo, que mostra o status da conexão como “Conectada” 

2. Criar App Services WebApp 

Antes de criarmos o App Services WebApp, precisamos criar o Plano de Serviço de Aplicativo. Plano de serviço de aplicativo representa a coleção de recursos físicos para o serviço de aplicativo. Podemos ter vários aplicativos da web em um plano de serviço de aplicativo. Podemos considerar um Plano de Serviço de Aplicativo como um único recurso de computação, ou seja, uma Máquina Virtual. Portanto, para fins de cobrança, se criarmos mais de um aplicativo da web em um único Plano de Serviço de Aplicativo, ele será cobrado apenas uma vez. 

Criar plano de serviço de aplicativo 

Ao contrário, pode haver efeitos adversos no desempenho de um aplicativo se os aplicativos estiverem usando o mesmo Plano de Serviço de Aplicativo porque estarão competindo pelos mesmos recursos. Siga as etapas abaixo para configurar o Plano de Serviço de Aplicativo. 

  1. No Portal do Azure, pesquise Plano de Serviço de Aplicativo e, na página Planos de Serviço de Aplicativo, clique no botão Adicionar 
  2. Na página Criar Plano de Serviço de Aplicativo, selecione a Assinatura e o Grupo de Recursos em Detalhes do Projeto 
  3. Em Detalhes do plano de serviço de aplicativo, insira o nome do plano de serviço de aplicativo (asp-varonis) 
  4. Para sistemas operacionais, escolha Windows. Isso pode ser Linux e é uma preferência pessoal 
  5. Selecione East US2 para a região 
  6. Para a faixa de preço, selecione Premium P1V2, pois é o mínimo que você precisa selecionar para configurar o Endpoint privado para o App Services WebApp. 

Criar App Services WebApp 

Após a configuração do Plano de Serviço de Aplicativo, a próxima etapa é criar o App Services WebApp. Execute as etapas abaixo para criar um WebApp. 

  1. Na barra de pesquisa, pesquise por App Services WebApp. Clique para selecionar. 
  2. Na página de serviços de aplicativos, clique no botão Adicionar 
  3. Na página Criar Aplicativo da Web, selecione Assinatura e Grupo de Recursos 
  4. Em Detalhes da instância, forneça o nome do aplicativo da web (varonisapp). O FQDN, portanto, se tornará <appname.azurewebsites.net> (varonisapp.azurewebsites.net) 
  5. Para Publicar, selecione Código 
  6. Selecione ASP.Net 4.8 em Runtime stack. Isso seria diferente, quando você escolhe Linux como sistema operacional ao criar o plano de serviço de aplicativo 
  7. No Plano de Serviço de Aplicativo, o Plano do Windows, bem como o Sku e o tamanho serão preenchidos se você tiver o Plano de Serviço de Aplicativo já criado. 
  8. Clique em Revisar e criar e após a validação, clique no botão Criar 

Criar endpoint privado no WebApp 

Após a configuração do Web App, é finalmente hora de criar o Endpoint privado. Execute as etapas a seguir para configurar o Endpoint privado para o aplicativo da web. 

  1. Vá para o aplicativo da web criado acima (varonisapp.azurewebsites.net) 
  2. Na navegação à esquerda, clique em Rede em Configuraçõesapp hero 
  3. Na página Networking do Web App, clique em “Configurar suas conexões de endpoint híbrido” em “Conexões de endpoint privadas”criar PE 
  4. Na página de conexões de endpoints privados, clique no botão Adicionar 
  5. No pop-up Adicionar ponto de extremidade privado, forneça um nome para o ponto de extremidade privado (pte-varonisapp) 
  6. Escolha a assinatura, rede virtual (Varonis-vnet) e a sub-rede (pte-sub-rede) 
  7. Escolha Sim para integrar com uma zona DNS privada. Seu ponto de extremidade privado será integrado à zona DNS privada ‘privatelink.azurewebsites.net’ no grupo de recursos da sub-rede selecionada. Se a zona DNS privada não existir, ela será criada automaticamente 
  8. Clique em OK para implantar o Endpoint privado para o aplicativo da webConexões  
  9. Depois que o endpoint privado foi configurado, clique no nome do endpoint privado para ver os detalhesPTE Hero App 

Agora que o Terminal Privado foi configurado, é hora de testar a conectividade. Para o mesmo, tentaremos abrir o aplicativo da web usando a URL do aplicativo da web em um navegador. Existem dois testes a serem realizados, um teste negativo e um teste positivo. 

Teste Negativo 

Um para o teste negativo, que é testar a conectividade do aplicativo sem se conectar à rede do Azure usando o cliente VPN. 

  1. Vá para o aplicativo da Web e copie o URL do aplicativo da página Visão geral (https://varonisapp.azurewebsites.net) 
  2. Abra um navegador, cole a URL e pressione Enter. Você receberá uma página de Erro 403 – Proibido porque você não está conectado à rede do Azure e ela é considerada uma Internet pública.página de erro 
  3. Teste Positivo 
  4. O segundo é o teste positivo, que consiste em testar a conectividade depois de se conectar à rede do Azure usando o cliente VPN local. 

Vá para o aplicativo da Web e copie o URL do aplicativo da página Visão geral (https://varonisapp.azurewebsites.net) 

No seu dispositivo local, abra o cliente VPN e clique no botão conectar. 

Depois de se conectar à rede do Azure, vá para o aplicativo Web no portal do Azure e copie a URL do aplicativo da página Visão geral (https://varonisapp.azurewebsites.net ) 

Abra um navegador, cole o URL e pressione Enter.  

Desta vez, você verá a página da web aberta adequadamente, o que confirma a conectividade e o funcionamento do Endpoint Privado 

Endpoints privados e acesso a WebApps 

É possível impedir que suas cargas de trabalho sejam acessadas da Internet pública. Os pontos de extremidade privados do Azure podem ser considerados interfaces de rede, porque uma interface de rede virtual é criada para o recurso para o qual o ponto de extremidade privado é criado. Endpoints privados podem ser usados ​​para trazer os recursos para sua própria VNet. Ele pode ser usado para armazenamento do Azure, Cosmos DB, SQL, App Services WebApp e outros serviços PaaS.