Controles de acesso à rede do Banco de Dados SQL do Azure e do Azure Synapse Analytics

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

Ao criar um servidor lógico no portal do Azure para o Banco de Dados SQL do Azure e o Azure Synapse Analytics, o resultado é um ponto de extremidade público no formato yourservername.database.windows.net.

Você pode usar os seguintes controles de acesso à rede para permitir o acesso seletivo a um banco de dados por meio do ponto de extremidade público:

  • Permitir que os serviços e recursos do Azure acessem este servidor: quando habilitado, outros recursos no limite do Azure, por exemplo, uma Máquina Virtual do Azure, podem acessar o Banco de Dados SQL
  • Regras de firewall de IP: use este recurso para permitir explicitamente conexões de um determinado endereço IP, por exemplo, de computadores locais

Você também pode permitir o acesso privado ao banco de dados de redes virtuais por meio de:

  • Regras de firewall de rede virtual: Use este recurso para permitir o tráfego de uma determinada rede virtual no limite do Azure
  • Link privado: use este recurso para criar um ponto de extremidade privado para o servidor lógico no Azure em uma rede virtual específica

Importante

Este artigo não se aplica à Instância Gerenciada de SQL. Para saber mais sobre a configuração de rede necessária, consulte Conectar-se a uma Instância Gerenciada de SQL do Azure.

Consulte o vídeo abaixo para obter uma explicação de alto nível desses controles de acesso e saber o que eles fazem:

Permitir serviços do Azure

Por padrão, durante a criação de um novo servidor lógico por meio do portal do Azure, Permitir que os serviços e recursos do Azure acessem este servidor está desmarcado e desabilitado. Ela aparece quando a conectividade é permitida por meio do ponto de extremidade de serviço público.

Você também pode alterar essa configuração por meio da opção Rede, depois da criação do servidor lógico, conforme o seguinte:

Screenshot of manage server firewall

Quando Permitir que os serviços e recursos do Azure acessem este servidor é habilitado, o servidor permite comunicações de todos os recursos no limite do Azure, que podem ou não fazer parte da assinatura.

Em muitos casos, a habilitação dessa configuração fornece muito mais permissões do que o desejado pela maioria dos clientes. É possível desmarcar essa configuração e substituí-la por regras de firewall de IP ou regras de firewall de rede virtual mais restritivas.

No entanto, isso afeta os seguintes recursos que são executados em máquinas virtuais no Azure que não fazem parte da rede virtual e que, portanto, se conectam ao banco de dados por meio de um endereço IP do Azure:

Serviço de Importação/Exportação

O serviço de importação e exportação não funciona quando Permitir que os serviços e recursos do Azure acessem este servidor não está habilitado. No entanto, é possível resolver o problema executando o SqlPackage manualmente em uma VM do Azure ou executando a exportação diretamente no código por meio da API do DACFx.

Sincronização de Dados

Para usar o recurso de sincronização de dados com Permitir que os serviços e recursos do Azure acessem este servidor desabilitado, é preciso criar entradas de regra de firewall individuais para adicionar endereços IP da marca de serviço SQL para a região que hospeda o banco de dados Hub. Adicione essas regras de firewall no nível dos servidores que hospedam os bancos de dados de Hub e de Membro (que podem estar em regiões diferentes)

Use o script do PowerShell a seguir para gerar endereços IP correspondentes à marca de serviço SQL para a região Oeste dos EUA

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

Dica

Get-AzNetworkServiceTag retorna o intervalo global para a marca de serviço SQL, apesar de especificar o parâmetro de local. Filtre-o para a região que hospeda o banco de dados de hub usado pelo grupo de sincronização

Observe que a saída do script do PowerShell está na notação CIDR (roteamento entre domínios sem classe). Ela precisa ser convertida em um formato de endereço IP inicial e final por meio de Get-IPrangeStartEnd.ps1, como a seguir:

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

Você pode usar esse script adicional do PowerShell para converter todos os endereços IP de CIDR no formato de endereço IP inicial e final.

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

Agora é possível adicioná-las como regras de firewall distintas e desabilitar a configuração Permitir que os serviços e recursos do Azure acessem este servidor.

Regras de firewall de IP

O firewall baseado em IP é um recurso do servidor lógico no Azure que impede todo o acesso ao servidor até que você adicione explicitamente endereços IP dos computadores cliente.

Regras de firewall de rede virtual

Além das regras de IP, o firewall do servidor permite definir regras de rede virtual. Para saber mais, confira Pontos de extremidade de serviço de rede virtual para o Banco de Dados SQL do Azure.

Terminologia de Rede do Azure

Familiarize-se com os seguintes termos de Rede do Azure à medida que você explora as regras de firewall de rede virtual

Rede virtual: você pode ter redes virtuais associadas à sua assinatura do Azure

Sub-rede: uma rede virtual contém sub-redes. Todas as máquinas virtuais do Azure (VMs) que você tem são atribuídas a sub-redes. Uma sub-rede pode conter várias VMs ou outros nós de computadores. Os nós de computação que estão fora da rede virtual não podem acessá-la, a menos que você configure a segurança para permitir esse acesso.

Ponto de extremidade de serviço de rede virtual: um ponto de extremidade de serviço de rede virtual é uma sub-rede cujos valores de propriedade incluem um ou mais nomes formais de tipo de serviço do Azure. Neste artigo, você saberá mais sobre o nome do tipo Microsoft.Sql, que faz referência ao serviço de Banco de Dados SQL do Azure.

Regra de rede virtual: uma regra de rede virtual de servidor é uma sub-rede listada na ACL (lista de controle de acesso) do servidor. Para estar na ACL do seu banco de dados no Banco de Dados SQL, a sub-rede deve conter o nome do tipo Microsoft.Sql. Uma regra de rede virtual informa ao servidor que ele deve aceitar comunicações de todos os nós que estão na sub-rede.

Regras de firewall de rede virtual vs. IP

O firewall do Banco de Dados SQL do Azure permite especificar os intervalos de endereços IP dos quais as comunicações são aceitas no Banco de dados SQL. Essa abordagem é adequada para endereços IP estáveis que estão fora da rede privada do Azure. No entanto, as VMs (máquinas virtuais) na rede privada do Azure são configuradas com endereços IP dinâmicos. Esses endereços podem ser alterados quando a VM é reiniciada e podem invalidar a regra de firewall baseada em IP. Seria ilusório especificar um endereço IP dinâmico em uma regra de firewall, em um ambiente de produção.

Você pode solucionar essa limitação obtendo um endereço IP estático para sua VM. Para saber mais, consulte Criar uma máquina virtual com um endereço IP público estático por meio do portal do Azure. No entanto, a abordagem de IP estático pode ser difícil de gerenciar e cara quando aplicada em escala.

As regras de rede virtual são uma alternativa mais fácil para estabelecer e gerenciar o acesso de uma sub-rede específica que contém suas VMs.

Observação

Ainda não é possível ter o Banco de Dados SQL em uma sub-rede. Se seu servidor for um nó em uma sub-rede de sua rede virtual, todos os nós na rede virtual poderão se comunicar com seu Banco de Dados SQL. Nesse caso, suas VMs podem se comunicar com o Banco de Dados SQL sem a necessidade de nenhuma regra da rede virtual ou regras de IP.

O Link Privado permite se conectar a um servidor por meio de um ponto de extremidade privado. Esse ponto de extremidade privado representa um endereço IP privado em uma rede virtual e em uma sub-rede específicas.

Próximas etapas