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

Dica

Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial baseado numa base de data lake, com uma arquitetura pronta para o futuro, IA incorporada e novas funcionalidades. Se és novo no data warehousing, começa pelo Fabric Data Warehouse. As cargas de trabalho existentes de pool SQL dedicado podem atualizar para o Fabric para acessar novas capacidades em ciência de dados, análise em tempo real e relatórios.

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

As regras de rede virtual são uma funcionalidade de segurança de firewall que controla se o servidor lógico para as bases de dados do seu pool SQL dedicado (anteriormente SQL DW) no Azure Synapse Analytics aceita comunicações enviadas de sub-redes específicas em redes virtuais. Este artigo explica porque é que as regras de rede virtual são, por vezes, a melhor opção para permitir a comunicação segura com o seu pool SQL dedicado.

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

Criar uma regra de rede virtual

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

Detalhes sobre regras de rede virtual

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

Apenas uma região geográfica

Cada endpoint de serviço de rede virtual aplica-se apenas a 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 está limitada à região a que o seu endpoint subjacente se aplica.

Ao nível do servidor, não ao nível da base de dados

Cada regra de rede virtual aplica-se a todo o seu servidor, não apenas a uma base de dados específica no servidor. Por outras palavras, as regras de rede virtual aplicam-se ao nível do servidor, não ao nível da base de dados.

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

Existe uma separação dos papéis de segurança na administração dos endpoints de serviços de rede virtual. É exigida ação de cada uma das seguintes funções:

Alternativa ao Azure RBAC

As funções de Administrador de Rede e Administrador de Base de Dados têm mais capacidades do que o necessário para gerir as regras da rede virtual. Apenas um subconjunto das suas capacidades é necessário.

Tem a opção de usar controlo 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. A função personalizada poderia ser usada em vez de envolver o Administrador de Rede ou o Administrador de Base de Dados. A superfície da sua exposição de segurança é menor se adicionar um utilizador a uma função personalizada em comparação com adicionar o utilizador às outras duas funções principais de administrador.

Note

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

  • O utilizador tem as permissões necessárias para iniciar operações, como ativar endpoints de serviço e adicionar uma sub-rede virtual ao servidor em questão.
  • Ambas as subscrições devem ter o Microsoft.Sql provedor registado.

Limitations

Para pools SQL dedicados autónomos, a funcionalidade de regras de rede virtual tem as seguintes limitações:

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

Considerações ao utilizar endpoints de serviço

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

  • É necessário acesso de saída a IPs públicos do Azure Synapse Analytics. Os grupos de segurança de rede (NSGs) devem permitir a conectividade aos IPs de serviço. Pode usar a Sqletiqueta de serviço NSG.

ExpressRoute

Se usar o ExpressRoute a partir das suas instalações, para peering público ou Microsoft, terá de identificar os endereços IP NAT que são utilizados. Para peering público, cada circuito ExpressRoute utiliza por defeito dois endereços IP NAT aplicados ao tráfego de serviço do Azure quando este entra na espinha dorsal da rede Microsoft Azure. Para peering Microsoft, os endereços IP NAT usados são fornecidos pelo cliente ou pelo fornecedor de serviços. Para permitir o acesso aos recursos do serviço, tem de permitir estes endereços IP públicos na configuração de firewall de IP dos recursos. Para encontrar os endereços IP do circuito ExpressRoute com peering público, abra um ticket de suporte com o ExpressRoute através do portal Azure. Para saber mais sobre NAT para peering público e peering da Microsoft do ExpressRoute, consulte os requisitos de NAT para peering público do Azure.

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

Impacto da utilização de pontos finais de serviço de rede virtual com o Armazenamento do Azure

O Armazenamento do Azure implementou a mesma funcionalidade que permite limitar a conetividade à sua conta do Armazenamento do Azure. Se usar esta funcionalidade com uma conta do Armazenamento do Azure que o Azure Synapse Analytics utiliza, pode ter problemas.

As secções seguintes discutem as funcionalidades afetadas do Azure Synapse Analytics.

Azure Synapse Analytics PolyBase e COPY statement

O PolyBase e a instrução COPY são frequentemente usados para carregar dados no Azure Synapse Analytics a partir do Armazenamento do Azure para ingestão de dados de alto rendimento. Se a conta do Armazenamento do Azure de onde está a carregar dados limitar o acesso apenas a um conjunto de sub-redes virtuais, a conectividade ao usar o PolyBase e a instrução COPY para a conta de armazenamento vai falhar. Para permitir cenários de importação e exportação usando COPY e PolyBase, com o Azure Synapse Analytics a ligar-se ao Armazenamento do Azure que está protegido numa rede virtual, siga os passos desta secção.

Prerequisites

  • Instale o Azure PowerShell. Para obter mais informações, veja Instalar o módulo Azure Az do PowerShell.
  • Se tem uma conta de uso geral v1 ou uma conta do Armazenamento de Blobs do Azure, deve primeiro atualizar para a v2 de uso geral seguindo os passos em Atualizar para uma conta de armazenamento v2 de uso geral.
  • Deve ter ativado o modo Permitir que os serviços Microsoft confiáveis acedam a esta conta de armazenamento no menu de definições de Firewalls e redes virtuais da conta de armazenamento do Azure. Ativar esta configuração permitirá que o PolyBase e a instrução COPY se liguem à conta de armazenamento utilizando autenticação forte, mantendo o tráfego de rede na infraestrutura de backbone do Azure. Para 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.

Steps

  1. Se tiver um pool SQL dedicado autónomo (anteriormente SQL DW), registe o 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
    

    Este passo não é obrigatório para os pools SQL dedicados dentro de 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 os passos em Criar uma conta de armazenamento.

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

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

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

    Setting Valor
    Role Contribuidor de Dados de Storage Blob
    Atribuir acesso a Usuário, grupo ou entidade de serviço
    Members Servidor ou espaço de trabalho que aloja o seu pool SQL dedicado que registou no Microsoft Entra ID

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

    Note

    Só os membros com privilégio de proprietário na conta de armazenamento podem realizar este passo. Para várias funções incorporadas do Azure, veja Azure built-in roles.

  6. Para permitir a conectividade PolyBase à conta Armazenamento do Azure:

    1. Cria uma chave mestra para a base de dados se ainda não criaste uma antes.

      CREATE MASTER KEY [ENCRYPTION BY PASSWORD = '<password>'];
      
    2. Crie uma credencial com âmbito de base de dados com IDENTITY = 'Managed Service Identity'.

      CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';
      
      • Não é necessário especificar o SECRET com uma chave de acesso do Armazenamento do Azure porque este mecanismo usa Identidade Gerida por baixo. Este passo não é obrigatório para os pools SQL dedicados dentro de 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 'Managed Service Identity' para que a conectividade PolyBase funcione com uma conta Armazenamento do Azure segura numa rede virtual.

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

      CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);
      
      • Se já tens tabelas externas associadas a uma conta v1 ou Armazenamento de Blobs de uso geral, deves primeiro eliminar essas tabelas externas. Depois elimina a fonte de dados externa correspondente. De seguida, crie uma fonte de dados externa com o esquema abfss:// que se liga a uma conta de armazenamento v2 de uso geral, como já foi mostrado. Depois, recrie todas as tabelas externas usando esta nova fonte de dados externa. Podes usar o Assistente de Geração e Publicação de Scripts para gerar scripts de criação para todas as tabelas externas, para facilitar.
      • Para mais informações sobre o abfss:// esquema URI, veja Use o URI do Azure Data Lake Storage Gen2.
      • Para mais informações sobre os comandos T-SQL, consulte CREATE EXTERNAL DATA SOURCE.
    4. Consulta normalmente usando tabelas externas.

Auditoria do Azure Synapse Analytics para blob storage

A auditoria do Azure Synapse Analytics pode gravar registos de auditoria SQL na sua própria conta de armazenamento. Se esta conta de armazenamento usar a funcionalidade de pontos finais de serviço de rede virtual, veja como gravar auditoria numa conta de armazenamento atrás da VNet e da firewall.

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

Há muito tempo, antes desta funcionalidade ser melhorada, era necessário ativar os endpoints de serviço de rede virtual antes de poder implementar uma regra de rede virtual ativa no firewall. Os endpoints relacionam uma dada sub-rede virtual a um pool SQL dedicado. Desde janeiro de 2018, pode contornar este requisito definindo a flag IgnoreMissingVNetServiceEndpoint . Agora, pode adicionar uma regra de firewall de rede virtual ao seu servidor sem ativar os endpoints de serviço de rede virtual.

Simplesmente definir uma regra de firewall não ajuda a proteger o servidor. Também deve ativar os endpoints de serviço da rede virtual para que a segurança tenha efeito. Quando ativa os endpoints de serviço, a sua sub-rede virtual sofre tempo de inatividade até completar a transição de desligado para ligado. Este período de inatividade verifica-se sobretudo no contexto de grandes redes virtuais. Pode usar a flag IgnoreMissingVNetServiceEndpoint para reduzir ou eliminar o tempo de inatividade durante a transição.

Podes definir a IgnoreMissingVNetServiceEndpoint flag usando o PowerShell. Para mais informações, consulte New-AzSqlServerVirtualNetworkRule.

Use o portal Azure para criar uma regra de rede virtual

Note

Estas instruções de regras de rede virtual aplicam-se a pools SQL dedicados autónomos. Para a configuração da rede do espaço de trabalho, consulte as regras do firewall IP do Azure Synapse Analytics.

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

Note

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

Se os endpoints de serviço não estiverem ativados para a subrede, o portal pede-te para os ativares. Seleciona o botão Ativar no mesmo painel onde adicionas a regra.

Prerequisites

Deve já ter uma sub-rede marcada com o endpoint de serviço de rede virtual nome do tipo usado pelo Azure Synapse Analytics.

Passos no portal do Azure

  1. Inicie sessão no portal Azure.

  2. Procura e seleciona servidores SQL e depois seleciona o teu servidor. Em Segurança, selecione Rede.

  3. No separador de acesso público, assegure que o acesso à rede pública está definido como Selecionar redes, caso contrário as definições de redes virtuais ficam ocultas. Selecione + Adicionar rede virtual existente na secção Redes virtuais.

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

    Dica

    Deve incluir o prefixo de endereço correto para a sua sub-rede. Pode encontrar o prefixo de Endereço no portal. Ir a Todos os recursos>Todos os tipos>Redes virtuais. O filtro mostra as tuas redes virtuais. Selecione a sua rede virtual e depois selecione Sub-redes. A coluna ADDRESS RANGE tem o prefixo de endereço que precisa.

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

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

    Importante

    Se deixar Permitir serviços e recursos Azure aceder a este servidor ativado, o seu servidor aceita comunicação de qualquer sub-rede dentro do limite do Azure. Trata-se da comunicação que se origina de um dos endereços IP reconhecidos como dentro dos intervalos definidos para centros de dados do Azure. Deixar o controlo ativado pode conceder acesso excessivo do ponto de vista da segurança. A funcionalidade de endpoint do serviço Rede Virtual do Microsoft Azure, juntamente com as regras de rede virtual do Azure Synapse Analytics, pode reduzir a sua superfície de ataque.

  7. Seleciona o botão OK perto do fundo do painel.

Note

Os seguintes estados aplicam-se às regras:

  • Pronto: Indica que a operação que iniciaste foi bem-sucedida.
  • Falhada: Indica que a operação que iniciaste falhou.
  • Eliminado: Aplica-se apenas à Delete operação e indica que a regra foi eliminada e já não se aplica.
  • InProgress: Indica que a operação está em curso. A antiga regra aplica-se enquanto a operação está neste 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, consulte New-AzSqlServerVirtualNetworkRule.

Utilize a API REST para criar uma regra de rede virtual

Internamente, os cmdlets PowerShell para ações de rede virtual do Synapse SQL chamam APIs REST. Pode invocar diretamente as APIs REST. Para mais informações, consulte Regras de Rede Virtual: Operações.

Resolução de erros 40914 e 40615

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

Erro 40914

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

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

Resolução de erros: No painel Firewall do portal Azure, use o controlo 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 aceder ao servidor."

Descrição do erro: O cliente está a tentar ligar-se a partir de um endereço IP que não está autorizado a ligar-se ao servidor. O firewall do servidor não tem uma regra de endereço IP que permita a um cliente comunicar a partir do endereço IP indicado com a base de dados.

Resolução de erros: Insira o endereço IP do cliente como regra de IP. Use o painel Firewall no portal do Azure para fazer este passo.