Link Privado do Azure para o Banco de Dados SQL do Azure e o Azure Synapse Analytics

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

O Azure 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 dos serviços de PaaS que dão suporte à funcionalidade de Link Privado, acesse a página Documentação do Link Privado. Um ponto de extremidade privado é um endereço IP privado em uma VNet e sub-rede específicas.

Importante

Este artigo se aplica ao Banco de Dados SQL do Azure e ao pool de SQL dedicado (anteriormente, SQL DW) no Azure Synapse Analytics. Essas configurações se aplicam a todos os Bancos de Dados SQL e ao pool dedicado de SQL (antigo SQL DW) associados ao servidor. Para simplificar, o termo "banco de dados" se refere aos bancos de dados no Banco de Dados SQL do Azure e no Azure Synapse Analytics. Da mesma forma, as menções a 'servidor' se referem ao servidor lógico que hospeda o Banco de Dados SQL do Azure e o pool de SQL dedicado (anteriormente, SQL DW) no Azure Synapse Analytics. Este artigo não se aplica à Instância Gerenciada de SQL do Azure nem a pools de SQL dedicados em workspaces 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 PE (ponto de extremidade privado), o administrador do SQL pode gerenciar a PEC (conexão de ponto de extremidade privado) com o Banco de Dados SQL.

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

  2. Navegue até a página de aprovação de ponto de extremidade privado:

    • No recurso do SQL Server, em Segurança, selecione Rede. Selecione a guia Acesso privado.
    • No espaço de trabalho Synapse, em Segurança no menu de recursos, selecione Conexões privadas de ponto de extremidade.
  3. A página mostra o seguinte:

    • Uma lista de todas as conexões de ponto de extremidade privado (PECs)
    • Pontos de extremidade privados (PE) criados

    Captura de tela que mostra como localizar a lista de conexões de ponto de extremidade privadas para o recurso do servidor.

  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 uma PEC individual na lista selecionando-a.

    Captura de tela que mostra como selecionar uma conexão de ponto de extremidade privado no portal do Azure.

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

    Captura de tela que mostra como aprovar um PEC no portal do Azure.

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

    Captura de tela que mostra o PEC no estado Aprovado após aprovação pelo administrador.

  7. Por fim, selecione o nome do ponto de extremidade privado

    Captura de tela mostrando detalhes do PEC com o nome do ponto de extremidade.

    Isso leva você à página de visão geral do ponto de extremidade privado. Selecione o link Adaptador de rede para obter os detalhes do adaptador de rede da conexão de ponto de extremidade privado.

    Captura de tela que mostra detalhes NIC da conexão de ponto de extremidade privado.

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

    Captura de tela que mostra o endereço IP privado da conexão de ponto de extremidade privado.

Importante

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

Para o SQL Server lógico no Banco de Dados SQL do Azure, suponha que você queira desabilitar todo o acesso público ao servidor lógico do SQL do Azure e permitir apenas conexões de 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.

    Captura de tela que mostra como desabilitar o acesso à rede pública para a conexão de ponto de extremidade privada.

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ê tenha criado uma VM (Máquina Virtual) do Azure executando uma versão recente do Windows na mesma rede virtual do ponto de extremidade privado.

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

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

Verificar a conectividade usando o 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 do 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 conectar com êxito, você verá uma tela em branco na janela Comando, como mostra a imagem abaixo:

Diagrama da janela Telnet com tela em branco.

Use o comando do PowerShell para verificar a conectividade:

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

Verifique a conectividade usando o Psping

O Psping pode ser usado conforme mostrado a seguir, para verificar se o ponto de extremidade privado está escutando as conexões na porta 1433.

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

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

Aqui está 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.

Verificar a conectividade usando o Nmap

O Nmap (Mapeador de Rede) é uma ferramenta gratuita e open-source usada para a descoberta de rede e auditoria de segurança. Para obter mais informações e o link de download, visite https://Nmap.org. Use essa ferramenta para garantir que o ponto de extremidade privado esteja escutando conexões na porta 1433.

Execute o Nmap como mostrado a seguir, fornecendo o intervalo de endereços da sub-rede que hospeda o ponto de extremidade privado.

Nmap -n -sP 10.9.0.0/24

Aqui está 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 SSMS (SQL Server Management Studio)

Observação

Use o FQDN (nome de domínio totalmente qualificado) do servidor nas cadeias de conexão dos clientes (<server>.database.windows.net). As tentativas de logon feitas diretamente no endereço IP ou usando o FQDN do link privado (<server>.privatelink.database.windows.net) deverão falhar. Esse comportamento ocorre por design, pois o ponto de extremidade privado roteia o tráfego para o gateway do SQL na região, e o FQDN correto precisa ser especificado para que os logons tenham êxito.

Siga as etapas fornecidas aqui para usar o SSMS para se conectar ao Banco de Dados SQL. Depois que você se conectar ao banco de dados SQL usando o SSMS, a seguinte consulta deverá refletir um 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 o rendimento. Para que as conexões usem esse modo, os clientes precisam atender aos seguintes requisitos prévios:

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

  • Permita 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 de 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 conexões originadas de todos os outros drivers são proxies.

Depois de atender aos requisitos prévios, os clientes precisam, explicitamente, escolher a política de conexão de Redirecionamento.

Se não for viável modificar as configurações do firewall para permitir acesso de saída no intervalo de portas 1433-65535, uma solução alternativa será 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 usarão a política de conexão de Proxy com a porta 1433. O motivo para fazer isso é evitar interrupções no tráfego do cliente que chega ao Banco de Dados SQL, as quais são causadas pela falta de abertura dos intervalos de portas necessários para o redirecionamento.

Observação

Ao usar pontos de extremidade privados em pools de SQL dedicados, a política de conexão é sempre Proxy. Ao usar pontos de extremidade privados, a alteração da configuração não afetará os pools de SQL dedicados.

Conectividade local no emparelhamento privado

Quando os clientes se conectam ao ponto de extremidade público em computadores locais, seus endereços IP precisam ser adicionados ao firewall baseado em IP usando uma Regra de firewall no 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.

Com o Link Privado, os clientes podem habilitar o acesso entre instalações ao ponto de extremidade privado usando o ExpressRoute, o emparelhamento privado ou o túnel de VPN. Os clientes podem então desabilitar todo o acesso por meio do ponto de extremidade público e não usar o firewall baseado em IP para permitir qualquer endereço IP.

Os clientes podem se conectar ao ponto de extremidade privado 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 o ExpressRoute, o emparelhamento privado ou o túnel de VPN. O diagrama simplificado a seguir mostra os casos de uso comuns.

Diagrama da opção de conectividade.

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. Para obter mais informações sobre esse caso de uso específico, confira o cenário de arquitetura Aplicativo Web com conectividade privada com o banco de dados SQL do Azure.

Conectar-se de uma VM do Azure em rede virtual emparelhada

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.

Conectar-se por meio de um ambiente local pela VPN

Para estabelecer a 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 os cenários de configuração DNS, pois o FQDN do serviço pode ser resolvido para o endereço IP público.

Conectar-se do Azure Synapse Analytics para o armazenamento do Azure usando o Polybase e a instrução COPY

O PolyBase e a instrução COPY costumam ser usados para carregar dados no Azure Synapse Analytics de contas de Armazenamento do Microsoft Azure. Se a conta de Armazenamento do Azure da qual você está carregando dados limitar o acesso somente a um conjunto de sub-redes da 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 os cenários de importação e de exportação com o Azure Synapse Analytics conectando-se ao Armazenamento do Microsoft Azure protegido com uma rede virtual, siga as etapas fornecidas aqui.

Prevenção contra exportação de dados

A exfiltração dos 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 outra localização ou outro 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 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 configurando Permitir Serviços do Azure como DESATIVADO. Verifique se nenhum endereço IP é permitido nas regras de firewall no nível de servidor e de banco de dados. Para obter mais informações, confira Controles de acesso à rede do Banco de Dados SQL do Azure e do Azure Synapse Analytics.
  2. Só permita 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, confira os artigos sobre o ponto de extremidade de serviço e as regras de firewall da 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 maneira a seguir.
    • Especifique uma regra NSG para permitir o tráfego para Marca de Serviço = 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 Marca de Serviço = SQL: negando conexões ao Banco de Dados SQL em todas as regiões.

Ao final desta configuração, a VM do Azure só poderá se conectar a um banco de dados no Banco de Dados SQL na região Oeste dos EUA. No entanto, a conectividade não é restrita a um banco de dados individual 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 exportação de dados no cenário acima a uma região específica, não o eliminamos por completo.

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