Partilhar via


Usar pontos de extremidade de serviço de rede virtual e regras para servidores na Base de Dados SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure do Azure Synapse Analytics

As regras de rede virtual são um recurso de segurança de firewall que controla se o servidor para os seus bancos de dados e pools elásticos no Banco de Dados SQL do Azure, ou para os seus bancos de dados dedicados do pool SQL (anteriormente SQL DW) no Azure Synapse Analytics, aceita comunicações enviadas de sub-redes específicas em redes virtuais. Este artigo explica por que as regras de rede virtual às vezes são sua melhor opção para permitir com segurança a comunicação com seu banco de dados no Banco de Dados SQL e no Azure Synapse Analytics.

Observação

Este artigo aplica-se à Base de Dados SQL e ao Azure Synapse Analytics. Para simplificar, o termo banco de dados refere-se a ambos os bancos de dados no Banco de Dados SQL e no Azure Synapse Analytics. Da mesma forma, quaisquer referências ao servidor referem-se ao servidor lógico que hospeda a Base de Dados SQL e o Azure Synapse Analytics.

Para criar uma regra de rede virtual, deve existir primeiro um ponto de extremidade de serviço de rede virtual para referência da regra.

Observação

Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).

Criar uma regra de rede virtual

Se você quiser criar apenas uma regra de rede virtual, você pode pular para as etapas e explicação mais adiante neste artigo.

Detalhes sobre regras de rede virtual

Esta seção descreve vários detalhes sobre regras de rede virtual.

Apenas uma região geográfica

Cada ponto de extremidade do serviço de rede virtual se aplica a apenas uma região do Azure. O ponto de extremidade não permite que outras regiões aceitem comunicações da sub-rede.

Qualquer regra de rede virtual é limitada à região à qual seu ponto de extremidade subjacente se aplica.

Nível de servidor, não nível de banco de dados

Cada regra de rede virtual se aplica a todo o servidor, não apenas a um banco de dados específico no servidor. Em outras palavras, as regras de rede virtual se aplicam no nível do servidor, não no nível do banco de dados.

Em contrapartida, as regras de PI podem ser aplicadas em qualquer nível.

Funções de administração de segurança

Há uma separação de funções de segurança na administração de endpoints de serviço de rede virtual. É necessária ação de cada uma das seguintes funções:

  • Administrador de Rede (função de Colaborador de Rede): Ative o ponto de extremidade.
  • administrador de banco de dados (função dede Colaborador do SQL Server): Atualize a lista de controle de acesso (ACL) para adicionar a sub-rede fornecida ao servidor.

Alternativa do RBAC do Azure

As funções de administrador de rede e administrador de banco de dados têm mais recursos do que os necessários para gerenciar regras de rede virtual. Apenas é necessário um subconjunto das suas capacidades.

Você tem a opção de usar controle de acesso baseado em função (RBAC) no Azure para criar uma única função personalizada que tenha apenas o subconjunto necessário de recursos. A função personalizada pode ser usada em vez de envolver o administrador de rede ou o administrador de banco de dados. A área de superfície da sua exposição de segurança é menor se você adicionar um usuário a uma função personalizada em comparação com a adição do usuário às outras duas funções principais de administrador.

Observação

Em alguns casos, o banco de dados no Banco de dados SQL e a sub-rede de rede virtual estão em assinaturas diferentes. Nesses casos, você deve garantir as seguintes configurações:

  • O usuário tem as permissões necessárias para iniciar operações, como habilitar pontos de extremidade de serviço e adicionar uma sub-rede de rede virtual ao servidor determinado.
  • Ambas as assinaturas devem ter o provedor Microsoft.Sql registrado.

Limitações

Para o Banco de dados SQL, o recurso de regras de rede virtual tem as seguintes limitações:

  • No firewall do seu banco de dados no Banco de dados SQL, cada regra de rede virtual faz referência a uma sub-rede. Todas essas sub-redes referenciadas devem ser hospedadas na mesma região geográfica que hospeda o banco de dados.
  • Cada servidor pode ter até 128 entradas ACL para qualquer rede virtual.
  • As regras de rede virtual aplicam-se apenas a redes virtuais do Azure Resource Manager e não a modelo de implantação clássico redes.
  • Ativar endpoints de serviço de rede virtual para SQL Database também habilita os endpoints do Azure Database para MySQL e do Azure Database para PostgreSQL. Com os pontos de extremidade configurados para ON, as tentativas de ligação dos pontos de extremidade às suas instâncias do Banco de Dados do Azure para MySQL ou do Banco de Dados do Azure para PostgreSQL podem falhar.
    • O motivo subjacente é que o Banco de Dados do Azure para MySQL e o Banco de Dados do Azure para PostgreSQL provavelmente não têm uma regra de rede virtual configurada. Você deve configurar uma regra de rede virtual para o Banco de Dados do Azure para MySQL e o Banco de Dados do Azure para PostgreSQL.
    • Para definir regras de firewall de rede virtual num servidor lógico SQL que já foi configurado com pontos de extremidade privados, defina Negar acesso à rede pública como No.
  • No firewall, os intervalos de endereços IP se aplicam aos seguintes itens de rede, mas as regras de rede virtual não:
  • Ambas as assinaturas devem estar no mesmo tenant do Microsoft Entra.

Considerações ao usar pontos de extremidade de serviço

Ao usar pontos de extremidade de serviço para o Banco de dados SQL, examine as seguintes considerações:

  • É necessário acessar os IPs públicos do Banco de Dados SQL do Azure. Os NSGs (grupos de segurança de rede) devem ser abertos para IPs do Banco de dados SQL para permitir a conectividade. Você pode fazer isso usando marcas de serviço NSG para o Banco de dados SQL.

Rota Expressa

Se usar ExpressRoute a partir das suas instalações, para emparelhamento público ou emparelhamento da Microsoft, precisará identificar os endereços IP NAT utilizados. Para o peer público, cada circuito ExpressRoute, por padrão, utiliza dois endereços IP NAT aplicados ao tráfego de serviço do Azure quando o tráfego entra no backbone do Microsoft Azure. Para o emparelhamento da Microsoft, os endereços IP NAT utilizados são fornecidos pelo cliente ou pelo provedor de serviços. Para permitir o acesso aos seus recursos de serviço, você deve permitir esses endereços IP públicos na configuração do firewall IP do recurso. Para encontrar os seus endereços IP de circuito de emparelhamento público do ExpressRoute, abra um pedido de suporte com o ExpressRoute por meio do portal do Azure. Para saber mais sobre NAT para emparelhamento público e Microsoft da Rota Expressa, consulte requisitos de NAT para o emparelhamento público do Azure.

Para permitir a comunicação do seu circuito com o Banco de dados SQL, você deve criar regras de rede IP para os endereços IP públicos do seu NAT.

Impacto do uso de extremidades de serviço de rede virtual com Armazenamento Azure

O Armazenamento do Azure implementou o mesmo recurso que permite limitar a conectividade à sua conta de Armazenamento do Azure. Se você optar por usar esse recurso com uma conta de Armazenamento do Azure que o Banco de Dados SQL está usando, poderá ter problemas. Em seguida, há uma lista e discussão dos recursos do Banco de Dados SQL e do Azure Synapse Analytics que são afetados por isso.

Azure Synapse Analytics PolyBase e instrução COPY

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 para ingestão de dados de alta taxa de processamento. Se a conta de Armazenamento do Azure da qual está a carregar dados limitar os acessos exclusivamente a um conjunto de sub-redes de rede virtual, a conectividade ao usar o PolyBase e a instrução COPY para a conta de armazenamento será interrompida. Para habilitar cenários de importação e exportação usando COPY e PolyBase com o Azure Synapse Analytics ao conectar-se ao Armazenamento do Azure que está seguro para uma rede virtual, siga as etapas nesta seção.

Pré-requisitos

  • Instale o Azure PowerShell. Para obter mais informações, consulte Instalar o módulo do Azure Az PowerShell.
  • Se tiver uma conta de Blob Storage do Azure ou uma conta v1 de uso geral, deve primeiro atualizar para uma conta v2 de uso geral seguindo as etapas em Atualizar para uma conta de armazenamento v2 de uso geral.
  • Você deve ter Permitir que serviços confiáveis da Microsoft acessem esta conta de armazenamento ativada no menu de configurações de Firewalls e Redes Virtuais da Conta de Armazenamento do Azure. Habilitar essa configuração permitirá que o PolyBase e a instrução COPY se conectem à conta de armazenamento usando autenticação forte onde o tráfego de rede permanece no backbone do Azure. Para obter mais informações, consulte este guia.

Importante

O módulo PowerShell Azure Resource Manager (AzureRM) foi preterido em 29 de fevereiro de 2024. Todo o desenvolvimento futuro deve usar o módulo Az.Sql. Os usuários são aconselhados a migrar do AzureRM para o módulo Az PowerShell para garantir suporte e atualizações contínuos. O módulo AzureRM não é mais mantido ou suportado. Os argumentos para os comandos no módulo Az PowerShell e nos módulos AzureRM são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo do Az PowerShell.

Passos

  1. Se você tiver um pool SQL dedicado autônomo (anteriormente SQL DW), registre seu servidor SQL com o Microsoft Entra ID usando o PowerShell:

    Connect-AzAccount
    Select-AzSubscription -SubscriptionId <subscriptionId>
    Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentity
    

    Esta etapa não é necessária para os pools SQL dedicados em um espaço de trabalho do Azure Synapse Analytics. A identidade gerenciada atribuída ao sistema (SA-MI) do espaço de trabalho é um membro da função Synapse Administrator e, portanto, tem privilégios elevados nos pools SQL dedicados do espaço de trabalho.

  2. Crie uma conta de armazenamento v2 de uso geral seguindo as etapas em Criar uma conta de armazenamento.

  3. Na página da conta de armazenamento, selecione Controle de acesso (IAM).

  4. Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.

  5. Atribua a seguinte função. Para ver as etapas detalhadas, consulte Atribuição de funções do Azure utilizando o portal do Azure.

    Cenário Valor
    Funções Contribuidor de dados de armazenamento Blob
    Atribuir acesso a Usuário, grupo ou entidade de serviço
    Membros Servidor ou espaço de trabalho que hospeda seu pool SQL dedicado que você registrou com o Microsoft Entra ID

    Captura de tela que mostra a página Adicionar atribuição de função no portal do Azure.

    Observação

    Somente membros com privilégio de proprietário na conta de armazenamento podem executar esta etapa. Para várias funções integradas do Azure, consulte funções integradas do Azure.

  6. Para habilitar a conectividade do PolyBase com a conta de Armazenamento do Azure:

    1. Crie um banco de dados de chave mestra se você não tiver criado um anteriormente.

      CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];
      
    2. Crie uma credencial com escopo de banco de dados com IDENTITY = 'Managed Service Identity'.

      CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';
      
      • Não há necessidade de especificar SECRET com uma chave de acesso do Armazenamento do Azure porque esse mecanismo usa de Identidade Gerenciada sob as cobertas. Esta etapa não é necessária para os pools SQL dedicados em um espaço de trabalho do Azure Synapse Analytics. A identidade gerenciada atribuída ao sistema (SA-MI) do espaço de trabalho é um membro da função Synapse Administrator e, portanto, tem privilégios elevados nos pools SQL dedicados do espaço de trabalho.

      • O nome IDENTITY deve ser 'Identidade de Serviço Gerenciado' para que a conectividade PolyBase funcione com uma conta de Armazenamento do Azure protegida em uma rede virtual.

    3. Crie uma fonte de dados externa com o esquema abfss:// para se conectar à sua conta de armazenamento v2 de uso geral, utilizando o PolyBase.

      CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);
      
      • Se você já tiver tabelas externas associadas a uma conta de armazenamento de Blob ou v1 de uso geral, você deve primeiro descartar essas tabelas externas. Em seguida, solte a fonte de dados externa correspondente. Em seguida, crie uma fonte de dados externa com o esquema de abfss:// que se conecta a uma conta de armazenamento v2 de uso geral, conforme mostrado anteriormente. Em seguida, recrie todas as tabelas externas usando essa nova fonte de dados externa. Você pode usar o Assistente para Gerar e Publicar Scripts para gerar scripts de criação para todas as tabelas externas com facilidade.
      • Para obter mais informações sobre o esquema de abfss://, consulte Usar o URI do Azure Data Lake Storage Gen2.
      • Para obter mais informações sobre os comandos T-SQL, consulte CREATE EXTERNAL DATA SOURCE.
    4. Efetue a consulta como normalmente usando tabelas externas.

Auditoria de blobs no Banco de Dados SQL

A auditoria SQL do Azure pode gravar logs de auditoria SQL em sua própria conta de armazenamento. Se esta conta de armazenamento utiliza o recurso de pontos de extremidade de serviço da rede virtual, veja como escrever uma auditoria numa conta de armazenamento dentro de uma VNet e firewall.

Adicionar uma regra de firewall de rede virtual ao servidor

Há muito tempo, antes de esta funcionalidade ser aprimorada, era necessário ativar os pontos de extremidade do serviço de rede virtual antes de poder implementar uma regra de rede virtual ativa no firewall. Os pontos de extremidade associaram uma determinada sub-rede de rede virtual a uma base de dados do SQL Database. A partir de janeiro de 2018, podes contornar este requisito ao definir o indicador IgnoreMissingVNetServiceEndpoint. Agora, você pode adicionar uma regra de firewall de rede virtual ao seu servidor sem ativar endpoints de serviço de rede virtual.

A simples configuração de uma regra de firewall não ajuda a proteger o servidor. Você também deve ativar os pontos de extremidade do serviço de rede virtual para que a segurança entre em vigor. Quando ativa os endpoints de serviço, a sub-rede da rede virtual enfrenta interrupção até concluir a transição de desativado para ativado. Este período de inatividade é especialmente verdadeiro no contexto de grandes redes virtuais. Você pode usar o indicador IgnoreMissingVNetServiceEndpoint para reduzir ou eliminar o tempo de inatividade durante a mudança.

Pode definir a opção de configuração IgnoreMissingVNetServiceEndpoint utilizando o PowerShell. Para obter mais informações, consulte a PowerShell para criar um ponto de extremidade de serviço de rede virtual e uma regra para a Base de Dados SQL.

Observação

Para obter instruções semelhantes no Azure Synapse Analytics, consulte regras de firewall IP do Azure Synapse Analytics

Usar o portal do Azure para criar uma regra de rede virtual

Esta seção ilustra como você pode usar o de portal do Azure para criar um de regra de rede virtual em seu banco de dados no Banco de dados SQL. A regra instrui o seu banco de dados a permitir a comunicação de uma sub-rede específica marcada como um ponto de extremidade de serviço de rede virtual .

Observação

Se você pretende adicionar um ponto de extremidade de serviço às regras de firewall de rede virtual do seu servidor, primeiro verifique se os pontos de extremidade de serviço estão ativados para a sub-rede.

Se os pontos de extremidade de serviço não estiverem ativados para a sub-rede, o portal solicitará que você os ative. Selecione o botão Ativar no mesmo painel no qual você adiciona a regra.

Pré-requisitos

Você já deve ter uma sub-rede que esteja etiquetada com o ponto de extremidade do serviço de rede virtual específico do tipo relevante para o Banco de Dados SQL.

Etapas do portal do Azure

  1. Inicie sessão no portal do Azure.

  2. Procure e selecione SQL serverse, em seguida, selecione o servidor. Em Segurança, selecione Rede.

  3. Na guia de acesso público , verifique se o acesso à rede pública está definido como Selecionar redes , caso contrário, as configurações de Redes virtuais estarão ocultas. Selecione + Adicionar rede virtual existente na seção Redes virtuais.

    Captura de tela que mostra as propriedades lógicas do servidor para Rede.

  4. No novo painel Criar/Atualizar, preencha as caixas com os nomes dos seus recursos do Azure.

    Dica

    Você deve incluir o prefixo de endereço correto para sua sub-rede. Pode encontrar o valor do prefixo de endereço no portal. Vá para Todos os recursos>Todos os tipos>Redes virtuais. O filtro exibe suas redes virtuais. Selecione sua rede virtual e, em seguida, selecione Sub-redes. A coluna ADDRESS RANGE tem o prefixo de endereço que você precisa.

    Captura de tela que mostra o preenchimento de caixas para a nova regra.

  5. Consulte a regra de rede virtual resultante no painel de firewall do.

    Captura de tela que mostra a nova regra no painel Firewall.

  6. Defina Permitir que os serviços e recursos do Azure acedam este servidor para Não.

    Importante

    Se deixar Permitir que os serviços e recursos do Azure acessem este servidor marcado, o seu servidor aceitará comunicação de qualquer sub-rede dentro do limite do Azure. Trata-se de uma comunicação que se origina de um dos endereços IP reconhecidos como estando dentro dos intervalos definidos para datacenters do Azure. Deixar o controle ativado pode ser um acesso excessivo do ponto de vista da segurança. A funcionalidade de ponto de extremidade do serviço de Rede Virtual do Microsoft Azure, em coordenação com a funcionalidade de regras de rede virtual do Banco de Dados SQL, juntos podem reduzir a sua superfície de exposição à segurança.

  7. Selecione o botão OK na parte inferior do painel.

Observação

Os seguintes status ou estados aplicam-se às regras:

  • Ready: indica que a operação iniciada foi bem-sucedida.
  • Falha: indica que a operação iniciada falhou.
  • Eliminado: Aplica-se apenas à operação Delete e indica que a regra foi eliminada e já não se aplica.
  • InProgress: Indica que a operação está em andamento. A regra antiga aplica-se enquanto a operação estiver neste estado.

Usar o PowerShell para criar uma regra de rede virtual

Um script também pode criar regras de rede virtual usando o cmdlet do PowerShell New-AzSqlServerVirtualNetworkRule ou az network vnet create. Para obter mais informações, consulte PowerShell para criar um endpoint de serviço de rede virtual e uma regra para a base de dados SQL.

Usar a API REST para criar uma regra de rede virtual

Internamente, os cmdlets do PowerShell para ações SQL de rede virtual chamam APIs REST. Você pode chamar as APIs REST diretamente. Para obter mais informações, consulte Regras de rede virtual: Operações.

Solucionar problemas de erros 40914 e 40615

O erro de conexão 40914 está relacionado às regras de rede virtual , conforme especificado no painel do Firewall no portal do Azure.
O erro 40615 é semelhante, exceto que está relacionado a regras de endereço IP no firewall.

Erro 40914

Texto da mensagem: "Não é possível abrir o servidor '[nome do servidor]' solicitado pelo login. O cliente não tem permissão para acessar o servidor."

Descrição do erro: O cliente está numa sub-rede que tem endpoints de servidor de rede virtual. Mas o servidor não tem nenhuma regra de rede virtual que conceda à sub-rede o direito de se comunicar com o banco de dados.

Resolução de erros: No painel Firewall do do portal do Azure, use o controle de regras de rede virtual para adicionar um de regra de rede virtual para a sub-rede.

Erro 40615

Texto da mensagem: "Não é possível abrir o servidor '{0}' solicitado pelo login. Cliente com endereço IP '{1}' não tem permissão para acessar o servidor."

Descrição do erro: O cliente está tentando se conectar a partir de um endereço IP que não está autorizado a se conectar ao servidor. O firewall do servidor não tem nenhuma regra de endereço IP que permita que um cliente se comunique do endereço IP fornecido para o banco de dados.

Resolução de erros: Insira o endereço IP do cliente como uma regra de IP. Use o painel de Firewall no portal do Azure para executar esta etapa.

Próximos passos