Permitir acesso ao namespace do Barramento de Serviço do Azure a partir de redes virtuais específicas

A integração do Service Bus com pontos de extremidade de serviço de Rede Virtual (VNet) permite o acesso seguro a recursos de mensagens de cargas de trabalho, como máquinas virtuais vinculadas a redes virtuais, com o caminho de tráfego de rede protegido em ambas as extremidades.

Uma vez configurado para ser vinculado a pelo menos um ponto de extremidade de serviço de sub-rede de rede virtual, o respetivo namespace do Service Bus não aceitará mais tráfego de qualquer lugar, exceto redes virtuais autorizadas e, opcionalmente, endereços IP específicos da Internet. Do ponto de vista da rede virtual, vincular um namespace do Service Bus a um ponto de extremidade de serviço configura um túnel de rede isolado da sub-rede da rede virtual para o serviço de mensagens.

O resultado é uma relação privada e isolada entre as cargas de trabalho vinculadas à sub-rede e o respetivo namespace do Service Bus, apesar do endereço de rede observável do ponto de extremidade do serviço de mensagens estar em um intervalo de IP público.

Pontos importantes

  • As Redes Virtuais são suportadas apenas em namespaces do Service Bus de camada Premium. Ao usar pontos de extremidade de serviço VNet com o Service Bus, você não deve habilitar esses pontos de extremidade em aplicativos que misturam namespaces do Service Bus de camada padrão e premium. Porque a camada padrão não suporta redes virtuais. O ponto de extremidade é restrito apenas a namespaces de camada Premium.

  • A implementação da integração de Redes Virtuais pode impedir que outros serviços do Azure interajam com o Service Bus. Como exceção, você pode permitir o acesso aos recursos do Service Bus a partir de determinados serviços confiáveis, mesmo quando os pontos de extremidade de serviço de rede estão habilitados. Para obter uma lista de serviços confiáveis, consulte Serviços confiáveis.

    Os seguintes serviços da Microsoft são necessários para estar em uma rede virtual

    • Serviço de Aplicações do Azure
    • Funções do Azure
  • Especifique pelo menos uma regra IP ou regra de rede virtual para o namespace para permitir o tráfego somente dos endereços IP especificados ou sub-rede de uma rede virtual. Se não houver regras de IP e de rede virtual, o namespace poderá ser acessado pela Internet pública (usando a chave de acesso).

Cenários avançados de segurança habilitados pela integração de VNet

Soluções que exigem segurança apertada e compartimentada, e onde as sub-redes de rede virtual fornecem a segmentação entre os serviços compartimentados, geralmente ainda precisam de caminhos de comunicação entre os serviços que residem nesses compartimentos.

Qualquer rota IP imediata entre os compartimentos, incluindo aqueles que transportam HTTPS sobre TCP/IP, acarreta o risco de exploração de vulnerabilidades da camada de rede para cima. Os serviços de mensagens fornecem caminhos de comunicação isolados, onde as mensagens são gravadas até mesmo no disco à medida que transitam entre as partes. As cargas de trabalho em duas redes virtuais distintas que estão vinculadas à mesma instância do Service Bus podem se comunicar de forma eficiente e confiável por meio de mensagens, enquanto a integridade do limite de isolamento de rede respetiva é preservada.

Isso significa que suas soluções de nuvem sensíveis à segurança não apenas obtêm acesso aos recursos de mensagens assíncronas confiáveis e escaláveis líderes do setor do Azure, mas agora podem usar mensagens para criar caminhos de comunicação entre compartimentos de solução seguros que são inerentemente mais seguros do que o que é possível com qualquer modo de comunicação ponto a ponto, incluindo HTTPS e outros protocolos de soquete protegidos por TLS.

Vinculando o Service Bus a redes virtuais

As regras de rede virtual são o recurso de segurança de firewall que controla se o servidor do Barramento de Serviço do Azure aceita conexões de uma sub-rede de rede virtual específica.

Vincular um namespace do Service Bus a uma rede virtual é um processo de duas etapas. Primeiro, você precisa criar um ponto de extremidade de serviço de Rede Virtual em uma sub-rede de Rede Virtual e habilitá-lo para Microsoft.ServiceBus, conforme explicado na visão geral do ponto de extremidade de serviço. Depois de adicionar o ponto de extremidade de serviço, você vincula o namespace do Service Bus a ele com uma regra de rede virtual.

A regra de rede virtual é uma associação do namespace do Service Bus com uma sub-rede de rede virtual. Enquanto a regra existir, todas as cargas de trabalho vinculadas à sub-rede recebem acesso ao namespace do Service Bus. O Service Bus em si nunca estabelece conexões de saída, não precisa obter acesso e, portanto, nunca recebe acesso à sua sub-rede habilitando essa regra.

Nota

Lembre-se de que um ponto de extremidade de serviço de rede fornece aos aplicativos em execução na rede virtual o acesso ao namespace do Service Bus. A rede virtual controla a acessibilidade do ponto de extremidade, mas não quais operações podem ser feitas em entidades do Service Bus (filas, tópicos ou assinaturas). Use o Microsoft Entra ID para autorizar operações que os aplicativos podem executar no namespace e suas entidades. Para obter mais informações, consulte Autenticar e autorizar um aplicativo com a ID do Microsoft Entra para acessar entidades do Service Bus.

Utilizar o portal do Azure

Ao criar um namespace, você pode permitir acesso somente público (de todas as redes) ou privado (somente por meio de pontos de extremidade privados) ao namespace. Depois que o namespace é criado, você pode permitir o acesso de endereços IP específicos ou de redes virtuais específicas (usando pontos de extremidade de serviço de rede).

Configurar o acesso público ao criar um namespace

Para habilitar o acesso público, selecione Acesso público na página Rede do assistente de criação de namespace.

Screenshot showing the Networking page of the Create namespace wizard with Public access option selected.

Depois de criar o namespace, selecione Rede no menu esquerdo da página Namespace do Service Bus. Você verá que a opção Todas as redes está selecionada. Você pode selecionar a opção Redes selecionadas e permitir o acesso de endereços IP específicos ou redes virtuais específicas. A próxima seção fornece detalhes sobre como especificar as redes a partir das quais o acesso é permitido.

Configurar redes selecionadas para um namespace existente

Esta seção mostra como usar o portal do Azure para adicionar um ponto de extremidade de serviço de rede virtual. Para limitar o acesso, você precisa integrar o ponto de extremidade do serviço de rede virtual para esse namespace de Hubs de Eventos.

  1. Navegue até o namespace do Service Bus no portal do Azure.

  2. No menu à esquerda, selecione a opção Rede em Configurações.

    Nota

    Você vê a guia Rede somente para namespaces premium .

  3. Na página Rede, para Acesso à rede pública, você pode definir uma das três opções a seguir. Escolha a opção Redes selecionadas para permitir o acesso apenas a partir de endereços IP especificados.

    • Desativado. Esta opção desativa qualquer acesso público ao namespace. O namespace é acessível somente por meio de pontos de extremidade privados.

      Screenshot that shows the Networking page of a namespace with public access disabled.

      Escolha se deseja permitir que serviços confiáveis da Microsoft ignorem o firewall. Para obter a lista de serviços Microsoft confiáveis para o Barramento de Serviço do Azure, consulte a seção Serviços confiáveis da Microsoft .

    • Redes selecionadas. Essa opção permite o acesso público ao namespace usando uma chave de acesso de redes selecionadas.

      Importante

      Se você escolher Redes selecionadas, adicione pelo menos uma regra de firewall IP ou uma rede virtual que terá acesso ao namespace. Escolha Desabilitado se quiser restringir todo o tráfego a esse namespace somente em pontos de extremidade privados.

    • Todas as redes (padrão). Esta opção permite o acesso público a partir de todas as redes utilizando uma chave de acesso. Se você selecionar a opção Todas as redes, o Service Bus aceitará conexões de qualquer endereço IP (usando a chave de acesso). Essa configuração é equivalente a uma regra que aceita o intervalo de endereços IP 0.0.0.0/0.

  4. Para restringir o acesso a redes virtuais específicas, selecione a opção Redes selecionadas se ainda não estiver selecionada.

  5. Na seção Rede Virtual da página, selecione +Adicionar rede virtual existente. Selecione + Criar nova rede virtual se quiser criar uma nova rede virtual.

    Image showing the selection of Add existing virtual network button on the toolbar.

    Aviso

    Se você selecionar a opção Redes selecionadas e não adicionar pelo menos uma regra de firewall IP ou uma rede virtual nesta página, o namespace poderá ser acessado pela Internet pública (usando a chave de acesso).

  6. Selecione a rede virtual na lista de redes virtuais e, em seguida, escolha a sub-rede. Você precisa habilitar o ponto de extremidade de serviço antes de adicionar a rede virtual à lista. Se o ponto de extremidade do serviço não estiver habilitado, o portal solicitará que você o habilite.

    Image showing the selection of VNet and subnet.

  7. Você verá a seguinte mensagem bem-sucedida depois que o ponto de extremidade de serviço para a sub-rede estiver habilitado para Microsoft.ServiceBus. Selecione Adicionar na parte inferior da página para adicionar a rede.

    Image showing the success message of enabling the service endpoint.

    Nota

    Se você não conseguir habilitar o ponto de extremidade de serviço, poderá ignorar o ponto de extremidade de serviço de rede virtual ausente usando o modelo do Gerenciador de Recursos. Esta funcionalidade não está disponível no portal.

  8. Selecione Salvar na barra de ferramentas para salvar as configurações. Aguarde alguns minutos para que a confirmação apareça nas notificações do portal. O botão Salvar deve ser desativado.

    Image showing the network service endpoint saved.

    Nota

    Para obter instruções sobre como permitir o acesso a partir de endereços IP ou intervalos específicos, consulte Permitir acesso a partir de endereços IP ou intervalos específicos.

Serviços fidedignos da Microsoft

Quando você habilita a configuração Permitir que serviços confiáveis da Microsoft ignorem esse firewall , os seguintes serviços recebem acesso aos recursos do Service Bus.

Serviço de confiança Cenários de utilização suportados
Grelha de Eventos do Azure Permite que a Grade de Eventos do Azure envie eventos para filas ou tópicos em seu namespace do Service Bus. Você também precisa fazer as seguintes etapas:
  • Habilitar a identidade atribuída ao sistema para um tópico ou domínio
  • Adicionar a identidade à função Remetente de Dados do Barramento de Serviço do Azure no namespace do Barramento de Serviço
  • Em seguida, configure a assinatura de evento que usa uma fila ou tópico do Service Bus como um ponto de extremidade para usar a identidade atribuída ao sistema.

Para obter mais informações, consulte Entrega de eventos com uma identidade gerenciada

Azure Stream Analytics Permite que um trabalho do Azure Stream Analytics produza dados para filas do Barramento de Serviço para tópicos.

Importante: O trabalho do Stream Analytics deve ser configurado para usar uma identidade gerenciada para acessar o namespace do Service Bus. Adicione a identidade à função Remetente de Dados do Barramento de Serviço do Azure no namespace do Barramento de Serviço .

Hub IoT do Azure Permite que um hub IoT envie mensagens para filas ou tópicos em seu namespace do Service Bus. Você também precisa fazer as seguintes etapas:
API Management do Azure

O serviço de Gerenciamento de API permite que você envie mensagens para uma fila/tópico do Service Bus em seu namespace do Service Bus.

  • Você pode acionar fluxos de trabalho personalizados enviando mensagens para sua fila/tópico do Service Bus quando uma API é invocada usando a política de solicitação de envio.
  • Você também pode tratar uma fila/tópico do Service Bus como seu back-end em uma API. Para obter uma política de exemplo, consulte Autenticar usando uma identidade gerenciada para acessar uma fila ou tópico do Service Bus. Você também precisa fazer as seguintes etapas:
    1. Habilite a identidade atribuída ao sistema na instância de Gerenciamento de API. Para obter instruções, consulte Usar identidades gerenciadas no Gerenciamento de API do Azure.
    2. Adicionar a identidade à função Remetente de Dados do Barramento de Serviço do Azure no namespace do Barramento de Serviço
Azure IoT Central

Permite que o IoT Central exporte dados para filas ou tópicos do Service Bus em seu namespace do Service Bus. Você também precisa fazer as seguintes etapas:

  • Habilite a identidade atribuída ao sistema para seu aplicativo IoT Central
  • Adicione a identidade à função Remetente de Dados do Barramento de Serviço do Azure no namespace do Barramento de Serviço .
  • Em seguida, configure o destino de exportação do Service Bus em seu aplicativo IoT Central para usar a autenticação baseada em identidade.
Azure Digital Twins Permite que os Gêmeos Digitais do Azure enviem dados para tópicos do Barramento de Serviço em seu namespace do Barramento de Serviço. Você também precisa fazer as seguintes etapas:

  • Habilite a identidade atribuída ao sistema para sua instância do Azure Digital Twins.
  • Adicione a identidade à função Remetente de Dados do Barramento de Serviço do Azure no namespace do Barramento de Serviço .
  • Em seguida, configure um ponto de extremidade do Azure Digital Twins ou uma conexão de histórico de dados do Azure Digital Twins que use a identidade atribuída ao sistema para autenticar. Para obter mais informações sobre como configurar pontos de extremidade e rotas de eventos para recursos do Barramento de Serviço dos Gêmeos Digitais do Azure, consulte Rotear eventos de Gêmeos Digitais do Azure e Criar pontos de extremidade em Gêmeos Digitais do Azure.
Azure Monitor (Configurações de Diagnóstico e Grupos de Ação) Permite que o Azure Monitor envie informações de diagnóstico e notificações de alerta para o Service Bus em seu namespace do Service Bus. O Azure Monitor pode ler e gravar dados no namespace do Service Bus.
Azure Synapse Permite que o Azure Synapse se conecte ao barramento de serviço usando a Identidade Gerenciada do Espaço de Trabalho Synapse. Adicione a função Remetente, Recetor ou Proprietário de Dados do Barramento de Serviço do Azure à identidade no namespace do Barramento de Serviço.

Os outros serviços confiáveis para o Barramento de Serviço do Azure podem ser encontrados abaixo:

  • Azure Data Explorer
  • Serviços de Dados de Saúde do Azure
  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview

Utilizar modelo do Resource Manager

O modelo Resource Manager de exemplo a seguir adiciona uma regra de rede virtual a um namespace existente do Service Bus. Para a regra de rede, especifica a ID de uma sub-rede em uma rede virtual.

A ID é um caminho do Gerenciador de Recursos totalmente qualificado para a sub-rede de rede virtual. Por exemplo, /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/default para a sub-rede padrão de uma rede virtual.

Nota

O valor padrão do defaultAction é Allow. Ao adicionar regras de rede virtual ou firewalls, certifique-se de definir como defaultActionDeny.

Modelo:

{
	"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
	"contentVersion": "1.0.0.0",
	"parameters": {
		"servicebusNamespaceName": {
			"type": "string",
			"metadata": {
				"description": "Name of the Service Bus namespace"
			}
		},
		"virtualNetworkName": {
			"type": "string",
			"metadata": {
				"description": "Name of the Virtual Network Rule"
			}
		},
		"subnetName": {
			"type": "string",
			"metadata": {
				"description": "Name of the Virtual Network Sub Net"
			}
		},
		"location": {
			"type": "string",
			"metadata": {
				"description": "Location for Namespace"
			}
		}
	},
	"variables": {
		"namespaceNetworkRuleSetName": "[concat(parameters('servicebusNamespaceName'), concat('/', 'default'))]",
		"subNetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets/', parameters('virtualNetworkName'), parameters('subnetName'))]"
	},
	"resources": [{
			"apiVersion": "2022-10-01-preview",
			"name": "[parameters('servicebusNamespaceName')]",
			"type": "Microsoft.ServiceBus/namespaces",
			"location": "[parameters('location')]",
			"sku": {
				"name": "Premium",
				"tier": "Premium",
				"capacity": 1
			},
			"properties": {
				"premiumMessagingPartitions": 1,
				"minimumTlsVersion": "1.2",
				"publicNetworkAccess": "Enabled",
				"disableLocalAuth": false,
				"zoneRedundant": true
			}
		},
		{
			"apiVersion": "2022-07-01",
			"name": "[parameters('virtualNetworkName')]",
			"location": "[parameters('location')]",
			"type": "Microsoft.Network/virtualNetworks",
			"properties": {
				"addressSpace": {
					"addressPrefixes": [
						"10.0.0.0/23"
					]
				},
				"subnets": [{
					"name": "[parameters('subnetName')]",
					"properties": {
						"addressPrefix": "10.0.0.0/23",
						"serviceEndpoints": [{
							"service": "Microsoft.ServiceBus"
						}]
					}
				}]
			}
		},
		{
			"apiVersion": "2022-10-01-preview",
			"name": "[variables('namespaceNetworkRuleSetName')]",
			"type": "Microsoft.ServiceBus/namespaces/networkruleset",
			"dependsOn": [
				"[concat('Microsoft.ServiceBus/namespaces/', parameters('servicebusNamespaceName'))]"
			],
			"properties": {
				"publicNetworkAccess": "Enabled",
				"defaultAction": "Deny",
				"virtualNetworkRules": [{
					"subnet": {
						"id": "[variables('subNetId')]"
					},
					"ignoreMissingVnetServiceEndpoint": false
				}],
				"ipRules": [],
				"trustedServiceAccessEnabled": false
			}
		}
	],
	"outputs": {}
}

Para implantar o modelo, siga as instruções para o Gerenciador de Recursos do Azure.

Importante

Se não houver regras de IP e de rede virtual, todo o tráfego fluirá para o namespace, mesmo que você defina como defaultActiondeny. O namespace pode ser acessado pela internet pública (usando a chave de acesso). Especifique pelo menos uma regra IP ou regra de rede virtual para o namespace para permitir o tráfego somente dos endereços IP especificados ou sub-rede de uma rede virtual.

Utilizar a CLI do Azure

Use az servicebus namespace network-rule-set comandos add, list, update e remove para gerenciar regras de rede virtual para um namespace do Service Bus.

Utilizar o Azure PowerShell

Use os seguintes comandos do Azure PowerShell para adicionar, listar, remover, atualizar e excluir regras de rede para um namespace do Service Bus.

Ação padrão e acesso à rede pública

API REST

O valor padrão da propriedade era Deny para a defaultAction versão da API 2021-01-01-preview e anterior. No entanto, a regra de negação não é imposta, a menos que você defina filtros IP ou regras de rede virtual (VNet). Ou seja, se você não tiver filtros IP ou regras de VNet, isso será tratado como Allow.

A partir da versão da API 2021-06-01-preview em diante, o valor padrão da propriedade é Allow, para refletir com precisão a imposição do lado do defaultAction serviço. Se a ação padrão for definida como Deny, os filtros IP e as regras de VNet serão impostos. Se a ação padrão estiver definida como Allow, os filtros IP e as regras de VNet não serão impostos. O serviço lembra as regras quando você as desliga e depois volta a ligá-las.

A versão da API 2021-06-01-preview em diante também introduz uma nova propriedade chamada publicNetworkAccess. Se estiver definido como Disabled, as operações serão restritas apenas a links privados. Se estiver definido como Enabled, as operações são permitidas através da Internet pública.

Para obter mais informações sobre essas propriedades, consulte Criar ou atualizar conjunto de regras de rede e Criar ou atualizar conexões de ponto de extremidade privado.

Nota

Nenhuma das configurações acima ignora a validação de declarações por meio da autenticação SAS ou Microsoft Entra. A verificação de autenticação sempre é executada depois que o serviço valida as verificações de rede configuradas por defaultAction, publicNetworkAccess, privateEndpointConnections configurações.

Portal do Azure

O portal do Azure sempre usa a versão mais recente da API para obter e definir propriedades. Se você tivesse configurado anteriormente seu namespace usando 2021-01-01-preview e anterior com defaultAction definido como Deny, e especificado zero filtros IP e regras de VNet, o portal teria verificado anteriormente Redes selecionadas na página Rede do seu namespace. Agora, ele verifica a opção Todas as redes .

Screenshot of the Azure portal Networking page. The option to allow access from All networks is selected on the Firewalls and virtual networks tab.

Próximos passos

Para obter mais informações sobre redes virtuais, consulte os seguintes links: