Link Privado do Azure for Azure Synapse Analytics

Dica

Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial com base de data lake, arquitetura pronta para o futuro, IA integrada e novos recursos. Se você não estiver familiarizado com o data warehouse, comece com Fabric Data Warehouse. As cargas de trabalho existentes de pools de SQL dedicados podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

Usando o Link Privado do Azure, você pode se conectar ao Synapse SQL por meio de um endpoint privado. Um endpoint privado é uma interface de rede com um endereço IP privado na sua rede virtual e sub-rede. O tráfego permanece na rede dorsal da Microsoft em vez de passar pela internet pública.

Sempre use o FQDN (nome de domínio totalmente qualificado) do servidor (<server>.database.windows.net) em cadeias de conexão para todos os drivers e ferramentas do cliente. Tentativas de autenticação que usam o endereço IP privado ou o link privado FQDN (<server>.privatelink.database.windows.net) não funcionam. Esse comportamento é intencional porque o endpoint privado direciona o tráfego para o SQL Gateway, que precisa do FQDN correto para rotear as requisições de autenticação com sucesso.

Processo de criação

Crie endpoints privados usando o portal Azure, PowerShell ou a CLI do Azure:

Processo de aprovação

Após o administrador de rede criar o endpoint privado (PE), o administrador SQL pode gerenciar a conexão de endpoint privado (PEC) com o SQL Database.

  1. Vá para o recurso do servidor no portal do Azure.

  2. Vá para a página de aprovação do endpoint privado. No recurso SQL server do Azure Synapse Analytics, em Segurança no menu de recursos, selecione Conexões de endpoint privado.

  3. Veja o seguinte:

    • Uma lista de todas as conexões de endpoints privados (PECs)
    • Endpoints privados (PE) criados
  4. Se não houver endpoints privados, crie um selecionando Criar um endpoint privado. Caso contrário, escolha uma PEC individual na lista selecionando-a.

  5. O administrador do SQL pode aprovar ou rejeitar um PEC e, opcionalmente, adicionar uma breve resposta em texto.

  6. Após aprovação ou rejeição, a lista reflete o estado apropriado junto com o texto da resposta.

  7. Selecione o nome do endpoint privado.

    Essa ação leva você à página de visão geral do Private endpoint. Selecione o link de interfaces de rede para visualizar os detalhes da interface de rede para a conexão de endpoint privado.

    A página do adaptador de rede mostra o endereço IP privado da conexão de ponto de extremidade privado.

Important

Quando você adiciona uma conexão de ponto de extremidade privado, o roteamento público para o servidor lógico não é bloqueado por padrão. No painel Firewall e redes virtuais, a configuração Negar acesso à rede pública não é selecionada por padrão. Para desabilitar o acesso à rede pública, selecione Negar acesso à rede pública.

Desabilitar o acesso público ao servidor lógico

No seu servidor SQL do Azure Synapse Analytics, você pode desativar todo o acesso público ao seu servidor lógico e permitir conexões apenas da sua rede virtual.

Primeiramente, verifique se as conexões de ponto de extremidade privado estão habilitadas e configuradas. Em seguida, para desabilitar o acesso público ao servidor lógico:

  1. Acesse a página Rede do servidor lógico.
  2. Marque a caixa de seleção Negar acesso à rede pública.

Testar a conectividade com o Banco de Dados SQL em uma VM do Azure na mesma rede virtual

Para esse cenário, suponha que você criou uma Máquina Virtual do Azure (VM) rodando uma versão recente do Windows na mesma rede virtual do endpoint privado.

  1. Inicie uma sessão RDP (Área de Trabalho Remota) e conecte-se à máquina virtual.

  2. Você pode então fazer algumas verificações básicas de conectividade para garantir que a VM está conectando ao Banco de Dados SQL via o endpoint privado, usando as seguintes ferramentas:

Verifique a conectividade usando Telnet

Telnet é um recurso do Windows que você pode usar para testar a conectividade. Dependendo da versão do Windows, talvez seja necessário ativar explicitamente esse recurso.

Abra uma janela de Prompt de Comando depois de instalar o Telnet. Execute o comando do Telnet e especifique o endereço IP e o ponto de extremidade privado do banco de dados no banco de dados SQL.

telnet 10.9.0.4 1433

Quando o Telnet se conecta com sucesso, ele retorna uma tela em branco na janela de comando.

Verifique a conectividade usando o PowerShell

Use um comando PowerShell para verificar a conectividade:

Test-NetConnection -computer myserver.database.windows.net -port 1433

Verifique a conectividade usando o PsPing

Use o PsPing da seguinte forma para verificar se o endpoint privado está ouvindo conexões na porta 1433.

Execute o PsPing fornecendo o FQDN para servidor SQL lógico e porta 1433:

PsPing.exe mysqldbsrvr.database.windows.net:1433

Este exemplo mostra a saída esperada:

TCP connect to 10.9.0.4:1433:
5 iterations (warmup 1) ping test:
Connecting to 10.9.0.4:1433 (warmup): from 10.6.0.4:49953: 2.83ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49954: 1.26ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49955: 1.98ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49956: 1.43ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49958: 2.28ms

A saída mostra que o PsPing pode pingar o endereço IP privado associado ao endpoint privado.

Verifique a conectividade usando o Nmap

Nmap (Network Mapper) é uma ferramenta gratuita e de código aberto para descoberta de redes e auditoria de segurança. Para mais informações e o link de download, visite https://Nmap.org. Use esta ferramenta para garantir que o endpoint privado esteja ouvindo conexões na porta 1433.

Execute o Nmap fornecendo o intervalo de endereços da sub-rede que hospeda o endpoint privado.

Nmap -n -sP 10.9.0.0/24

Este exemplo mostra a saída esperada:

Nmap scan report for 10.9.0.4
Host is up (0.00s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 207.00 seconds

O resultado mostra que um endereço IP está ativo, que corresponde ao endereço IP do endpoint privado.

Verifique a conectividade usando o SQL Server Management Studio (SSMS)

Use o FQDN (nome de domínio totalmente qualificado) do servidor nas cadeias de conexão dos clientes (<server>.database.windows.net). Qualquer tentativa de login feita diretamente para o endereço IP ou usando o link privado FQDN (<server>.privatelink.database.windows.net) falha. Esse comportamento é intencional, já que o endpoint privado direciona o tráfego para o SQL Gateway na região. Você precisa especificar o FQDN correto para que os logins tenham sucesso.

Siga os passos em Use SSMS para se conectar ao Banco de Dados SQL. Depois que você se conecta usando SSMS, a consulta a seguir retorna client_net_address que corresponde ao endereço IP privado da VM Azure de onde você está se conectando:

SELECT client_net_address
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;

Conectividade local no emparelhamento privado

Quando você se conecta ao endpoint público a partir de máquinas locais, é necessário adicionar seu endereço IP ao firewall baseado em IP usando uma regra de firewall em nível de servidor. Embora esse modelo funcione bem para permitir o acesso a computadores individuais para cargas de trabalho de desenvolvimento ou teste, é difícil gerenciá-lo em um ambiente de produção.

Ao usar o Link Privado, você pode habilitar o acesso entre ambientes locais ao endpoint privado usando ExpressRoute, peering privado ou tunelamento VPN. Você pode então desabilitar todo o acesso pelo endpoint público e não usar o firewall baseado em IP para permitir quaisquer endereços IP.

Os clientes podem se conectar ao endpoint privado a partir da mesma rede virtual, rede virtual peered na mesma região, ou via conexão de rede virtual para rede virtual entre regiões. Além disso, os clientes podem se conectar do ambiente local usando ExpressRoute, peering privado ou tunelamento VPN. O diagrama simplificado a seguir mostra os casos de uso comuns.

Além disso, os serviços que não estão sendo executados diretamente na rede virtual, mas estão integrados a ela (por exemplo, Aplicativos Web do Serviço de Aplicativo ou o Functions) também podem obter conectividade particular com o banco de dados.

Conecte-se a partir de uma VM do Azure em uma rede virtual em emparelhamento

Configure emparelhamento de rede virtual para estabelecer conectividade com o Banco de Dados SQL de uma VM do Azure em uma rede virtual emparelhada.

Conectar-se de uma VM do Azure em rede virtual ao ambiente de rede virtual

Configure a conexão do gateway da VPN de rede virtual para rede virtual para estabelecer a conectividade com um banco de dados no Banco de Dados SQL de uma VM do Azure em uma região ou assinatura diferente.

Conecte-se de um ambiente local por VPN

Para estabelecer conectividade a partir de um ambiente local, escolha e implemente uma das seguintes opções:

Considere também os cenários de configuração DNS, pois o FQDN do serviço pode ser resolvido para o endereço IP público.

Conecte o Azure Synapse Analytics ao Armazenamento do Azure usando o PolyBase e a instrução COPY

Use o PolyBase e a instrução COPY para carregar dados no Azure Synapse Analytics a partir das contas do Armazenamento do Azure. Se a conta do Armazenamento do Azure da qual você está carregando os dados limita o acesso apenas a um conjunto de sub-redes virtuais usando Endpoints Privados, Endpoints de Serviço ou firewalls baseados em IP, a conectividade do PolyBase e da instrução COPY com a conta é interrompida. Para habilitar cenários de importação e exportação com o Azure Synapse Analytics conectando-se ao Armazenamento do Azure protegido a uma rede virtual, consulte o impacto do uso de pontos de extremidade de serviço de rede virtual com o Armazenamento do Azure.

Prevenção contra exfiltração de dados

A exfiltração de dados ocorre quando um usuário, como um administrador de banco de dados, extrai dados de um sistema e os move para outro local ou sistema fora da organização. Por exemplo, o usuário move os dados para uma conta de armazenamento de propriedade de uma entidade que não é da Microsoft.

Considere um cenário com um usuário que executa o SSMS (SQL Server Management Studio) em uma máquina virtual do Azure que se conecta a um banco de dados no Banco de Dados SQL. Esse banco de dados está no data center do Oeste dos EUA. O exemplo a seguir mostra como limitar o acesso com endpoints públicos usando controles de acesso de rede.

  1. Desative todo o tráfego de serviço Azure para o Banco de Dados SQL pelo endpoint público configurando Permitir Serviços Azure como DESLIGADO. Certifique-se de que as regras de firewall em nível de servidor e banco de dados não permitam nenhum endereço IP. Para mais informações, veja controles de acesso à rede do Azure Synapse Analytics.
  2. Permita tráfego apenas para o endereço IP privado da VM. Para mais informações, veja regras de firewall de rede virtual.
  3. Na VM do Azure, restringa o escopo das conexões de saída usando Grupos de Segurança de Rede (NSGs) e Tags de Serviço da seguinte forma:
    • Especifique uma regra NSG para permitir tráfego para Service Tag = SQL.WestUs - permitindo apenas conexão com o Banco de Dados SQL no Oeste dos EUA.
    • Especifique uma regra NSG com prioridade maior para negar tráfego para Service Tag = Sql - negando conexões ao Banco de Dados SQL em todas as regiões.

Ao final dessa configuração, a VM do Azure só pode se conectar a um recurso na região Oeste dos EUA. No entanto, a conectividade não está restrita a um único banco de dados. A VM ainda pode se conectar a qualquer banco de dados na região Oeste dos EUA, incluindo bancos de dados que não fazem parte da assinatura. Embora você reduza o escopo da exfiltração de dados no cenário anterior para uma região específica, não a eliminou completamente.

Usando o Link Privado, você pode configurar controles de acesso à rede, como NSGs, para restringir o acesso ao endpoint privado. Você pode mapear recursos PaaS individuais do Azure para endpoints privados específicos. Um insider malicioso só pode acessar o recurso PaaS mapeado e nenhum outro recurso.