Arquitetura de conectividade de uma Instância Gerenciada de SQL

Aplica-se a:Instância Gerenciada de SQL do Azure

Este artigo descreve a arquitetura de conectividade da Instância Gerenciada de SQL do Azure e como os componentes direcionam o tráfego de comunicação para uma instância gerenciada.

Visão geral

Na Instância Gerenciada de SQL, uma instância é colocada na rede virtual do Azure e na sub-rede dedicada para instâncias gerenciadas. A implantação fornece:

  • Um endereço IP local de rede virtual seguro (VNet-local).
  • A possibilidade de conectar uma rede local a uma Instância Gerenciada de SQL.
  • A possibilidade de conectar uma Instância Gerenciada de SQL a um servidor vinculado ou a outro armazenamento de dados local.
  • A possibilidade de conectar uma Instância Gerenciada de SQL a recursos do Azure.

Observação

O ciclo de recursos de novembro de 2022 introduziu alterações na estrutura de conectividade padrão da Instância Gerenciada de SQL. Este artigo fornece informações sobre a arquitetura atual e sobre a arquitetura das instâncias que ainda não foram registradas no ciclo de recursos. Para obter mais informações, confira Ciclo de recursos de novembro de 2022.

Ciclo de recursos de novembro de 2022

O ciclo de recursos de novembro de 2022 introduziu as seguintes alterações na arquitetura de conectividade para a Instância Gerenciada de SQL:

  • Remoção do ponto de extremidade de gerenciamento.
  • Simplificação das regras obrigatórias do grupo de segurança de rede (remoção de uma regra obrigatória).
  • Revisão das regras obrigatórias do grupo de segurança de rede para que não incluam mais saída para AzureCloud na porta 443.
  • Simplificação da tabela de rotas (redução das rotas obrigatórias de 13 para 5).

Arquitetura de alto nível de conectividade

A Instância Gerenciada de SQL é composta por componentes de serviço hospedados em um conjunto dedicado de máquinas virtuais isoladas que são agrupadas por atributos de configuração semelhantes e unidas a um cluster virtual. Alguns componentes de serviço são implantados na sub-rede da rede virtual do cliente, enquanto outros serviços operam em um ambiente de rede seguro gerenciado pela Microsoft.

Diagrama que mostra a arquitetura de conectividade de alto nível para a Instância Gerenciada de SQL do Azure após novembro de 2022.

Os aplicativos do cliente podem se conectar à Instância Gerenciada de SQL e consultar e atualizar bancos de dados na rede virtual, rede virtual emparelhada ou rede conectada por VPN ou Azure ExpressRoute.

O diagrama a seguir mostra entidades que se conectam a uma Instância Gerenciada de SQL. Mostra também os recursos que precisam se comunicar com uma instância gerenciada. O processo de comunicação descrito na parte inferior do diagrama representa os aplicativos e ferramentas do cliente que se conectam à Instância Gerenciada de SQL como fonte de dados.

Diagrama que mostra entidades na arquitetura de conectividade para Instância Gerenciada de SQL do Azure após novembro de 2022.

A Instância Gerenciada de SQL é uma oferta de plataforma como serviço de locatário único que opera em dois planos: no plano de dados e no painel de controle.

O plano de dados é implantado na sub-rede do cliente para proporcionar compatibilidade, conectividade e isolamento de rede. O plano de dados depende de serviços do Azure, como o armazenamento do Azure, o Microsoft Entra ID (antigo Azure Active Directory) para autenticação e os serviços de coleta de telemetria. Você verá o tráfego originado em sub-redes que contêm a Instância Gerenciada de SQL indo para esses serviços.

O painel de controle carrega as funções de implantação, gerenciamento e manutenção do serviço principal por meio de agentes automatizados. Esses agentes têm acesso exclusivo aos recursos de computação que operam o serviço. Você não pode usar ssh o ou o Protocolo de Área de Trabalho Remota para acessar esses hosts. Todas as comunicações do painel de controle são criptografadas e assinadas por meio de certificados. Para verificar a confiabilidade dos participantes da comunicação, a Instância Gerenciada de SQL verifica constantemente esses certificados usando as listas de certificados revogados.

Visão geral da comunicação

Os aplicativos podem se conectar à Instância Gerenciada de SQL por meio de três tipos de pontos de extremidade. Esses pontos de extremidade atendem a cenários diferentes e exibem propriedades e comportamentos de rede distintos.

Diagrama que mostra o escopo de visibilidade para VNet-local, pontos de extremidade públicos e privados para uma Instância Gerenciada de SQL do Azure.

Ponto de extremidade local da VNet

O ponto de extremidade local da VNet é o meio padrão para se conectar à Instância Gerenciada de SQL. O ponto de extremidade VNet-local é um nome de domínio com o formato <mi_name>.<dns_zone>.database.windows.net que é resolvido para um endereço IP do pool de endereços da sub-rede, daí o nome local da VNet, ou um ponto de extremidade local para a rede virtual. O ponto de extremidade local da VNet pode ser usado para conectar a uma Instância Gerenciada de SQL em todos os cenários de conectividade padrão.

Os pontos de extremidade locais da VNet dão suporte ao tipo de conexão de redirecionamento.

Ao conectar-se ao ponto de extremidade local da VNet, sempre use seu nome de domínio, pois o endereço IP subjacente pode mudar ocasionalmente.

Ponto de extremidade público

O ponto de extremidade público é um nome de domínio opcional com o formato <mi_name>.public.<dns_zone>.database.windows.net que é resolvido para um endereço IP público acessível pela Internet. O ponto de extremidade público permite que o tráfego TDS chegue apenas à Instância Gerenciada de SQL na porta 3342 e não pode ser usado para cenários de integração, como grupos de failover, link de Instância Gerenciada e tecnologias semelhantes.

Ao conectar-se ao ponto de extremidade público, sempre use o nome de domínio, pois o endereço IP subjacente pode alterar ocasionalmente.

O ponto de extremidade público sempre opera no tipo de conexão de proxy.

Saiba como configurar um ponto de extremidade público em Configurar ponto de extremidade público para Instância Gerenciada de SQL do Azure.

Pontos de extremidade privados

Um ponto de extremidade privado é um endereço IP fixo opcional em outra rede virtual que conduz o tráfego para a sua instância gerenciada de SQL. Uma Instância Gerenciada de SQL do Azure pode ter vários pontos de extremidade privados em várias redes virtuais. Os pontos de extremidade privados permitem que o tráfego TDS alcance apenas a Instância Gerenciada de SQL na porta 1433 e não podem ser usados para cenários de integração, como grupos de failover, link de Instância Gerenciada e outras tecnologias semelhantes.

Ao se conectar a um ponto de extremidade privado, sempre use o nome de domínio, pois ainda não há suporte para a conexão com a Instância Gerenciada de SQL do Azure por meio do seu endereço IP.

Os pontos de extremidade privados sempre operam no tipo de conexão proxy.

Saiba mais sobre pontos de extremidade privados e como configurá-los em Link Privado do Azure para Instância Gerenciada de SQL do Azure.

Arquitetura de conectividade do cluster virtual

Esta seção fornece uma visão mais detalhada da arquitetura de conectividade do cluster virtual da Instância Gerenciada de SQL. O diagrama a seguir mostra o layout conceitual do cluster virtual:

O nome de domínio do ponto de extremidade local VNet é resolvido para o endereço IP privado de um balanceador de carga interno. Embora esse nome de domínio esteja registrado em uma zona pública do Sistema de Nome de Domínio (DNS) e possa ser resolvido publicamente, seu endereço IP pertence ao intervalo de endereços da sub-rede e só pode ser acessado de dentro de sua rede virtual por padrão.

O balanceador de carga direciona o tráfego para um gateway da Instância Gerenciada de SQL. Como várias instâncias gerenciadas podem ser executadas no mesmo cluster, o gateway usa o nome do host da Instância Gerenciada de SQL, como visto na cadeia de caracteres, para redirecionar o tráfego para o serviço de mecanismo SQL correto.

O valor para dns-zone é gerado automaticamente quando você cria um cluster. Se um cluster recém-criado estiver hospedando uma instância gerenciada secundária, ele compartilhará sua ID de zona com o cluster primário.

Configuração de sub-rede auxiliada por serviço

Para aprimorar a segurança do serviço, a capacidade de gerenciamento e a disponibilidade, a Instância Gerenciada de SQL aplica uma política de intenção de rede em alguns elementos da infraestrutura de rede virtual do Azure. A política configura a sub-rede, o grupo de segurança de rede associado e a tabela de rotas para garantir que os requisitos mínimos da Instância Gerenciada de SQL sejam atendidos. Esse mecanismo de plataforma comunica de forma transparente os requisitos de rede para os usuários. A principal meta da política é impedir a configuração incorreta da rede e garantir operações normais e o compromisso de contrato de nível de serviço da Instância Gerenciada de SQL. Quando você exclui uma instância gerenciada, a política de intenção de rede também é removida.

Uma configuração de sub-rede auxiliada por serviço baseia-se no recurso de delegação de sub-rede da rede virtual para fornecer gerenciamento automático de configuração de rede e para habilitar pontos de extremidade de serviço.

É possível usar os pontos de extremidade de serviço para configurar regras de firewall de rede virtual nas contas de armazenamento que mantêm backups e logs de auditoria. Mesmo com os pontos de extremidade de serviço habilitados, os clientes são incentivados a usar o Link Privado do Azure para acessar as contas de armazenamento. O Link Privado fornece mais isolamento do que os pontos de extremidade de serviço.

Importante

Devido às especificidades de configuração do painel de controle, uma configuração de sub-rede auxiliada pelo serviço não habilita os pontos de extremidade de serviço nas nuvens nacionais.

Requisitos de rede

A sub-rede na qual a Instância Gerenciada de SQL é implantada precisa ter as seguintes características:

  • Sub-rede dedicada: a sub-rede usada pela Instância Gerenciada de SQL só pode ser delegada ao serviço da Instância Gerenciada de SQL. Ela não pode ser uma sub-rede de gateway, e você só pode implantar os recursos da Instância Gerenciada de SQL nela.
  • Delegação de sub-rede: A sub-rede da Instância Gerenciada de SQL deve ser delegada ao provedor de recursos de Microsoft.Sql/managedInstances.
  • Grupo de segurança de rede: precisa ser associado à sub-rede da Instância Gerenciada de SQL. Você pode usar um grupo de segurança de rede para controlar o acesso ao ponto de extremidade de dados da Instância Gerenciada de SQL filtrando o tráfego na porta 1433 e nas portas 11000 – 11999 quando a Instância Gerenciada de SQL estiver configurada para conexões de redirecionamento. O serviço automaticamente provisiona as regras e as mantém atualizadas para permitir o fluxo ininterrupto do tráfego de gerenciamento.
  • Tabela de rotas: uma tabela de rotas precisa estar associada à sub-rede da Instância Gerenciada de SQL. Você pode adicionar entradas a essa tabela de rotas, por exemplo, para encaminhar o tráfego para locais por meio de um gateway de rede virtual, ou para adicionar a rota 0.0.0.0/0 padrão direcionando todo o tráfego por meio de um dispositivo de rede virtual, como um firewall. A Instância Gerenciada de SQL do Azure provisiona e gerencia automaticamente suas entradas necessárias na tabela de rotas.
  • Endereços IP suficientes: a sub-rede da Instância Gerenciada de SQL deve ter pelo menos 32 endereços IP. Para obter mais informações, consulte Determinar o tamanho da sub-rede para Instância Gerenciada de SQL. Você pode implantar instâncias gerenciadas na rede existente após configurá-las para cumprir os requisitos de rede para a Instância Gerenciada de SQL. Caso contrário, crie uma nova rede e sub-rede.
  • Permitido pelas políticas do Azure: se você usa o Azure Policy para evitar a criação ou a modificação de recursos no escopo que inclui a sub-rede ou a rede virtual da Instância Gerenciada de SQL, essas políticas não devem impedir a Instância Gerenciada de SQL de gerenciar os recursos internos. Os seguintes recursos precisam ser excluídos dos efeitos de negação da política para operação normal:
    • Recursos do tipo Microsoft.Network/serviceEndpointPolicies, quando o nome do recurso começa com \_e41f87a2\_
    • Todos os recursos do tipo Microsoft.Network/networkIntentPolicies
    • Todos os recursos do tipo Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
  • Bloqueios na rede virtual: os Bloqueios na rede virtual da sub-rede dedicada, do grupo de recursos pai ou da assinatura ocasionalmente podem interferir nas operações de gerenciamento e manutenção da Instância Gerenciada de SQL do Azure. Tome cuidado especial ao usar esses bloqueios.
  • Tráfego de replicação: o tráfego de replicação para grupos de failover entre duas Instâncias gerenciadas deve ser direto e não direcionado por meio de uma rede de hubs.
  • Servidor DNS personalizado: se a rede virtual estiver configurada para usar um servidor DNS personalizado, esse servidor precisará conseguir resolver registros DNS públicos. Usar recursos como a autenticação do Microsoft Entra pode exigir a resolução de mais nomes de domínio totalmente qualificados (FQDNs). Para obter mais informações, confira Resolver nomes DNS privados na Instância Gerenciada de SQL do Azure.

Regras de segurança obrigatórias com a configuração de sub-rede auxiliada pelo serviço

Para garantir o fluxo de tráfego de gerenciamento de entrada, são necessárias as regras descritas na tabela a seguir. As regras são impostas pela política de intenção de rede e não precisam ser implantadas pelo cliente. Para obter mais informações sobre a arquitetura de conectividade e o tráfego de gerenciamento, confira a seção Arquitetura de conectividade de alto nível.

Nome Porta Protocolo Origem Destino Ação
healthprobe-in Qualquer Qualquer AzureLoadBalancer subnet Allow
internal-in Qualquer Qualquer subnet subnet Allow

Para garantir o fluxo de tráfego de gerenciamento de saída, são necessárias as regras descritas na tabela a seguir. Para obter mais informações sobre a arquitetura de conectividade e o tráfego de gerenciamento, confira a seção Arquitetura de conectividade de alto nível.

Nome Porta Protocolo Origem Destino Ação
AAD-out 443 TCP subnet AzureActiveDirectory Allow
OneDsCollector-out 443 TCP subnet OneDsCollector Allow
internal-out Qualquer Qualquer subnet subnet Allow
StorageP-out 443 Qualquer subnet Storage.primaryRegion Allow
StorageS-out 443 Qualquer subnet Storage.secondaryRegion Allow

Rotas obrigatórias com a configuração de sub-rede auxiliada pelo serviço

As rotas descritas na tabela a seguir são necessárias para garantir que o tráfego de gerenciamento seja roteado diretamente para um destino. As rotas são impostas pela política de intenção de rede e não precisam ser implantadas pelo cliente. Para obter mais informações sobre a arquitetura de conectividade e o tráfego de gerenciamento, veja a seção Arquitetura de conectividade de alto nível.

Nome Prefixo de endereço Próximo salto
AzureActiveDirectory AzureActiveDirectory Internet*
OneDsCollector OneDsCollector Internet*
Storage.primaryRegion Storage.primaryRegion Internet*
Storage.secondaryRegion Storage.secondaryRegion Internet*
subnet-to-vnetlocal subnet Rede virtual

Observação

* O valor de Internet na coluna Próximo salto instrui o gateway a direcionar o tráfego para fora da rede virtual. No entanto, se o endereço de destino for um serviço do Azure, o Azure roteia o tráfego diretamente para o serviço pela rede do Azure em vez de continuar para fora da nuvem do Azure. O tráfego entre os serviços do Azure não percorre a Internet, independentemente da região do Azure em que a rede virtual esteja ou da região do Azure em que uma instância do serviço do Azure esteja implantada. Para obter mais informações, confira Roteamento de tráfego de rede virtual do Azure.

Você também pode adicionar entradas à tabela de rotas para rotear o tráfego de uma rota que tem intervalos IP privados locais como destino por meio do gateway de rede virtual ou do dispositivo de rede virtual.

Restrições de rede

TLS 1.2 é imposta em conexões de saída: a partir de janeiro de 2020, a Microsoft impôs o TLS 1.2 para tráfego interno de todos os serviços do Azure. Na Instância Gerenciada de SQL, isso causava a imposição do TLS 1.2 nas conexões de saída usadas para replicação e nas conexões de servidor vinculado com o SQL Server. Se você usar uma versão do SQL Server anterior a 2016 com a Instância Gerenciada de SQL, certifique-se de aplicar as atualizações específicas do TLS 1.2.

No momento, não há suporte para os seguintes recursos de rede virtual com Instância Gerenciada de SQL:

  • Database Mail para retransmissões SMTP externas na porta 25: o envio de Database Mail pela porta 25 para serviços de hospedagem de email externos só está disponível para determinados tipos de assinatura no Microsoft Azure. Instâncias em outros tipos de assinatura devem usar uma porta diferente (por exemplo, 587) para contatar retransmissões SMTP externas. Caso contrário, as instâncias podem falhar ao entregar Database Mail. Para saber mais, confira Solucionar problemas de conectividade de SMTP de saída no Azure.
  • Emparelhamento da Microsoft: habilitar o Emparelhamento da Microsoft em circuitos do ExpressRoute emparelhados direta ou transitivamente com a rede virtual em que a Instância Gerenciada de SQL reside afeta o fluxo de tráfego entre componentes da Instância Gerenciada de SQL na rede virtual e os serviços dos quais ela depende. Pode resultar em problemas de disponibilidade. É esperado que haja falha em implantações da Instância Gerenciada de SQL na rede virtual que já tenham o emparelhamento da Microsoft habilitado.
  • Emparelhamento de rede virtual global: a conectividade do emparelhamento de rede virtual entre regiões do Azure não funciona para instâncias da Instância Gerenciada de SQL colocadas em sub-redes criadas antes de 9 de setembro de 2020.
  • Emparelhamento de rede virtual – configuração: ao estabelecer o emparelhamento de rede virtual entre redes virtuais que contenham sub-redes com Instâncias Gerenciadas de SQL, essas sub-redes devem usar tabelas de rotas e grupos de segurança de rede (NSG) diferentes. A reutilização da tabela de rotas e do NSG em duas ou mais sub-redes participantes do emparelhamento de rede virtual causará problemas de conectividade em todas as sub-redes que usam essas tabelas de rotas ou NSG, além de levar à falha das operações de gerenciamento da Instância Gerenciada de SQL.
  • AzurePlatformDNS: Usar a marca de serviço do AzurePlatformDNS para bloquear a resolução de DNS da plataforma torna as Instâncias Gerenciadas de SQL indisponíveis. Embora a Instância Gerenciada de SQL ofereça suporte ao DNS definido pelo cliente para a resolução DNS no mecanismo, há dependência no DNS da plataforma para operações da plataforma.
  • Gateway da NAT: usar a NAT da Rede Virtual do Azure para controlar a conectividade de saída com um endereço IP público específico torna a Instância Gerenciada de SQL indisponível. O serviço da Instância Gerenciada de SQL atualmente está limitado ao uso do balanceador de carga básico que não permite a coexistência de fluxos de entrada e saída com NAT da Rede Virtual do Azure.
  • IPv6 para rede virtual do Azure: é esperado que haja falha em implantações de Instância Gerenciada de SQL em redes virtuais IPv4/IPv6 de pilha dupla. Associar um grupo de segurança de rede ou uma tabela de rotas a UDRs (rotas definidas pelo usuário) que contenham prefixos de endereço IPv6 para uma sub-rede da Instância Gerenciada de SQL torna a Instância Gerenciada de SQL indisponível. E adicionar prefixos de endereço IPv6 a um grupo de segurança de rede ou UDR que já esteja associado a uma sub-rede de instância gerenciada torna a Instância Gerenciada de SQL indisponível. É esperado que haja falha em implantações de uma Instância Gerenciada de SQL em sub-redes com um grupo de segurança de rede e UDR que já tenham prefixos IPv6.
  • Zonas privadas de DNS do Azure com um nome reservado para serviços Microsoft: os seguintes nomes de domínio são reservados: windows.net, database.windows.net, core.windows.net, blob.core.windows.net, table.core.windows.net, management.core.windows.net, monitoring.core.windows.net, queue.core.windows.net, graph.windows.net, login.microsoftonline.com, login.windows.net, servicebus.windows.net e vault.azure.net. Ocorrerá falha na implantação de uma Instância Gerenciada de SQL em uma rede virtual com uma zona privada de DNS do Azure associada a um nome reservado para serviços Microsoft. A associação de uma zona privada de DNS do Azure que tem um nome reservado a uma rede virtual contendo uma instância gerenciada torna a Instância Gerenciada de SQL indisponível. Para obter informações sobre Link Privado configuração, confira Configuração de DNS do ponto de extremidade privado do Azure.

Próximas etapas