Multilocação e Azure Private Link

O Azure Private Link fornece endereçamento IP privado para serviços da plataforma Azure e para seus próprios aplicativos hospedados em máquinas virtuais do Azure. Você pode usar o Private Link para habilitar a conectividade privada dos ambientes do Azure de seus locatários. Os locatários também podem usar o Private Link para acessar sua solução a partir de seus ambientes locais, quando estiverem conectados por meio de gateways de rede virtual privada (VPN Gateway) ou ExpressRoute.

O Azure Private Link é usado por muitos grandes provedores de SaaS, incluindo Snowflake, Confluent Cloud e MongoDB Atlas.

Neste artigo, analisamos como você pode configurar o Private Link para uma solução multilocatária hospedada no Azure.

Considerações principais

Espaços de endereços IP sobrepostos

O Private Link fornece recursos poderosos para soluções multilocatário, onde os locatários podem acessar o serviço por meio de espaços de endereço privados.

Inquilinos diferentes utilizam frequentemente os mesmos espaços de endereços IP privados ou sobrepostos. Por exemplo, sua solução multilocatária pode usar o espaço de endereço IP do 10.1.0.0/16. Suponha que o locatário A usa sua própria rede local com o mesmo espaço de endereço IP e, coincidentemente, o locatário B também usa o mesmo espaço de endereço IP. Não é possível conectar ou emparelhar diretamente suas redes porque os intervalos de endereços IP se sobrepõem.

Quando você usa o Private Link para habilitar a conectividade de cada locatário com a solução multilocatário, o tráfego de cada locatário tem automaticamente a NAT (conversão de endereços de rede) aplicada. Cada locatário pode usar um endereço IP privado em sua própria rede e o tráfego flui para a solução multilocatária de forma transparente. O Private Link executa NAT no tráfego, mesmo quando os locatários e o provedor de serviços usam intervalos de endereços IP sobrepostos:

Diagrama mostrando a conectividade entre dois locatários e um serviço multilocatário, todos usando o mesmo espaço de endereço IP.

Quando o tráfego chega à solução multilocatário, ele já foi traduzido. Isso significa que o tráfego parece ter origem no próprio espaço de endereço IP da rede virtual do serviço multilocatário. O Private Link fornece o recurso TCP Proxy Protocol v2 , que permite que um serviço multilocatário conheça o locatário que enviou a solicitação e até mesmo o endereço IP original da rede de origem.

Seleção de serviços

Ao usar o Private Link, é importante considerar o serviço ao qual você deseja permitir a conectividade de entrada.

O serviço Azure Private Link é usado com máquinas virtuais atrás de um balanceador de carga padrão.

Você também pode usar o Private Link com outros serviços do Azure. Esses serviços incluem plataformas de hospedagem de aplicativos, como o Serviço de Aplicativo do Azure. Eles também incluem o Gateway de Aplicativo do Azure ou o Gerenciamento de API do Azure, que são gateways de rede e de API.

A plataforma de aplicativo que você usa determina muitos aspetos da configuração do Link Privado e os limites que se aplicam. Além disso, alguns serviços não suportam Private Link para tráfego de entrada. Reveja a documentação dos serviços do Azure que utiliza para compreender o respetivo suporte para a Ligação Privada.

Limites

Considere cuidadosamente o número de pontos de extremidade privados que você pode criar, com base na arquitetura da sua solução. Se você usa uma plataforma de aplicativo de plataforma como serviço (PaaS), é importante estar ciente do número máximo de pontos de extremidade privados que um único recurso pode suportar. Se você executar máquinas virtuais, poderá anexar uma instância de serviço de Link Privado a um SLB (balanceador de carga padrão). Nessa configuração, geralmente você pode conectar um número maior de pontos de extremidade privados, mas os limites ainda se aplicam. Esses limites podem determinar quantos locatários você pode conectar aos seus recursos usando o Private Link. Analise os limites, cotas e restrições de assinatura e serviço do Azure para entender os limites do número de pontos de extremidade e conexões.

Além disso, alguns serviços requerem uma configuração de rede especializada para usar o Private Link. Por exemplo, se você usar o Link Privado com o Gateway de Aplicativo do Azure, deverá provisionar uma sub-rede dedicada, além da sub-rede padrão para o recurso Gateway de Aplicativo.

Teste cuidadosamente sua solução, incluindo sua configuração de implantação e diagnóstico, com sua configuração de Link Privado habilitada. Quando os pontos de extremidade privados são habilitados em alguns serviços do Azure, o tráfego público da Internet é bloqueado. Esse comportamento pode exigir que você altere seus processos de implantação e gerenciamento.

Você pode optar por implantar sua solução para ser voltada para a Internet e também para ser exposta por meio de pontos de extremidade privados. Por exemplo, alguns dos seus inquilinos podem necessitar de conectividade privada, enquanto outros dependem de conectividade pública à Internet. Considere sua topologia de rede geral e os caminhos que o tráfego de cada locatário segue.

Quando sua solução é baseada em máquinas virtuais que estão atrás de um balanceador de carga padrão, você pode expor seu ponto de extremidade por meio do serviço Private Link. Nesse caso, um firewall de aplicativo Web e o roteamento de aplicativos provavelmente já fazem parte de sua carga de trabalho baseada em máquina virtual.

Muitos serviços PaaS do Azure oferecem suporte ao Private Link para conectividade de entrada, mesmo em diferentes assinaturas do Azure e locatários do Microsoft Entra. Você pode usar os recursos de Link Privado desse serviço para expor seu ponto de extremidade.

Quando você usa outros serviços voltados para a Internet, como o Azure Front Door, é importante considerar se eles oferecem suporte ao Private Link para tráfego de entrada. Caso contrário, considere como o tráfego flui em cada caminho para a solução.

Por exemplo, suponha que você crie um aplicativo voltado para a Internet que seja executado em um conjunto de escala de máquina virtual. Você usa o Azure Front Door, incluindo seu firewall de aplicativo Web (WAF), para segurança e aceleração de tráfego, e configura o Front Door para enviar seu tráfego por meio de um ponto de extremidade privado para seu serviço de back-end (origem). O locatário A se conecta à sua solução usando um ponto de extremidade público e o locatário B se conecta usando um ponto de extremidade privado. Como o Front Door não suporta Private Link para conexões de entrada, o tráfego do locatário B ignora sua Front Door e seu WAF:

Diagrama mostrando solicitações que chegam pela Porta da Frente do Azure e também por meio de um ponto de extremidade privado, que ignora a Porta da Frente.

Modelos de isolamento

O Private Link foi projetado para oferecer suporte a cenários em que uma única camada de aplicativo pode ser usada por vários clientes separados, como seus locatários. Quando você considera o isolamento para o Private Link, a principal preocupação é em torno do número de recursos que devem ser implantados para dar suporte às suas necessidades. Os modelos de isolamento de locatário que você pode usar para o Private Link dependem do serviço que você usa.

Se você usar o serviço Private Link com máquinas virtuais atrás de um balanceador de carga padrão, há vários modelos de isolamento que você pode considerar.

Consideração Serviço de Link Privado Compartilhado e balanceador de carga compartilhado Serviço de Link Privado Dedicado e balanceador de carga dedicado Serviço de Link Privado Dedicado e balanceador de carga compartilhado
Complexidade da implantação Baixo Médio-alto, dependendo do número de inquilinos Médio-alto, dependendo do número de inquilinos
Complexidade operacional Baixo Médio-alto, dependendo do número de recursos Médio-alto, dependendo do número de recursos
Limites a considerar Número de pontos finais privados no mesmo serviço Private Link Número de serviços Private Link por subscrição Número de serviços Private Link por balanceador de carga padrão
Cenário de exemplo Solução multilocatária grande com camada de aplicativo compartilhada Carimbos de implantação separados para cada locatário Camada de aplicativo compartilhado em um único carimbo, com grande número de locatários

Em todos os três modelos, o nível de isolamento e desempenho de dados depende dos outros elementos da sua solução, e a implantação do serviço Private Link não afeta materialmente esses fatores.

Você pode considerar a implantação de um serviço de Link Privado compartilhado, que está conectado a um balanceador de carga padrão. Cada um dos seus locatários pode criar um ponto de extremidade privado e usá-lo para se conectar à sua solução.

Uma única instância de serviço Private Link suporta um grande número de pontos de extremidade privados. Se você esgotar o limite, poderá implantar mais instâncias de serviço de Link Privado, embora também haja limites para o número de serviços de Link Privado que você pode implantar em um único balanceador de carga. Se você espera se aproximar desses limites, considere usar uma abordagem baseada em Selos de Implantação e implante balanceadores de carga compartilhados e instâncias de serviço de Link Privado em cada carimbo.

Você pode implantar um serviço Private Link dedicado e um balanceador de carga dedicado para cada locatário. Essa abordagem faz sentido quando você tem um conjunto dedicado de máquinas virtuais para cada locatário, como quando seus locatários têm requisitos de conformidade rigorosos.

Você também pode implantar instâncias dedicadas do serviço Private Link para cada locatário, com um balanceador de carga padrão compartilhado. No entanto, é improvável que este modelo proporcione muitos benefícios. Além disso, como há um limite para o número de serviços de Link privado que você pode implantar em um único balanceador de carga padrão, esse modelo provavelmente não será dimensionado além de uma pequena solução multilocatário.

Mais comumente, você pode implantar vários serviços de Link Privado compartilhados. Essa abordagem permite que você expanda o número de pontos de extremidade privados que sua solução pode suportar em um balanceador de carga compartilhado.

Modelos de isolamento para serviços PaaS do Azure com pontos de extremidade privados

Quando você implanta serviços de plataforma como serviço (PaaS) do Azure e deseja permitir que os locatários acessem esses serviços com pontos de extremidade privados, considere os recursos e as restrições do serviço específico. Além disso, considere se os recursos da camada de aplicativo são dedicados a um locatário específico ou se são compartilhados entre locatários.

Se você implantar um conjunto dedicado de recursos da camada de aplicativo para cada locatário, é provável que possa implantar um ponto de extremidade privado para esse locatário usar para acessar seus recursos. É improvável que você esgote quaisquer limites de serviço relacionados ao Private Link, porque cada locatário tem seus próprios recursos dedicados a eles.

Ao compartilhar recursos da camada de aplicativo entre locatários, você pode considerar a implantação de um ponto de extremidade privado para cada locatário. Há limites no número de pontos de extremidade privados que podem ser anexados a um único recurso, e esses limites são diferentes para cada serviço.

O Private Link tem vários recursos que são úteis em um ambiente multilocatário. No entanto, os recursos específicos disponíveis para você dependem do serviço que você usa. O serviço básico de Link Privado do Azure, para máquinas virtuais e balanceadores de carga, dá suporte a todos os recursos descritos abaixo. Outros serviços com suporte a Private Link podem fornecer apenas um subconjunto desses recursos.

Aliases de serviço

Quando um locatário configura o acesso ao seu serviço usando o Private Link, ele precisa ser capaz de identificar seu serviço para que o Azure possa estabelecer a conexão.

O serviço de Link Privado e alguns outros serviços do Azure compatíveis com Link Privado permitem que você configure um alias que você fornece aos seus locatários. Usando um alias, você evita divulgar suas IDs de assinatura do Azure e nomes de grupos de recursos.

Visibilidade do serviço

O serviço Private Link permite controlar a visibilidade do seu endpoint privado. Você pode permitir que todos os clientes do Azure se conectem ao seu serviço, se souberem seu alias ou ID de recurso. Como alternativa, você pode restringir o acesso a apenas um conjunto de clientes conhecidos do Azure.

Você também pode especificar um conjunto de IDs de assinatura do Azure pré-aprovadas que podem se conectar ao seu ponto de extremidade privado. Se você optar por usar essa abordagem, considere como coletará e autorizará IDs de assinatura. Por exemplo, você pode fornecer uma interface de usuário de administração em seu aplicativo para coletar a ID de assinatura de um locatário. Em seguida, você pode reconfigurar dinamicamente sua instância de serviço de Link Privado para pré-aprovar essa ID de assinatura para conexões.

Aprovações de conexão

Depois que uma conexão for solicitada entre um cliente (como um locatário) e um ponto de extremidade privado, o Private Link exigirá que a conexão seja aprovada. Até que a conexão seja aprovada, o tráfego não poderá fluir através da conexão de ponto de extremidade privado.

O serviço Private Link suporta vários tipos de fluxos de aprovação, incluindo:

  • Aprovação manual, onde sua equipe aprova explicitamente todas as conexões. Essa abordagem é viável quando você tem apenas alguns locatários que usam seu serviço através do Private Link.
  • Aprovação baseada em API, em que o serviço de Link Privado trata a conexão como exigindo uma aprovação manual e seu aplicativo usa a API de Conexão de Ponto Final Privado de Atualização, a CLI do Azure ou o Azure PowerShell para aprovar uma conexão. Essa abordagem pode ser útil quando você tem uma lista de locatários que foram autorizados a usar pontos de extremidade privados.
  • Aprovação automática, em que o próprio serviço Private Link mantém a lista de IDs de assinatura que devem ter suas conexões aprovadas automaticamente.

Para obter mais informações, consulte Controlar o acesso ao serviço.

Protocolo proxy v2

Quando você usa o serviço Private Link, por padrão, seu aplicativo só tem visibilidade de um endereço IP que foi através da conversão de endereços de rede (NAT). Esse comportamento significa que o tráfego parece fluir de dentro de sua própria rede virtual.

O Private Link permite que você obtenha acesso ao endereço IP original do cliente, na rede virtual do locatário. Este recurso usa o TCP Proxy Protocol v2.

Por exemplo, suponha que os administradores de seus locatários precisem adicionar restrições de acesso baseadas em endereço IP, como o host 10.0.0.10 pode acessar o serviço, mas o host 10.0.0.20 não pode. Ao usar o Proxy Protocol v2, você pode habilitar seus locatários para configurar esses tipos de restrições de acesso em seu aplicativo. No entanto, o código do aplicativo precisa inspecionar o endereço IP original do cliente e impor as restrições.

  • Explicação do Serviço de Link Privado do Azure e demonstrações das perspetivas do provedor (ISV SaaS) e do consumidor: um vídeo que examina o recurso de serviço de Link Privado do Azure que habilita provedores de serviços multilocatários (como fornecedores independentes de software criando produtos SaaS). Essa solução permite que os consumidores acessem o serviço do provedor usando endereços IP privados das próprias redes virtuais do Azure do consumidor.
  • Protocolo de Proxy TCP v2 com Serviço de Link Privado do Azure — Deep Dive: um vídeo que apresenta um mergulho profundo no Protocolo de Proxy TCP v2, que é um recurso avançado do serviço de Link Privado do Azure. É útil em cenários multilocatário e SaaS. O vídeo mostra como habilitar o Protocolo de Proxy v2 no serviço de Link Privado do Azure. Ele também mostra como configurar um serviço NGINX para ler o endereço IP privado de origem do cliente original, em vez do IP NAT, para acessar o serviço através do ponto de extremidade privado.
  • Usando o NGINX Plus para decodificar o TLV linkIdentifier do Protocolo de Proxy do serviço de Link Privado do Azure: um vídeo que mostra como usar o NGINX Plus para obter o TLV do Protocolo de Proxy TCP v2 do serviço de Link Privado do Azure. O vídeo mostra como você pode extrair e decodificar o numérico linkIdentifier, também chamado LINKID, da conexão de ponto final privado. Essa solução é útil para provedores multilocatários que precisam identificar o locatário consumidor específico a partir do qual a conexão foi feita.
  • Padrão de conectividade privada SaaS: uma solução de exemplo que ilustra uma abordagem para automatizar a aprovação de conexões de ponto de extremidade privadas, usando os Aplicativos Gerenciados do Azure.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

  • John Downs - Brasil | Engenheiro de Software Principal
  • Arsen Vladimirskiy - Brasil | Engenheiro de Clientes Principal, FastTrack for Azure

Outros contribuidores:

  • Sumeet Mittal - Brasil | Gerente de Produto Principal, Azure Private Link

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos

Analise as abordagens de rede para multilocação.