Azure Private Link para Azure SQL Database e Azure Synapse Analytics

APLICA-SE A: Azure SQL Database Azure Synapse Analytics

O Private Link permite-lhe ligar-se a vários serviços PaaS em Azure através de um ponto final privado. Para obter uma lista de serviços PaaS que suportam a funcionalidade Private Link, aceda à página de Documentação de Link Privado. Um ponto final privado é um endereço IP privado dentro de um VNet específico e sub-rede.

Importante

Este artigo aplica-se tanto à Base de Dados Azure SQL como à Azure Synapse Analytics. Para simplificar, o termo "base de dados" refere-se a ambas as bases de dados na Base de Dados Azure SQL e na Azure Synapse Analytics. Da mesma forma, quaisquer referências ao 'servidor' referem-se ao servidor lógico SQL que acolhe a Base de Dados Azure SQL e a Azure Synapse Analytics. Este artigo não se aplica a Azure SQL Managed Instance.

Processo de Criação

Os pontos finais privados podem ser criados utilizando o portal Azure, PowerShell ou o Azure CLI:

Processo de aprovação

Uma vez que o administrador de rede cria o Ponto Final Privado (PE), o administrador SQL pode gerir a Ligação De Pontos De Terminação Privada (PEC) para a Base de Dados SQL.

  1. Navegue para o recurso do servidor no portal Azure de acordo com os passos mostrados na imagem abaixo

    • (1) Selecione as ligações de ponto final privado no painel esquerdo
    • (2) Apresenta uma lista de todas as ligações privadas de ponto final (PECs)
    • (3) Ponto final privado correspondente (PE) criado  Screenshot de todos os PECs
  2. Selecione um PEC individual da lista selecionando-o. Screenshot selecionado PEC

  3. O administrador sql pode optar por aprovar ou rejeitar um PEC e opcionalmente adicionar uma resposta de texto curta. Screenshot da aprovação do PEC

  4. Após aprovação ou rejeição, a lista refletirá o estado apropriado juntamente com o texto de resposta. Screenshot de todos os PECs após aprovação

  5. Finalmente clicando no nome de ponto final privado  Screenshot de detalhes PEC

    leva aos detalhes da Interface de Rede  Screenshot dos detalhes do NIC

    que finalmente leva ao endereço IP para o ponto final privado  Screenshot de Private IP

Testar conectividade à Base de Dados SQL a partir de um VM Azure na mesma rede virtual

Para este cenário, assuma que criou uma Máquina Virtual (VM) Azure que executa uma versão recente do Windows na mesma rede virtual que o ponto final privado.

  1. Inicie uma sessão de desktop remoto (RDP) e ligue-se à máquina virtual.

  2. Em seguida, pode fazer algumas verificações básicas de conectividade para garantir que o VM está a ligar-se à Base de Dados SQL através do ponto final privado utilizando as seguintes ferramentas:

    1. Telnet
    2. Psping
    3. Nmap
    4. SQL Server Management Studio (SSMS)

Verifique a conectividade usando a Telnet

O Cliente Telnet é uma funcionalidade do Windows que pode ser usada para testar a conectividade. Dependendo da versão do Sistema operativo Windows, poderá ser necessário ativar esta funcionalidade de forma explícita.

Abra uma janela de pedido de comando depois de ter instalado a Telnet. Executar o comando Telnet e especificar o endereço IP e o ponto final privado da base de dados na Base de Dados SQL.

>telnet 10.9.0.4 1433

Quando a Telnet se ligar com sucesso, verá um ecrã em branco na janela de comando como a imagem abaixo:

Diagrama de teleto

Verifique a conectividade usando a Psping

A psping pode ser usada da seguinte forma para verificar se o ponto final privado está a ouvir as ligações no porto 1433.

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

>psping.exe mysqldbsrvr.database.windows.net:1433
...
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 a PSPing poderia localizar o endereço IP privado associado ao ponto final privado.

Verifique a conectividade usando o Nmap

O Nmap (Network Mapper) é uma ferramenta de código aberto e gratuito utilizada para a descoberta de redes e auditoria de segurança. Para mais informações e o link de descarregamento, https://nmap.org visite. Pode utilizar esta ferramenta para garantir que o ponto final privado está a ouvir ligações na porta 1433.

Executar Nmap da seguinte forma, fornecendo o intervalo de endereço da sub-rede que hospeda o ponto final privado.

>nmap -n -sP 10.9.0.0/24
...
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á em cima; que corresponde ao endereço IP para o ponto final privado.

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

Nota

Utilize o Nome de Domínio Totalmente Qualificado (FQDN) do servidor em cadeias de ligação para os seus clientes <server>.database.windows.net (). Quaisquer tentativas de login efetuadas diretamente para o endereço IP ou utilizando o link privado FQDN <server>.privatelink.database.windows.net () falharão. Este comportamento é por design, uma vez que o ponto final privado encaminha o tráfego para o SQL Gateway na região e o FQDN correto precisa de ser especificado para que os logins tenham sucesso.

Siga os passos aqui para utilizar o SSMS para ligar à Base de Dados SQL. Depois de ligar à Base de Dados SQL utilizando sSMS, a seguinte consulta deve refletir client_net_address que corresponda ao endereço IP privado do VM Azure a que se conecta:

select client_net_address from sys.dm_exec_connections 
where session_id=@@SPID

Conectividade no local em peering privado

Quando os clientes se ligam ao ponto final público a partir de máquinas no local, o seu endereço IP precisa de ser adicionado à firewall baseada em IP utilizando uma regra de firewall ao nível do Servidor. Embora este modelo funcione bem para permitir o acesso a máquinas individuais para dev ou testar cargas de trabalho, é difícil de gerir em ambiente de produção.

Com o Private Link, os clientes podem permitir o acesso transversal ao ponto final privado utilizando o ExpressRoute,o perspero privado ou o túnel VPN. Os clientes podem então desativar todos os acessos através do ponto final público e não utilizar a firewall baseada em IP para permitir quaisquer endereços IP.

Os clientes podem ligar-se ao ponto final privado a partir da mesma rede virtual, rede virtual esprevada na mesma região, ou através de rede virtual para a ligação de rede virtual entre regiões. Além disso, os clientes podem conectar-se a partir de instalações usando expressRoute, peering privado ou túneis VPN. Abaixo está um diagrama simplificado mostrando os casos de uso comum.

Diagrama de opções de conectividade

Além disso, os serviços que não estão a funcionar diretamente na rede virtual mas que estão integrados com ela (por exemplo, aplicações web ou funções do Serviço de Aplicações) também podem alcançar conectividade privada à base de dados. Para obter mais informações sobre este caso de utilização específica, consulte a aplicação Web com conectividade privada ao cenário de arquitetura de base de dados Azure SQL.

Ligação a partir de um VM Azure em Rede Virtual Peered

Configure a rede virtual que observa para estabelecer conectividade com a Base de Dados SQL a partir de um Azure VM numa rede virtual espreitada.

Ligação de um Azure VM em rede virtual ao ambiente de rede virtual

Configure a rede virtual para a ligação de gateway de rede virtual VPN para estabelecer conectividade a uma base de dados na Base de Dados SQL a partir de um VM Azure numa região ou subscrição diferente.

Ligação a partir de um ambiente no local sobre VPN

Para estabelecer conectividade de um ambiente no local até à base de dados na Base de Dados SQL, escolha e implemente uma das opções:

Ligação do Azure Synapse Analytics ao Azure Storage utilizando a Base Polibase e a declaração COPY

PolyBase e a declaração COPY são geralmente usados para carregar dados em Azure Synapse Analytics a partir de contas de Armazenamento Azure. Se a conta de Armazenamento Azure que está a carregar dados de limites de acesso apenas a um conjunto de sub-redes de rede virtuais através de Pontos Finais Privados, Endpoints de Serviço ou firewalls baseados em IP, a conectividade da PolyBase e a declaração COPY para a conta quebrarão. Para permitir tanto cenários de importação como de exportação com a Azure Synapse Analytics conectando-se ao Azure Storage que está seguro a uma rede virtual, siga os passos fornecidos aqui.

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

A exfiltração de dados na Base de Dados Azure SQL é quando um utilizador, como um administrador de base de dados, é capaz de extrair dados de um sistema e movê-lo para fora da organização. Por exemplo, o utilizador desloca os dados para uma conta de armazenamento detida por terceiros.

Considere um cenário com um utilizador que executa o SQL Server Management Studio (SSMS) dentro de uma máquina virtual Azure conectando-se a uma base de dados na Base de Dados SQL. Esta base de dados está no centro de dados dos EUA. O exemplo abaixo mostra como limitar o acesso com pontos finais públicos na Base de Dados SQL utilizando controlos de acesso à rede.

  1. Desative todo o tráfego de serviço Azure para a Base de Dados SQL através do ponto final público, definindo Allow Azure Services to OFF. Certifique-se de que não são permitidos endereços IP nas regras de firewall de nível de servidor e base de dados. Para obter mais informações, consulte a Base de Dados Azure SQL e os controlos de acesso à rede Azure Synapse Analytics.
  2. Apenas permita o tráfego na base de dados na Base de Dados SQL utilizando o endereço IP privado do VM. Para obter mais informações, consulte os artigos sobre as regrasde Service Endpoint e de firewall de rede virtual .
  3. No Azure VM, reduza o âmbito de ligação de saída utilizando grupos de segurança de rede (NSGs) e tags de serviço da seguinte forma
    • Especifique uma regra NSG para permitir o tráfego para tag de serviço = SQL. WestUs - apenas permitindo a ligação à SQL Database nos EUA
    • Especifique uma regra NSG (com uma prioridade maior) para negar o tráfego para tag de serviço = SQL - negando ligações à Base de Dados SQL em todas as regiões

No final desta configuração, o Azure VM só pode ligar-se a uma base de dados na Base de Dados SQL na região oeste dos EUA. No entanto, a conectividade não se restringe a uma única base de dados na Base de Dados SQL. O VM ainda pode ligar-se a qualquer base de dados na região oeste dos EUA, incluindo as bases de dados que não fazem parte da subscrição. Embora tenhamos reduzido o âmbito da exfiltração de dados no cenário acima para uma região específica, não o eliminámos completamente.

Com o Private Link, os clientes podem agora configurar controlos de acesso à rede como os NSGs para restringir o acesso ao ponto final privado. Os recursos individuais do Azure PaaS são então mapeados para pontos finais privados específicos. Um insider malicioso só pode aceder ao recurso PaaS mapeado (por exemplo, uma base de dados na Base de Dados SQL) e nenhum outro recurso.

Passos seguintes