Use regras e pontos de extremidade de serviço de rede virtual para o Azure Synapse Analytics

Dica

Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial com base de data lake, arquitetura pronta para o futuro, IA integrada e novos recursos. Se você não estiver familiarizado com o data warehouse, comece com Fabric Data Warehouse. As cargas de trabalho existentes de pools de SQL dedicados podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

Aplica-se a: Pools de SQL dedicados do Azure Synapse Analytics

Regras de rede virtual são um recurso de segurança de firewall que controla se o servidor lógico para seus bancos de dados dedicados de SQL pool (anteriormente SQL DW) no Azure Synapse Analytics aceita comunicações enviadas de sub-redes específicas em redes virtuais. Este artigo explica por que regras de rede virtual às vezes são sua melhor opção para permitir a comunicação segura com seu pool SQL dedicado.

Para criar uma regra de rede virtual, primeiro deve haver um endpoint de serviço de rede virtual para a regra referenciar.

Criar uma regra da rede virtual

Se você quiser criar apenas uma regra de rede virtual, pode pular para os passos e explicações mais adiante neste artigo.

Detalhes sobre regras de rede virtual

Esta seção descreve vários detalhes sobre regras de redes virtuais.

Apenas uma região geográfica

Cada endpoint de 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 a comunicação da sub-rede.

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

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

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

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

Há uma separação entre os papéis de segurança na administração de endpoints de serviços de rede virtual. É exigida ação de cada um dos seguintes papéis:

  • Administrador de Rede (função Network Contributor): Ative o endpoint.
  • Administrador de Banco de Dados (função de Contribuidor do SQL Server): Atualize a lista de controle de acesso (ACL) para adicionar a sub-rede dada ao servidor.

Alternativa ao Azure RBAC

Os papéis de Administrador de Rede e Administrador de Banco de Dados possuem mais capacidades do que o necessário para gerenciar regras de rede virtual. Apenas um subconjunto de suas capacidades é necessário.

Você tem a opção de usar o controle de acesso baseado em funções (RBAC) no Azure para criar uma única função personalizada que tenha apenas o subconjunto necessário de capacidades. Em vez de envolver o Administrador da Rede ou o do Banco de Dados, você pode usar a função personalizada. A área de superfície de sua exposição de segurança será menor se você adicionar um usuário a uma função personalizada em vez de adicioná-lo às outras duas funções principais de administrador.

Note

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

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

Limitations

Para pools SQL dedicados independentes, o recurso de regras de rede virtual possui as seguintes limitações:

  • No firewall do seu servidor lógico, cada regra de rede virtual faz referência a uma sub-rede. Todas as sub-redes referenciadas devem ser hospedadas na mesma região geográfica do pool dedicado SQL.
  • Cada servidor pode ter até 128 entradas ACL para qualquer rede virtual.
  • Regras de rede virtual se aplicam apenas a redes virtuais do Azure Resource Manager e não a redes do modelo de implantação clássico.
  • No firewall, os intervalos de endereços IP se aplicam aos seguintes itens de rede, mas isso não se aplica às regras de rede virtual:
  • Ambas as assinaturas devem estar no mesmo tenant da Microsoft Entra.

Considerações ao usar endpoints de serviço

Ao usar endpoints de serviço para um pool SQL dedicado, revise as seguintes considerações:

  • É necessário acesso de saída aos IPs públicos do Azure Synapse Analytics. Grupos de segurança de rede (NSGs) devem permitir conectividade aos IPs dos serviços. Você pode usar a marca de serviço do Sql NSG.

ExpressRoute

Se você usar o ExpressRoute das suas instalações, para peering público ou peering da Microsoft, precisará identificar os endereços IP NAT que são usados. Para peering público, cada circuito ExpressRoute usa por padrão dois endereços IP NAT aplicados ao tráfego de serviço do Azure quando o tráfego entra na backbone da rede Microsoft Azure. Para peering da Microsoft, os endereços IP NAT usados são fornecidos pelo cliente ou pelo provedor de serviço. Para permitir o acesso aos recursos do serviço, você deve permitir estes endereços IP públicos na configuração do firewall de IP do recurso. Para encontrar seus endereços IP públicos do circuito de emparelhamento ExpressRoute, abra um chamado de suporte com o ExpressRoute via o portal do Azure. Para saber mais sobre NAT para o emparelhamento do ExpressRoute público e da Microsoft, confira Requisitos de NAT para o emparelhamento público do Azure.

Para permitir a comunicação do seu circuito para o Azure Synapse Analytics, você deve criar regras de rede IP para os endereços IP públicos do seu NAT.

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

O Armazenamento do Azure implementou o mesmo recurso que permite que você limite a conectividade à sua conta de Armazenamento do Azure. Se você usar esse recurso com uma conta do Armazenamento do Azure que o Azure Synapse Analytics utiliza, pode ter problemas.

As seções a seguir discutem os recursos afetados do Azure Synapse Analytics.

Azure Synapse Analytics PolyBase e instrução COPY

PolyBase e a instrução COPY são comumente usados para carregar dados no Azure Synapse Analytics a partir do Armazenamento do Azure, para ingestão de dados com alta taxa de transferência. Se a conta do Armazenamento do Microsoft Azure da qual você está carregando dados limita o acesso apenas a um conjunto de sub-redes de rede virtual, a conectividade com a conta de armazenamento no uso do PolyBase e da instrução COPY falha. Para habilitar cenários de importação e exportação usando COPY e PolyBase, com o Azure Synapse Analytics conectando-se ao Armazenamento do Azure que está protegido em uma rede virtual, siga os passos desta seção.

Prerequisites

  • Instale o PowerShell do Azure. Para saber mais, confira Instalar o módulo Az PowerShell do Azure.
  • Se você tem uma conta de uso geral v1 ou Armazenamento de Blobs do Azure, primeiro deve atualizar para a v2 de uso geral seguindo as etapas em Atualizar para uma conta de armazenamento v2 de uso geral.
  • Você deve ter ativado o Permitir que os serviços confiáveis da Microsoft Services acessem essa conta de armazenamento no menu de configurações de Firewalls e Redes Virtuais da conta Armazenamento do Azure. Ativar 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 na espinha dorsal do Azure. Para mais informações, consulte este guia.

Important

O módulo AzureRM (Azure Resource Manager) do PowerShell 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 do Az PowerShell para garantir o suporte e as atualizações contínuas. O módulo AzureRM não é mais mantido ou tem suporte. Os argumentos para os comandos no módulo do Az PowerShell e nos módulos do AzureRM são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo do Az PowerShell.

Steps

  1. Se você tem um pool SQL dedicado independente (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
    

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

  2. Crie uma Conta de Armazenamento v2 de uso geral seguindo os passos em Criar uma conta de armazenamento.

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

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

  5. Atribua a função a seguir. Para obter etapas detalhadas, consulte Atribuir funções do Azure usando o portal do Azure.

    Setting Valor
    Role Colaborador de Dados do Storage Blob
    Atribuir acesso a Utilizador, grupo ou principal de serviço
    Members Servidor ou espaço de trabalho hospedando seu pool SQL dedicado que você registrou no Microsoft Entra ID

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

    Note

    Somente membros com privilégio de proprietário na conta de armazenamento podem realizar essa etapa. Para conhecer as várias funções internas do Azure, confira Funções internas do Azure.

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

    1. Crie uma chave mestra do banco de dados se você ainda não criou uma antes.

      CREATE MASTER KEY [ENCRYPTION BY PASSWORD = '<password>'];
      
    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 Identidade Gerenciada nos bastidores. Essa etapa não é necessária para os pools SQL dedicados dentro de um espaço de trabalho do Azure Synapse Analytics. A identidade gerenciada atribuída pelo sistema (SA-MI) do workspace é membro da função de Administrador do Synapse e, portanto, tem privilégios elevados nos pools de SQL dedicados do workspace.

      • O nome IDENTITY deve ser 'Managed Service Identity' para que a conectividade do PolyBase funcione com uma conta do Armazenamento do Azure protegida por uma rede virtual.

    3. Crie uma fonte de dados externa com o esquema abfss:// para conectar-se a sua conta de armazenamento de uso geral v2 usando 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 uso geral v1 ou a uma conta de Armazenamento de Blobs, deverá primeiro remover essas tabelas externas. Depois, descarte a fonte de dados externa correspondente. Em seguida, crie uma fonte de dados externa com o abfss:// esquema que se conecta a uma conta de armazenamento v2 de uso geral, como já foi mostrado. Depois, recrie todas as tabelas externas usando essa nova fonte de dados externa. Você pode usar o Assistente de Geração e Publicação de Scripts para gerar scripts de criação para todas as tabelas externas com facilidade.
      • Para obter mais informações sobre o esquema abfss://, confira Usar URI do Azure Data Lake Storage Gen2.
      • Para mais informações sobre os comandos T-SQL, veja CREATE EXTERNAL DATA SOURCE.
    4. Consulte normalmente usando tabelas externas.

auditoria do Azure Synapse Analytics para o armazenamento de blobs

A auditoria do Azure Synapse Analytics pode gravar logs de auditoria SQL na sua própria conta de armazenamento. Se essa conta de armazenamento usa o recurso de endpoints de serviço de rede virtual, veja como gravar registros de auditoria para uma conta de armazenamento atrás da VNet e do firewall.

Adicione uma regra de firewall de rede virtual ao servidor SQL do seu pool de SQL dedicado

Há muito tempo, antes desse recurso ser aprimorado, era necessário ativar os endpoints de serviço de rede virtual antes de poder implementar uma regra de rede virtual ao vivo no firewall. Os endpoints relacionam uma determinada sub-rede virtual a um pool SQL dedicado. A partir de janeiro de 2018, você pode contornar esse requisito definindo a flag IgnoreMissingVNetServiceEndpoint . Agora, você pode adicionar uma regra de firewall de rede virtual ao seu servidor sem precisar ativar os endpoints de serviço de rede virtual.

Simplesmente definir uma regra de firewall não ajuda a proteger o servidor. Você também precisa ativar os pontos de extremidade de serviço de rede virtual para que a segurança comece a funcionar. Quando você ativa os endpoints de serviço, sua sub-rede virtual sofre tempo de inatividade até completar a transição de desligado para ligado. Esse período de inatividade ocorre principalmente no contexto de grandes redes virtuais. Você pode usar a flag IgnoreMissingVNetServiceEndpoint para reduzir ou eliminar o tempo de inatividade durante a transição.

Você pode definir a IgnoreMissingVNetServiceEndpoint flag usando o PowerShell. Para mais informações, veja New-AzSqlServerVirtualNetworkRule.

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

Note

Essas instruções de regras de rede virtual se aplicam a pools SQL dedicados independentes. Para configuração de rede de workspace, veja regras de firewall IP do Azure Synapse Analytics.

Nesta seção, aprenda como você pode usar o portal do Azure para criar uma regra de rede virtual para um pool SQL dedicado independente. A regra instrui o servidor lógico a aceitar comunicação de uma sub-rede específica que foi marcada como endpoint de serviço da rede virtual.

Note

Se você pretende adicionar um endpoint de serviço às regras do firewall de rede virtual do seu servidor, primeiro certifique-se de que os endpoints de serviço estejam ativados para a sub-rede.

Se os endpoints de serviço não estiverem ativados para a sub-rede, o portal pede para você habilitá-los. Selecione o botão Ativar no mesmo painel em que você adiciona a regra.

Prerequisites

Você já precisa ter uma sub-rede marcada com o ponto de extremidade de serviço de rede virtual nome do tipo usado pelo Azure Synapse Analytics.

etapas do portal do Azure

  1. Entre no portal do Azure.

  2. Procure e selecione servidores SQL, e então selecione seu servidor. Em Segurança, selecione Rede.

  3. Na aba Acesso público, certifique-se de que o acesso à rede pública esteja configurado para Selecionar redes, caso contrário as configurações Redes virtuais ficam ocultas. Selecione + Adicionar rede virtual existente na seção Redes virtuais.

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

    Dica

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

  5. Veja a regra de rede virtual resultante no painel do Firewall .

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

    Important

    Se você deixar Permitir serviços e recursos do Azure acessar este servidor ativado, seu servidor aceita comunicação de qualquer sub-rede dentro do limite do Azure. Essa é a comunicação que se origina de um dos endereços IP reconhecidos como dentro de intervalos definidos para datacenters do Azure. Deixar o controle ativado pode conceder acesso excessivo do ponto de vista da segurança. O recurso de ponto de extremidade de serviço da Rede Virtual do Microsoft Azure, juntamente com as regras de rede virtual do Azure Synapse Analytics, pode reduzir sua superfície de ataque.

  7. Selecione o botão OK perto do final do painel.

Note

Os seguintes status ou estados se aplicam às regras:

  • Pronto: Indica que a operação que você iniciou foi bem-sucedida.
  • Falhou: Indica que a operação que você iniciou falhou.
  • Deletado: Aplica-se apenas à Delete operação e indica que a regra foi excluída e não se aplica mais.
  • InProgress: Indica que a operação está em andamento. A regra antiga se aplica enquanto a operação está nesse estado.

Use o PowerShell para criar uma regra de rede virtual

Um script também pode criar regras de rede virtual usando o cmdlet PowerShell New-AzSqlServerVirtualNetworkRule ou az network vnet create. Para mais informações, veja New-AzSqlServerVirtualNetworkRule.

Use a API REST para criar uma regra de rede virtual

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

Solucionar problemas nos erros 40914 e 40615

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

Erro 40914

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

Descrição do erro: O cliente está em uma sub-rede que possui pontos de extremidade de serviço de rede virtual. Mas o servidor não possui uma regra de rede virtual que conceda à sub-rede o direito de se comunicar com o banco de dados.

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

Erro 40615

Texto da mensagem: "Não é possível abrir o servidor '{0}' solicitado pelo login. O cliente com o 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 possui uma regra de endereço IP que permita que um cliente se comunique do endereço IP dado para o banco de dados.

Resolução do erro: Insira o endereço IP do cliente como uma regra de IP. Use o painel Firewall no portal do Azure para realizar essa etapa.