Partilhar via


Arquitetura de conectividade para a Instância Gerenciada SQL do Azure

Aplica-se a: Instância Gerida do Azure SQL

Este artigo descreve a arquitetura de conectividade na Instância Gerenciada 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 do SQL, uma instância é colocada dentro da rede virtual do Azure e dentro da sub-rede dedicada às instâncias gerenciadas. A implantação fornece:

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

Arquitetura de conectividade de alto nível

A Instância Gerenciada 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 dentro da sub-rede de 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 SQL do Azure após novembro de 2022.

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

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

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

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

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

O plano de controle realiza as funções de implantação, gerenciamento e manutenção de serviços centrais por meio de agentes automatizados. Esses agentes têm acesso exclusivo aos recursos de computação que operam o serviço. Não é possível usar o ssh ou o Protocolo de Área de Trabalho Remota para acessar esses hosts. Todas as comunicações do plano de controle são criptografadas e assinadas usando certificados. Para verificar a confiabilidade das partes comunicantes, a Instância Gerenciada SQL verifica constantemente esses certificados usando listas de revogação de certificados.

Visão geral da comunicação

As aplicações podem conectar-se à Instância Gerida do SQL através de três tipos de pontos de extremidade: ponto de extremidade local de Rede Virtual , ponto de extremidade público , e pontos de extremidade privados . Esses pontos de extremidade exibem propriedades e comportamentos distintos adequados para diferentes cenários.

Diagrama que mostra o âmbito de visibilidade para endpoints VNet-locais, públicos e privados de uma Instância Gerida do SQL do Azure.

Ponto de extremidade local de rede virtual

O ponto de extremidade VNet-local é o meio padrão para se conectar à Instância Gerenciada SQL. É um nome de domínio na forma de <mi_name>.<dns_zone>.database.windows.net. Este nome de domínio resolve-se para um endereço IP a partir do intervalo de endereços da sub-rede. O ponto final VNet-local da rede virtual pode ser usado para se conectar a uma instância SQL gerida em todos os cenários de conectividade padrão. A porta do ponto de extremidade local da rede virtual é 1433.

O ponto de extremidade local da rede virtual suporta conexões do tipo proxy e redirecionamento.

Ao conectar-se ao ponto de extremidade local da rede virtual, sempre use seu nome de domínio e permita o tráfego de entrada na(s) porta(s) necessária(s) em todo o intervalo de sub-rede, pois o endereço IP subjacente pode ser alterado ocasionalmente.

Ponto final público

O ponto de extremidade público é um nome de domínio na forma de <mi_name>.public.<dns_zone>.database.windows.net. Este nome de domínio é resolvido para um endereço IP público acessível a partir da Internet. O ponto de extremidade público é adequado para cenários em que uma instância gerenciada precisa ser acessível por meio da Internet pública, por exemplo, ao se conectar a ela a partir de uma rede virtual diferente, quando pontos de extremidade privados ou de emparelhamento não estão disponíveis. Os pontos de extremidade públicos transportam apenas tráfego de cliente e não podem ser usados para replicação de dados entre duas instâncias, como grupos de failover ou Link de Instância Gerenciada. A porta do ponto de extremidade público é 3342.

O ponto de extremidade público utiliza sempre o tipo de conexão proxy , independentemente da configuração do tipo de conexão.

Ao se conectar ao ponto de extremidade público, sempre use seu nome de domínio e permita o tráfego de entrada na porta 3342 em todo o intervalo de sub-rede, pois o endereço IP subjacente pode ocasionalmente mudar.

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

Pontos finais privados

Um ponto de extremidade privado é um endereço IP fixo opcional em outra rede virtual que conduz o tráfego para sua instância gerenciada pelo SQL. Uma Instância Gerida SQL do Azure pode possuir vários pontos finais privados em diferentes redes virtuais. Os pontos finais privados transportam apenas tráfego de cliente e não podem ser usados para replicação de dados entre duas instâncias, como grupos de failover ou ligações de instâncias geridas. A porta do ponto de extremidade privado é 1143.

Os pontos de extremidade privados usam sempre o tipo de ligação proxy independentemente da configuração do tipo de ligação.

Ao conectar-se a um ponto de extremidade privado, sempre use o nome de domínio, pois a conexão com a Instância Gerenciada SQL do Azure por meio de seu endereço IP ainda não é suportada. O endereço IP de um ponto de extremidade privado, no entanto, não muda.

Saiba mais sobre endpoints privados e como configurá-los no Azure Private Link para Azure SQL Managed Instance.

Arquitetura de conectividade de cluster virtual

O diagrama a seguir mostra o layout conceitual da arquitetura de cluster virtual :

Diagrama que mostra a arquitetura de conectividade de cluster virtual para a Instância Gerenciada SQL do Azure.

O nome de domínio do ponto de extremidade local da rede virtual traduz-se 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 Nomes 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 de Instância Gerenciada SQL. Como várias instâncias geridas podem ser executadas dentro do mesmo cluster, o gateway usa o nome de host da Instância Gerida SQL, conforme visto na string de ligação, para redirecionar o tráfego para o serviço de motor SQL correto.

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

Requisitos de rede

A Instância Gerenciada SQL do Azure exige que os aspetos da sub-rede delegada sejam configurados de maneiras específicas, o que você pode obter usando o configuração de sub-rede auxiliada por serviço. Além do que o serviço exige, os usuários têm controle total sobre sua configuração de rede de sub-rede, como:

  • Permitir ou bloquear o tráfego em algumas ou em todas as portas
  • Adicionando entradas à tabela de rotas para rotear o tráfego por meio de dispositivos de rede virtual ou um gateway
  • Configurando a resolução DNS personalizada ou
  • Configurando emparelhamento ou uma VPN

Para atender aos critérios de "Configuração de Rede Compatível" no Contrato de Nível de Serviço do Microsoft Online Services, a rede virtual e a sub-rede na qual a Instância Gerenciada SQL é implantada devem atender aos seguintes requisitos:

  • Sub-rede dedicada: A sub-rede usada pela Instância Gerenciada SQL pode ser delegada somente ao serviço Instância Gerenciada SQL. A sub-rede não pode ser uma sub-rede de gateway e você pode implantar apenas recursos de Instância Gerenciada SQL na sub-rede.
  • Delegação de sub-rede: A sub-rede da Instância Gerenciada SQL deve ser delegada ao provedor de recursos Microsoft.Sql/managedInstances.
  • Grupo de segurança de rede: Um grupo de segurança de rede deve estar associado à sub-rede da Instância Gerenciada 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 SQL filtrando o tráfego na porta 1433 e nas portas 11000-11999 quando a Instância Gerenciada do SQL estiver configurada para conexões de redirecionamento. O serviço provisiona automaticamente regras e as mantém atualizadas conforme necessário para permitir o fluxo ininterrupto de tráfego de gerenciamento.
  • Tabela de rotas: Uma tabela de rotas deve ser associada à sub-rede da Instância Gerenciada SQL. Você pode adicionar entradas a essa tabela de rotas, por exemplo, para rotear o tráfego para locais por meio de um gateway de rede virtual ou para adicionar o de rota padrão 0.0.0.0/0 direcionando todo o tráfego por meio de um dispositivo de rede virtual, como um firewall. A Instância Gerenciada 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 SQL deve ter pelo menos 32 endereços IP. Para obter mais informações, consulte Determinar o tamanho da sub-rede para a instância gerenciada do SQL. Você pode implantar instâncias geridas na rede existente depois de configurar a rede para que satisfaça os requisitos de rede para o SQL Managed Instance. Caso contrário, crie uma nova rede e sub-rede.
  • Permitido pelas políticas do Azure: Se você usar de Política do Azure para impedir a criação ou modificação de recursos em um escopo que inclua uma sub-rede ou rede virtual da Instância Gerenciada SQL, suas políticas não deverão impedir que a Instância Gerenciada do SQL gerencie seus recursos internos. Os seguintes recursos precisam ser excluídos dos efeitos de negação da política de acesso para funcionamento 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: Bloqueios na rede virtual da sub-rede dedicada, no grupo de recursos pai ou na subscrição, podem ocasionalmente interferir nas operações de gestão e manutenção da Instância Gerida SQL. Tenha especial cuidado ao utilizar bloqueios de recursos.
  • Registos DNS públicos resolúveis: Se a rede virtual estiver configurada para usar um servidor DNS personalizado, o servidor DNS deverá ser capaz de resolver registros DNS públicos. O uso de funcionalidades como a autenticação do Microsoft Entra pode exigir a resolução de nomes de domínio totalmente qualificados (FQDNs). Para obter mais informações, consulte Resolvendo nomes DNS privados na Instância Gerenciada SQL do Azure.
  • Registros DNS necessários: As instâncias gerenciadas dependem da resolução correta de determinados nomes de domínio. Esses nomes de domínio não devem ser substituídos em suas redes virtuais, seja por meio zonas privadas do DNS do Azure ou por um servidor DNS personalizado. Caso contrário, as instâncias gerenciadas não serão implantadas ou poderão ficar indisponíveis. Os seguintes domínios não devem ser substituídos: 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.nete vault.azure.net. Note, no entanto, que ainda é possível criar endpoints privados dentro da rede virtual de uma instância gerida, mesmo para recursos nos domínios acima. Os pontos de extremidade privados usam um mecanismo DNS que não requer que um servidor DNS local se torne autoritativo para uma zona inteira.
  • marca AzurePlatformDNS: Usar a marca de serviço AzurePlatformDNS para bloquear a resolução DNS da plataforma pode tornar a Instância Gerenciada SQL indisponível. Embora a Instância Gerida do SQL ofereça suporte ao DNS definido pelo cliente para resolução de DNS dentro do motor, há dependência do DNS do Azure para operações de plataforma.

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

Para melhorar a segurança, a capacidade de gerenciamento e a disponibilidade do serviço, a Instância Gerenciada do SQL usa a configuração de sub-rede assistida por serviço e a política de intenção de rede na infraestrutura de rede virtual do Azure para configurar a rede, os componentes associados e a tabela de rotas para garantir que os requisitos mínimos da Instância Gerenciada do SQL sejam atendidos.

As regras de segurança de rede e tabela de rotas configuradas automaticamente são visíveis para o cliente e anotadas com um destes prefixos:

  • Microsoft.Sql-managedInstances_UseOnly_mi- para regras e rotas obrigatórias
  • Microsoft.Sql-managedInstances_UseOnly_mi-optional- para regras e rotas opcionais

Para obter detalhes adicionais, consulte a configuração de sub-rede assistida por serviço .

Para obter mais informações sobre a arquitetura de conectividade e o tráfego de gerenciamento, consulte Arquitetura de conectividade de alto nível.

Restrições de rede

As seguintes restrições sobre recursos de rede virtual e tráfego estão em vigor:

  • Sub-redes privadas: A implantação de instâncias geridas em sub-redes privadas (onde o acesso de saída padrão está desabilitado) não é suportada atualmente.
  • Mail do Banco de Dados para relays SMTP externos na porta 25: O envio de mail do banco de dados pela porta 25 para serviços de email externos só está disponível para determinados tipos de assinatura na Microsoft Azure. Instâncias em outros tipos de assinatura devem usar uma porta diferente (por exemplo, 587) para contatar servidores de retransmissão SMTP externos. Caso contrário, as instâncias podem falhar ao entregar emails de banco de dados. Para obter mais informações, consulte Solucionar problemas de conectividade SMTP de saída no Azure.
  • Emparelhamento da Microsoft: Habilitar o Emparelhamento da Microsoft em circuitos do ExpressRoute, que estão emparelhados de forma direta ou transitiva com uma rede virtual onde a Instância Gerenciada SQL está localizada, afeta o fluxo de tráfego entre os componentes da Instância Gerenciada SQL dentro da rede virtual e os serviços de que depende. Resultam problemas de disponibilidade. Espera-se que as implantações de Instância Gerenciada SQL em uma rede virtual que já tenha o emparelhamento da Microsoft habilitado falhem.
  • Emparelhamento de rede virtual global: A conectividade de emparelhamento de rede virtual entre regiões do Azure não funciona para instâncias de SQL Instância Gerida colocadas em sub-redes criadas antes de 9 de setembro de 2020.
  • Emparelhamento de rede virtual – configuração: Ao estabelecer emparelhamento de rede virtual entre redes virtuais que contêm sub-redes com Instâncias Geridas SQL, essas sub-redes devem usar tabelas de rotas diferentes e grupos de segurança de rede (NSG). Reutilizar a tabela de rotas e o NSG em duas ou mais sub-redes que participam do emparelhamento de rede virtual causará problemas de conectividade em todas as sub-redes que usam essas tabelas de rotas ou NSG e fará com que as operações de gerenciamento da Instância Gerenciada SQL falhem.
  • gateway NAT: Usar 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 do SQL indisponível. O serviço de Instância Gerenciada SQL está atualmente limitado a usar o balanceador de carga básico, que não fornece coexistência de fluxos de entrada e saída com NAT da Rede Virtual do Azure.
  • IPv6 parade Rede Virtual do Azure: Implantando a Instância Gerenciada SQL em redes virtuais IPv4/IPv6 de pilha dupla deverá falhar. A associação de um grupo de segurança de rede ou de uma tabela de rotas com rotas definidas pelo utilizador (UDRs) contendo prefixos de endereços IPv6 a uma sub-rede de uma Instância Gerida SQL torna a Instância Gerida SQL indisponível. Além disso, 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 SQL indisponível. Espera-se que as implantações de Instância Gerenciada SQL em uma sub-rede com um grupo de segurança de rede e UDR que já tenham prefixos IPv6 falhem.
  • TLS 1.2 é aplicado em conexões de saída: A partir de janeiro de 2020, a Microsoft impõe o TLS 1.2 para tráfego intra-serviço em todos os serviços do Azure. Para a Instância Gerenciada do SQL, isso resultou na imposição do TLS 1.2 em conexões de saída usadas para replicação e em conexões de servidor vinculado ao SQL Server. Se você usar uma versão do SQL Server anterior a 2016 com a Instância Gerenciada do SQL, certifique-se de aplicar atualizações específicas do TLS 1.2.
  • Fallback interno para oDNS do Azure: as instâncias geridas dependem do funcionamento da resolução DNS em suas redes virtuais. Se a rede virtual de uma instância gerenciada estiver configurada para usar servidor(es) DNS personalizado(s) e uma solicitação DNS emitida para servidor(es) DNS personalizado(s) não for concluída dentro de um determinado intervalo (1 a 2 segundos), a instância gerenciada repetirá a solicitação em relação a DNS do Azure nessa rede virtual.