Azure Private Link para Azure SQL Database

O que é Azure SQL Databases

O Banco de Dados SQL do Azure é um banco de dados de nuvem gerenciado que usa o mecanismo de banco de dados do SQL Server na plataforma de nuvem do Azure. Torna-se mais fácil para os desenvolvedores/programadores desenvolverem seus produtos, pois há menos envolvimento na parte de manutenção do produto.

O Banco de Dados SQL do Microsoft Azure  é um  serviço de banco de dados excelente, escalonável, durável e inteligente criado para a nuvem. A Microsoft cuida do gerenciamento de recursos, tamanho do armazenamento, infraestrutura, etc.

Outra parte mais importante é que  os recursos são escalonados  sob demanda automaticamente e estão sempre atualizados e  baseados em IA.

O que é o Azure Private Endpoint

O Azure Private Endpoint é uma interface de rede que conecta você de forma privada e segura a um serviço fornecido pelo Azure Private Link. Private Endpoint usa um endereço IP privado de sua VNet, trazendo efetivamente o serviço para sua VNet.

O tráfego entre sua rede virtual e o serviço viaja pela rede de backbone da Microsoft. Expor seu serviço à Internet pública não é mais necessário.

Passo a Passo

Já escrevi um artigo aqui no site mostrando como criar um Azure SQL Database, acesse o link abaixo para conferir.

Como criar um Azure SQL Database

01 – Faça login no portal do Azure.

02 – No portal do Azure, pesquise por virtual networks.

03 – Na tela Virtual network, observe que temos a vnet-servers criada com o address space 10.0.0.0/16 e a subnet-servers com address space 10.0.0.0/24, utilizaremos essa vnet e subnet na configuração do private endpoint.

04 – No portal do Azure pesquise por SQL databases.

05 – Na tela SQL databases, selecione o banco de dados que deseja.

06 – Após selecionar o banco de dados que desejam em Server name clique no nome do servidor.

07 – Na tela do SQL server, em Security, clique em Private endpoint connections.

08 – Na tela Private endpoint connections, clique em + Private endpoint.

09 – Na tela Create a private endpoint, selecione a assinatura, grupo de recursos, nome e região, em seguida clique em Next: Resource.

10 – Para a opção Resource, em Connection method selecione Connect to an Azure resource in my directory, selecione a subscription desejada, em Resource type selecione Microsoft.sql/servers, para a opção Resource selecione o nome do servidor que deseja configurar o Private endpoint, após selecionar o Resource o target sub-resource será preenchido automaticamente, em seguida clique em Next:Configuration.

11 – Para a opção Configuration, selecione a virtual network e subnet, em Integrate with private DNS zone selecione yes, para a opção Configuration name vamos utilizar o nome padrão sugerido privatelink.database.windows.net, em seguida clique em Review + create.

12 – Na tela Review + create, verifique se todas as informações estão corretas e clique em Create.

13 – Aguarde o provisionamento do recurso ser finalizado.

14 –  Como podemos observar o Private Endpoint foi criado.

15 – Quando configuramos o Private endpoint é criada uma network interface, é atribuído um endereço IP privado da subnet que associamos ao Private endpoint, a partir dai podemos utilizar esse endereço IP privado que foi atribuído para conectar no Azure SQL Database.

16 – Outro recurso que foi criado na configuração do Private endpoit foi o Private DNS zone, no portal pesquise Private DNS zones e observe que temos o dns privatelink.database.windows.net criado, com o registro do tipo A associado ao SQL Server dbbsrvdev.

Negar acesso à rede pública

Quando Deny public network access for definido como Yes, somente as conexões por meio de private endpoints são permitidas. Quando essa configuração for No (default), os clientes podem se conectar usando public endpoints (com regras de firewall baseadas em IP ou com regras de firewall baseadas em rede virtual) ou private endpoints (usando o Azure Private Link).

Diagram showing connectivity when Deny public network access is set to yes versus when Deny public network access is set to no.

17 – No portal do Azure pesquise por SQL databases, selecione o banco de dados que deseja.

18 – Após selecionar o banco de dados clique em Set server firewall.

19 Na tela Firewall settings, para a opção Deny public network access selecione Yes e clique em Save.

20- Aguarde a finalização do Update server firewall rules.

21 –  No portal do Azure, pesquise por SQL databases, selecione o banco de dados que deseja, em Server name copie o nome do servidor.

Configurar Forward Lookup Zones

Precisamos modificar nossas solicitações de DNS para usar o Private Link. O mesmo se aplica ao tráfego local, mas o desafio é dificultado por uma consideração importante: seu servidor DNS on-premises não reside no Azure! (Bem neste tenant, mas vamos ignorar isso. Devido a isso, ele não pode consultar o endereço 10.0.0.6; isso só existe no Azure e só pode ser consultado por recursos que residem em um host do Azure.

Portanto, precisamos modificar nossa configuração de DNS on-premises para encaminhar apenas algumas solicitações (para os serviços PaaS para os quais estamos usando o private link) para algo que resida em nossa virtual network do Azure. Felizmente podemos configurar uma zona dns no servidor on-premises para resolver o endereço IP do private link.

Observações: Para que exista a comunicação com o Azure e seu ambiente on-premises é necessário uma VPN.

Quando criamos o Private endpoint é criado no Azure uma zona dns privada com o nome privatelink.database.core.windows.net

22 – No vídeo abaixo mostro como criar um Forward Lookups Zones e criar um registro do tipo A para o Private endpoint.

Testando a conectividade com o Private endpoint

Nslookup (Name System Look Up ou Look Up do Sistema de Nomes) é um instrumento que permite interrogar um servidor de nomes a fim de obter as informações relativas a um domínio ou a um hóspede e, assim, diagnosticar eventuais problemas de configuração do DNS.

Com o comando nslookup você poderá conferir para qual IP um domínio está efetivamente apontado.

22 – Em um servidor que está no domínio, abra o PowerShell e digite o comando nslookup e o Server name que copiamos, em seguida pressione Enter.

dbsrvdev.database.windows.net

Como podemos observar a resolução está sendo feita para o endereço IP Privado.

Teste a conectividade com o Azure SQL Databases

Use o PowerShell para testar se uma porta está aberta em um servidor

23 – Execute o comando abaixo para verificar se a porta 1433 que é referente ao SQL Server está aberta.

Test-NetConnection -ComputerName 10.0.0.6 -Port 1433

Isso executa um teste de ping e um teste de porta TCP. Se o teste de porta for bem-sucedido, ele mostrará “TcpTestSuceeded: True”.

Conectar no Azure SQL Databases utilizando o Microsoft SQL Server Management Studio

Já escrevi um artigo aqui no site mostrando como conectar no Azure SQL Database utilizando o SSMS, nesse artigo mostro como instalar o Microsoft SQL Server Management Studio, para maiores informações acesse o link abaixo.

Como conectar no Azure SQL Database utilizando o SSMS (SQL Server Management Studio)

24 – Abra o Microsoft SQL Server Management Studio, em Server type selecion Database Engine, em Server name digite o nome do SQL Server em Authentication digite o usuário e senha do SQL Server, em seguida clique em Connect.

25 – Como podemos observar conectamos no Azure SQL Database utilizando o endereço IP Privado configurado no Private endpoint, não temos nenhum acesso liberado para internet.

Comente suas sugestões e observações! 

Forte abraço, obrigado e até o próximo post.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *