Partilhar via


Arquitetura de conectividade do Azure SQL Managed Instance

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

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.

Descriçã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.

Nota

A onda de recursos de novembro de 2022 introduziu alterações na estrutura de conectividade padrão da Instância Gerenciada SQL. Este artigo fornece informações sobre a arquitetura atual e a arquitetura de instâncias que ainda não se inscreveram na onda de recursos. Para obter mais informações, consulte Onda de recursos de novembro de 2022.

Onda de recursos de novembro de 2022

A onda de recursos de novembro de 2022 introduziu as seguintes alterações na arquitetura de conectividade da Instância Gerenciada SQL:

  • Removido o ponto de extremidade de gerenciamento.
  • Regras obrigatórias simplificadas relativas aos grupos de segurança da rede (suprimida uma regra obrigatória).
  • Regras obrigatórias de grupo de segurança de rede revisadas para que não incluam mais saída para o AzureCloud na porta 443.
  • Simplificou a tabela de rotas (reduziu as rotas obrigatórias de 13 para 5).

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.

Diagram that shows the high-level connectivity architecture for Azure SQL Managed Instance after November 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.

Diagram that shows entities in the connectivity architecture for Azure SQL Managed Instance after November 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 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 ssh 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

Os aplicativos podem se conectar à Instância Gerenciada 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.

Diagram that shows the scope of visibility for VNet-local, public, and private endpoints to an Azure SQL Managed Instance.

Ponto de extremidade local de rede virtual

O ponto final local da VNet é o meio predefinido para se ligar ao SQL Managed Instance. O ponto de extremidade VNet-local é um nome de domínio na forma de que resolve para um endereço IP do pool de endereços da sub-rede, portanto, VNet-local, ou um ponto de <mi_name>.<dns_zone>.database.windows.net extremidade que é local para a rede virtual. O ponto de extremidade local da rede virtual pode ser usado para se conectar a uma instância gerenciada SQL em todos os cenários de conectividade padrão.

Os pontos de extremidade locais de rede virtual suportam o tipo de conexão de redirecionamento.

Ao se conectar ao ponto de extremidade local da rede virtual, sempre use seu nome de domínio, 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 opcional na forma de <mi_name>.public.<dns_zone>.database.windows.net que resolve para um endereço IP público acessível a partir da Internet. O ponto de extremidade público permite que o tráfego TDS alcance apenas a Instância Gerenciada 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 seu nome de domínio, pois o endereço IP subjacente pode ocasionalmente mudar.

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

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 Gerenciada 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 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 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.

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

Saiba mais sobre pontos de extremidade privados e como configurá-los no Azure Private Link for Azure SQL Managed Instance.

Arquitetura de conectividade de cluster virtual

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

O nome de domínio do ponto de extremidade local da rede virtual é 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 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 gerenciadas podem ser executadas dentro do mesmo cluster, o gateway usa o nome de host da Instância Gerenciada SQL como visto na cadeia de conexão para redirecionar o tráfego para o serviço de mecanismo SQL correto.

O valor for zone-id é 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.

Configuração de sub-rede com a ajuda de um serviço

Para melhorar a segurança, a capacidade de gerenciamento e a disponibilidade do serviço, a Instância Gerenciada do 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 para a Instância Gerenciada SQL sejam atendidos. Este mecanismo de plataforma comunica de forma transparente os requisitos de rede aos utilizadores. O principal objetivo da política é evitar erros de configuração da rede e garantir operações normais de Instância Gerenciada SQL e compromisso de contrato de nível de serviço. 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 se baseia no recurso de delegação de sub-rede de rede virtual para fornecer gerenciamento automático de configuração de rede e habilitar pontos de extremidade de serviço.

Você pode usar pontos de extremidade de serviço para configurar regras de firewall de rede virtual em 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 Azure Private Link para acessar suas contas de armazenamento. O Private Link fornece mais isolamento do que os pontos de extremidade de serviço.

Importante

Devido às especificidades de configuração do plano de controle, uma configuração de sub-rede auxiliada por serviço não habilita pontos de extremidade de serviço em nuvens nacionais.

Requisitos de rede

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

  • 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 Microsoft.Sql/managedInstances recursos.
  • 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 as 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 a 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 instância gerenciada do SQL. Você pode implantar instâncias gerenciadas na rede existente depois de configurá-la para atender aos requisitos de rede da Instância Gerenciada SQL. Caso contrário, crie uma nova rede e sub-rede.
  • Permitido pelas políticas do Azure: se você usar a 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 do 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 de 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, no grupo de recursos pai ou na assinatura podem, ocasionalmente, interferir nas operações de gerenciamento e manutenção da Instância Gerenciada SQL. Tenha especial cuidado ao utilizar bloqueios de recursos.
  • 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 roteado por meio de uma rede de hub.
  • Servidor DNS personalizado: 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 recursos como a autenticação do Microsoft Entra pode exigir a resolução de FQDNs (nomes de domínio totalmente qualificados). Para obter mais informações, consulte Resolvendo nomes DNS privados na Instância Gerenciada SQL do Azure.

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

Para garantir o fluxo de tráfego de gerenciamento de entrada, as regras descritas na tabela a seguir são necessárias. 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, consulte Arquitetura de conectividade de alto nível.

Nome Porta Protocolo Origem Destino Ação
saúdesonda-in Qualquer Qualquer AzureLoadBalancer sub-rede Permitir
interna-entrada Qualquer Qualquer sub-rede sub-rede Permitir

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

Nome Porta Protocolo Origem Destino Ação
AAD-out 443 TCP sub-rede AzureActiveDirectory Permitir
OneDsCollector-out 443 TCP sub-rede OneDsCollector Permitir
Saída interna Qualquer Qualquer sub-rede sub-rede Permitir
ArmazenamentoP-out 443 Qualquer sub-rede Armazenamento.primáriaRegião Permitir
Saídas de armazenamento 443 Qualquer sub-rede Armazenamento.secundárioRegião Permitir

Rotas obrigatórias com configuração de sub-rede assistida por serviço

As rotas descritas na tabela a seguir são necessárias para garantir que o tráfego de gerenciamento seja encaminhado 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 arquitetura de conectividade e tráfego de gerenciamento, consulte Arquitetura de conectividade de alto nível.

Nome Prefixo de endereço Próximo salto
AzureActiveDirectory AzureActiveDirectory Internet*
OneDsCollector OneDsCollector Internet*
Armazenamento.primáriaRegião Armazenamento.primáriaRegião Internet*
Armazenamento.secundárioRegião Armazenamento.secundárioRegião Internet*
sub-rede para vnetlocal sub-rede Rede virtual

Nota

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

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

Restrições de rede

O TLS 1.2 é imposto em conexões de saída: a partir de janeiro de 2020, a Microsoft impõe o TLS 1.2 para tráfego intrasserviç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.

Os seguintes recursos de rede virtual não são suportados atualmente com a Instância Gerenciada SQL:

  • Database mail para retransmissões SMTP externas na porta 25: o envio de email de banco de dados pela porta 25 para serviços 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 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 de Rota Expressa que são emparelhados direta ou transitivamente com uma rede virtual na qual a Instância Gerenciada SQL reside afeta o fluxo de tráfego entre os componentes da Instância Gerenciada do SQL dentro da rede virtual e dos serviços dos quais ela 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 Instância Gerenciada SQL 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 Gerenciadas SQL, essas sub-redes devem usar tabelas de rotas e grupos de segurança de rede (NSG) diferentes. 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.
  • AzurePlatformDNS: Usar a marca de serviço AzurePlatformDNS para bloquear a resolução DNS da plataforma tornaria a Instância Gerenciada SQL indisponível. Embora a Instância Gerenciada SQL ofereça suporte ao DNS definido pelo cliente para resolução de DNS dentro do mecanismo, há uma dependência do DNS da plataforma para operações da plataforma.
  • Gateway NAT: usar o 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 para Rede Virtual do Azure: Espera-se que a implantação da Instância Gerenciada SQL em redes virtuais IPv4/IPv6 de pilha dupla falhe. A associação de um grupo de segurança de rede ou uma tabela de rotas a rotas definidas pelo usuário (UDRs) que contém prefixos de endereço IPv6 a uma sub-rede de Instância Gerenciada SQL torna a Instância Gerenciada 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.
  • Zonas privadas do DNS do Azure com um nome reservado para serviços Microsoft: Os seguintes nomes de domínio são nomes reservados: windows.net, , , , , database.windows.net, servicebus.windows.nettable.core.windows.netmanagement.core.windows.netmonitoring.core.windows.netblob.core.windows.netcore.windows.netgraph.windows.netlogin.microsoftonline.comqueue.core.windows.netlogin.windows.nete .vault.azure.net A implantação da Instância Gerenciada SQL em uma rede virtual que tenha uma zona privada de DNS do Azure associada que usa um nome reservado para serviços da Microsoft falha. Associar uma zona privada do DNS do Azure que usa um nome reservado a uma rede virtual que contém uma instância gerenciada torna a Instância Gerenciada do SQL indisponível. Para obter informações sobre a configuração de Link Privado, consulte Configuração de DNS do Ponto de Extremidade Privado do Azure.

Próximos passos