Permitir acesso a namespaces dos Hubs de Eventos do Azure a partir de redes virtuais específicas

A integração de Hubs de Eventos 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 vincular a pelo menos um ponto de extremidade de serviço de sub-rede de rede virtual, o namespace dos respetivos Hubs de Eventos não aceita mais tráfego de qualquer lugar, exceto sub-redes autorizadas em redes virtuais. Da perspetiva da rede virtual, vincular um namespace de Hubs de Eventos a um ponto de extremidade de serviço configura um túnel de rede isolado da sub-rede de 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 de Hubs de Eventos, 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. Há uma exceção a esse comportamento. A habilitação de um ponto de extremidade de serviço, por padrão, habilita a denyall regra no firewall IP associado à rede virtual. Você pode adicionar endereços IP específicos no firewall IP para habilitar o acesso ao ponto de extremidade público dos Hubs de Eventos.

Pontos importantes

  • Este recurso não é suportado na camada básica .
  • A habilitação de redes virtuais para seu namespace de Hubs de Eventos bloqueia solicitações de entrada por padrão, a menos que as solicitações sejam originadas de um serviço que opera a partir de redes virtuais permitidas. As solicitações bloqueadas incluem as de outros serviços do Azure, do portal do Azure, de serviços de registro em log e métricas e assim por diante. Como exceção, você pode permitir o acesso aos recursos dos Hubs de Eventos a partir de determinados serviços confiáveis, mesmo quando as redes virtuais estão habilitadas. Para obter uma lista de serviços confiáveis, consulte Serviços confiáveis.
  • 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, 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 de Hubs de Eventos 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.

Vincular hubs de eventos a redes virtuais

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

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

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

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 Hubs de Eventos no portal do Azure.

  2. Selecione Rede em Configurações no menu à esquerda.

  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 de redes virtuais específicas.

    Aqui estão mais detalhes sobre as opções disponíveis na página Acesso à rede pública:

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

    • 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 hub de eventos aceita 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 específicas, escolha a opção Redes selecionadas na parte superior da página, se ainda não estiver selecionada.

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

    Selection of Add existing virtual network menu item.

    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.

  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 a 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.EventHub. Selecione Adicionar na parte inferior da página para adicionar a rede.

    Image showing the selection of a subnet and enabling an 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. Especifique se deseja permitir que serviços confiáveis da Microsoft ignorem esse firewall. Consulte Serviços confiáveis da Microsoft para obter detalhes.

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

    Image showing the saving of virtual network.

    Nota

    Para restringir o acesso a 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 dentro do mesmo locatário recebem acesso aos recursos dos Hubs de Eventos.

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 hubs de eventos em seu namespace de Hubs de Eventos. 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 dos Hubs de Eventos do Azure no namespace Hubs de Eventos
  • Em seguida, configure a assinatura de evento que usa um hub de eventos como ponto de extremidade para usar a identidade atribuída pelo 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 leia dados de (entrada) ou grave dados em hubs de eventos (de saída) em seu namespace de Hubs de Eventos.

Importante: O trabalho do Stream Analytics deve ser configurado para usar uma identidade gerenciada para acessar o hub de eventos. Para obter mais informações, consulte Usar identidades gerenciadas para acessar o hub de eventos de um trabalho do Azure Stream Analytics (Visualização).

Hub IoT do Azure Permite que o Hub IoT envie mensagens para hubs de eventos em seu namespace de Hubs de Eventos. Você também precisa fazer as seguintes etapas:
  • Habilite a identidade atribuída ao sistema para seu hub IoT
  • Adicione a identidade à função Remetente de Dados dos Hubs de Eventos do Azure no namespace Hubs de Eventos.
  • Em seguida, configure o Hub IoT que usa um hub de eventos como um ponto de extremidade personalizado para usar a autenticação baseada em identidade.
API Management do Azure

O serviço de Gerenciamento de API permite que você envie eventos para um hub de eventos em seu namespace de Hubs de Eventos.

  • Você pode acionar fluxos de trabalho personalizados enviando eventos para seu hub de eventos quando uma API é invocada usando a política de solicitação de envio.
  • Você também pode tratar um hub de eventos como seu back-end em uma API. Para obter uma política de exemplo, consulte Autenticar usando uma identidade gerenciada para acessar um hub de eventos. 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 dos Hubs de Eventos do Azure no namespace Hubs de Eventos
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 hubs de eventos em seu namespace de Hubs de Eventos. O Azure Monitor pode ler a partir do hub de eventos e também gravar dados no hub de eventos.
Azure Synapse Permite que o Azure Synapse se conecte ao hub de eventos usando a Synapse Workspace Managed Identity. Adicione a função Remetente, Recetor ou Proprietário de Dados dos Hubs de Eventos do Azure à identidade no namespace Hubs de Eventos.
Azure Data Explorer Permite que o Azure Data Explorer receba eventos do hub de eventos usando a Identidade Gerenciada do cluster. Você precisa fazer as seguintes etapas:
  • Configurar a identidade gerenciada no Azure Data Explorer
  • Conceda a função de Recetor de Dados dos Hubs de Eventos do Azure à identidade, no hub de eventos.
 
Azure IoT Central

Permite que o IoT Central exporte dados para hubs de eventos em seu namespace de Hubs de Eventos. 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 dos Hubs de Eventos do Azure no namespace Hubs de Eventos .
  • Em seguida, configure o destino de exportação dos Hubs de Eventos em seu aplicativo IoT Central para usar a autenticação baseada em identidade.
Serviços de Dados de Saúde do Azure Permite que o conector IoT das APIs de assistência médica ingira dados de dispositivos médicos do namespace dos Hubs de Eventos e persista dados no serviço FHIR® (Fast Healthcare Interoperability Resources) configurado. O conector IoT deve ser configurado para usar uma identidade gerenciada para acessar o hub de eventos. Para obter mais informações, consulte Introdução ao conector IoT - APIs do Azure Healthcare.
Azure Digital Twins Permite que os Gêmeos Digitais do Azure enviem dados para hubs de eventos em seu namespace de Hubs de Eventos. 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 dos Hubs de Eventos do Azure no namespace Hubs de Eventos .
  • 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 de Hubs de Eventos 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.

Os outros serviços confiáveis para Hubs de Eventos do Azure podem ser encontrados abaixo:

  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview

Utilizar modelo do Resource Manager

O modelo de exemplo do Gerenciador de Recursos a seguir adiciona uma regra de rede virtual a um namespace de Hubs de Eventos existente. 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.

Ao adicionar regras de rede virtual ou firewalls, defina o valor de defaultAction Denycomo .

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "eventhubNamespaceName": {
        "type": "string",
        "metadata": {
          "description": "Name of the Event Hubs 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('eventhubNamespaceName'), concat('/', 'default'))]",
      "subNetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets/', parameters('virtualNetworkName'), parameters('subnetName'))]"
    },
    "resources": [
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[parameters('eventhubNamespaceName')]",
        "type": "Microsoft.EventHub/namespaces",
        "location": "[parameters('location')]",
        "sku": {
          "name": "Standard",
          "tier": "Standard"
        },
        "properties": { }
      },
      {
        "apiVersion": "2017-09-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.EventHub"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "apiVersion": "2018-01-01-preview",
        "name": "[variables('namespaceNetworkRuleSetName')]",
        "type": "Microsoft.EventHub/namespaces/networkruleset",
        "dependsOn": [
          "[concat('Microsoft.EventHub/namespaces/', parameters('eventhubNamespaceName'))]"
        ],
        "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 defaultAction deny. 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 eventhubs 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 that shows the Public access page with the All networks option selected.

Próximos passos

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