Azure Private Link para a Base de Dados SQL do Azure e o Azure Synapse Analytics

Aplica-se a:Banco de DadosSQL do Azure Synapse Analytics (somente pools SQL dedicados)

O Private Link permite que você se conecte a vários serviços PaaS no Azure por meio de um ponto de extremidade privado. Para obter uma lista de serviços PaaS que suportam a funcionalidade Private Link, vá para a página Private Link Documentation . Um ponto de extremidade privado é um endereço IP privado dentro de uma VNet e sub-rede específicas.

Importante

Este artigo aplica-se ao Banco de Dados SQL do Azure e ao pool SQL dedicado (anteriormente SQL DW) no Azure Synapse Analytics. Essas configurações se aplicam a todos os bancos de dados SQL e bancos de dados dedicados do pool SQL (anteriormente SQL DW) associados ao servidor. Para simplificar, o termo 'banco de dados' refere-se a ambos os bancos de dados no Banco de Dados SQL do Azure e no Azure Synapse Analytics. Da mesma forma, quaisquer referências a 'servidor' referem-se ao servidor lógico que hospeda o Banco de Dados SQL do Azure e o pool SQL dedicado (anteriormente SQL DW) no Azure Synapse Analytics. Este artigo não se aplica à Instância Gerenciada SQL do Azure ou pools SQL dedicados em espaços de trabalho do Azure Synapse Analytics.

Processo de criação

Os Pontos de Extremidade Privados podem ser criados usando o portal do Azure, o PowerShell ou a CLI do Azure:

Processo de aprovação

Depois que o administrador de rede cria o ponto de extremidade privado (PE), o administrador SQL pode gerenciar a conexão de ponto de extremidade privado (PEC) para o Banco de dados SQL.

  1. Navegue até o recurso de servidor no portal do Azure.

  2. Selecione Rede no painel esquerdo.

  3. Selecione a guia Acesso privado . A página mostra o seguinte:

    • Uma lista de todas as Conexões de Ponto Final Privadas (PECs)
    • Pontos finais privados (PE) criados

    Screenshot that shows how to locate the list of private endpoint connections for the server resource.

  4. Se não houver pontos de extremidade privados, crie um usando o botão Criar um ponto de extremidade privado. Caso contrário, escolha um PEC individual na lista, selecionando-o.

    Screenshot that shows how to select a private endpoint connection in the Azure portal.

  5. O administrador do SQL pode optar por aprovar ou rejeitar um PEC e, opcionalmente, adicionar uma resposta de texto curto.

    Screenshot that shows how to approve a PEC in the Azure portal.

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

    Screenshot that shows the PEC in the Approved state after approval by the admin.

  7. Finalmente, selecione o nome do ponto de extremidade privado

    Screenshot showing PEC details with the endpoint name.

    Isso leva você para a página Visão geral do ponto de extremidade privado. Selecione o link Interfaces de rede para obter os detalhes da interface de rede para a conexão de ponto de extremidade privado.

    Screenshot that shows the NIC details for the private endpoint connection.

    A página Interface de rede mostra o endereço IP privado para a conexão de ponto de extremidade privado.

    Screenshot that shows the Private IP address for the private endpoint connection.

Importante

Quando você adiciona uma conexão de ponto de extremidade privada, o roteamento público para seu 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 está selecionada por padrão. Para desativar o acesso à rede pública, certifique-se de selecionar Negar acesso à rede pública.

Desative o acesso público ao seu servidor lógico

Para esse cenário, suponha que você deseja desabilitar todo o acesso público ao seu servidor lógico e permitir conexões somente de sua rede virtual.

Primeiro, certifique-se de que suas conexões de ponto de extremidade privadas estejam habilitadas e configuradas. Em seguida, para desativar o acesso público ao seu servidor lógico:

  1. Vá para a página Rede do seu servidor lógico.

  2. Marque a caixa de seleção Negar acesso à rede pública.

    Screenshot that shows how to disable public network access for the private endpoint connection.

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

Para esse cenário, suponha que você tenha criado uma máquina virtual (VM) do Azure executando uma versão recente do Windows na mesma rede virtual que o ponto de extremidade privado.

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

  2. Em seguida, você pode fazer algumas verificações básicas de conectividade para garantir que a VM esteja se conectando ao Banco de dados SQL por meio do ponto de extremidade privado usando as seguintes ferramentas:

    • Telnet
    • PsPing
    • Nmap
    • SQL Server Management Studio (SSMS)

Verificar a conectividade usando Telnet

O Cliente Telnet é um recurso do Windows que pode ser usado para testar a conectividade. Dependendo da versão do sistema operacional Windows, talvez seja necessário habilitar esse recurso explicitamente.

Abra uma janela de prompt de comando depois de instalar o Telnet. Execute o comando 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 êxito, ele gera uma tela em branco na janela de comando, conforme mostrado na imagem a seguir:

Diagram of the Telnet window with blank screen.

Use o comando PowerShell para verificar a conectividade:

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

Verifique a conectividade usando PsPing

O PsPing pode ser usado da seguinte forma para verificar se o ponto de extremidade privado está escutando conexões na porta 1433.

Execute o PsPing da seguinte forma, fornecendo o FQDN para o servidor SQL lógico e a porta 1433:

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

Este é um exemplo da 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 executar ping no endereço IP privado associado ao ponto de extremidade privado.

Verifique a conectividade usando o Nmap

Nmap (Network Mapper) é uma ferramenta gratuita e de código aberto usada para descoberta de rede e auditoria de segurança. Para obter mais informações e o link para download, visite https://Nmap.org. Você pode usar essa ferramenta para garantir que o ponto de extremidade privado esteja escutando conexões na porta 1433.

Execute o Nmap da seguinte forma, fornecendo o intervalo de endereços da sub-rede que hospeda o ponto de extremidade privado.

Nmap -n -sP 10.9.0.0/24

Este é um exemplo da 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 ponto de extremidade privado.

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

Nota

Use o FQDN (nome de domínio totalmente qualificado) do servidor em cadeias de conexão para seus clientes (<server>.database.windows.net). Quaisquer tentativas de login feitas diretamente para o endereço IP ou usando o link privado FQDN (<server>.privatelink.database.windows.net) falharão. Esse comportamento é por design, uma vez que o ponto de extremidade privado roteia o tráfego para o Gateway SQL na região e o FQDN correto precisa ser especificado para que os logons sejam bem-sucedidos.

Siga as etapas aqui para usar o SSMS para se conectar ao Banco de Dados SQL. Depois de se conectar ao Banco de Dados SQL usando o SSMS, a consulta a seguir deve refletir client_net_address que corresponda ao endereço IP privado da VM do Azure da qual você está se conectando:

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

Usar a política de conexão de redirecionamento com pontos de extremidade privados

Recomendamos que os clientes usem o link privado com a política de conexão de redirecionamento para reduzir a latência e melhorar a taxa de transferência. Para que as conexões usem esse modo, os clientes precisam atender aos seguintes pré-requisitos:

  • Permitir a comunicação de entrada para a VNET que hospeda o ponto de extremidade privado para o intervalo de portas 1433 a 65535.

  • Permitir a comunicação de saída da VNET que hospeda o cliente para o intervalo de portas 1433 a 65535.

  • Use a versão mais recente dos drivers que têm suporte de redirecionamento integrado. O suporte a redirecionamento está incluído nos drivers ODBC, OLEDB, NET SqlClient Data Provider, Core .NET SqlClient Data Provider e JDBC (versão 9.4 ou superior). As ligações com origem em todos os outros drivers são realizadas por proxy.

Depois de atender ao pré-requisito, os clientes precisam escolher a política de conexão de redirecionamento.

Se não for viável modificar as configurações do firewall para permitir o acesso de saída no intervalo de portas 1433-65535, uma solução alternativa é alterar a política de conexão para Proxy.

Os pontos de extremidade privados existentes que usam a política de conexão padrão devem ser proxiados, ou seja, eles usarão a política de conexão de proxy com a porta 1433. A razão para fazer isso é evitar que qualquer interrupção no tráfego do cliente chegue ao Banco de Dados SQL devido aos intervalos de portas necessários para o redirecionamento não estarem abertos.

Conectividade no local em peering privado

Quando os clientes se conectam ao ponto de extremidade público a partir de máquinas locais, seu endereço IP precisa ser adicionado ao firewall baseado em IP usando uma regra de firewall no nível do servidor. Embora esse modelo funcione bem para permitir o acesso a máquinas individuais para cargas de trabalho de desenvolvimento ou teste, é difícil de gerenciar em um ambiente de produção.

Com o Private Link, os clientes podem habilitar o acesso entre locais ao ponto de extremidade privado usando a Rota Expressa, o emparelhamento privado ou o túnel VPN. Os clientes podem então desativar todo o acesso através do ponto de extremidade público e não usar o firewall baseado em IP para permitir quaisquer endereços IP.

Os clientes podem se conectar ao ponto de extremidade privado a partir da mesma rede virtual, rede virtual emparelhada na mesma região ou via rede virtual para conexão de rede virtual entre regiões. Além disso, os clientes podem se conectar localmente usando a Rota Expressa, emparelhamento privado ou túnel VPN. O diagrama simplificado a seguir mostra os casos de uso comuns.

Diagram of connectivity option.

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 ou Funções do Serviço de Aplicativo) também podem obter conectividade privada com o banco de dados. Para obter mais informações sobre esse caso de uso específico, consulte o cenário do aplicativo Web com conectividade privada com a arquitetura do banco de dados SQL do Azure.

Conectar-se a partir de uma VM do Azure na Rede Virtual Emparelhada

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

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

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

Conecte-se a partir de um ambiente local por VPN

Para estabelecer conectividade de um ambiente local com o banco de dados no Banco de dados SQL, escolha e implemente uma das opções:

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

Conectar-se do Azure Synapse Analytics ao Armazenamento do Azure usando o PolyBase e a instrução COPY

O PolyBase e a instrução COPY são normalmente usados para carregar dados no Azure Synapse Analytics a partir de contas de Armazenamento do Azure. Se a conta de Armazenamento do Azure, da qual você está carregando dados, limitar o acesso apenas a um conjunto de sub-redes de rede virtual por meio de Pontos de Extremidade Privados, Pontos de Extremidade de Serviço ou firewalls baseados em IP, a conectividade do PolyBase e da instrução COPY com a conta será interrompida. Para habilitar cenários de importação e exportação com o Azure Synapse Analytics se conectando ao Armazenamento do Azure protegido a uma rede virtual, siga as etapas fornecidas aqui.

Data exfiltration prevention (Prevenção da transferência de dados não autorizada)

A exfiltração de dados no Banco de Dados SQL do Azure ocorre quando um usuário, como um administrador de banco de dados, pode extrair dados de um sistema e movê-los 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 terceiros.

Considere um cenário com um usuário executando o SQL Server Management Studio (SSMS) dentro de uma máquina virtual do Azure conectando-se a um banco de dados no Banco de dados SQL. Este banco de dados está no centro de dados do oeste dos EUA. O exemplo a seguir mostra como limitar o acesso com pontos de extremidade públicos no Banco de dados SQL usando controles de acesso à rede.

  1. Desabilite todo o tráfego de serviço do Azure para o Banco de Dados SQL por meio do ponto de extremidade público definindo Permitir que os Serviços do Azure sejam desativados. Verifique se nenhum endereço IP é permitido nas regras de firewall no nível do servidor e do banco de dados. Para obter mais informações, consulte Banco de Dados SQL do Azure e Controles de acesso à rede do Azure Synapse Analytics.
  2. Permita apenas o tráfego para o banco de dados no Banco de dados SQL usando o endereço IP privado da VM. Para obter mais informações, consulte os artigos sobre Service Endpoint e regras de firewall de rede virtual.
  3. Na VM do Azure, restrinja o escopo da conexão de saída usando NSGs (Grupos de Segurança de Rede) e Marcas de Serviço da seguinte maneira.
    • Especifique uma regra NSG para permitir tráfego para Service Tag = SQL. WestUs - permitindo apenas a conexão com o Banco de Dados SQL no oeste dos EUA.
    • Especifique uma regra NSG (com prioridade mais alta) para negar tráfego para Service Tag = SQL - negando conexões com o Banco de dados SQL em todas as regiões.

No final dessa instalação, a VM do Azure pode se conectar somente a um banco de dados no Banco de Dados SQL na região Oeste dos EUA. No entanto, a conectividade não está restrita a um único banco de dados no Banco de dados SQL. A VM ainda pode se conectar a qualquer banco de dados na região Oeste dos EUA, incluindo os bancos de dados que não fazem parte da assinatura. Embora tenhamos reduzido o escopo da exfiltração de dados no cenário acima para uma região específica, não o eliminamos completamente.

Com o Private Link, os clientes agora podem configurar controles de acesso à rede, como NSGs, para restringir o acesso ao ponto de extremidade privado. Os recursos individuais de PaaS do Azure são mapeados para pontos de extremidade privados específicos. Um insider mal-intencionado só pode acessar o recurso PaaS mapeado (por exemplo, um banco de dados no Banco de dados SQL) e nenhum outro recurso.