Permitir acesso a namespaces dos Hubs de Eventos do Azure a partir de endereços IP ou intervalos específicos

Por padrão, os namespaces dos Hubs de Eventos são acessíveis pela Internet, desde que a solicitação seja fornecida com autenticação e autorização válidas. Com o firewall IP, você pode restringi-lo ainda mais a apenas um conjunto de endereços IPv4 e IPv6 ou intervalos de endereços na notação CIDR (Roteamento entre Domínios sem Classe).

Esse recurso é útil em cenários nos quais os Hubs de Eventos do Azure só devem ser acessíveis a partir de determinados sites conhecidos. As regras de firewall permitem configurar regras para aceitar tráfego originado de endereços IPv4 e IPv6 específicos. Por exemplo, se você usar Hubs de Eventos com a Rota Expressa do Azure, poderá criar uma regra de firewall para permitir o tráfego somente dos endereços IP da infraestrutura local.

Regras de firewall de IP

Você especifica regras de firewall IP no nível de namespace de Hubs de Eventos. Assim, as regras se aplicam a todas as conexões de clientes usando qualquer protocolo suportado. Qualquer tentativa de conexão de um endereço IP que não corresponda a uma regra IP permitida no namespace Hubs de Eventos é rejeitada como não autorizada. A resposta não menciona a regra de IP. As regras de filtro IP são aplicadas em ordem e a primeira regra que corresponde ao endereço IP determina a ação de aceitação ou rejeição.

Pontos importantes

  • Este recurso não é suportado na camada básica .
  • Ativar regras de firewall 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 endereços IP públicos permitidos. As solicitações bloqueadas incluem as solicitações 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 a filtragem de IP está habilitada. Para obter uma lista de serviços confiáveis, consulte Serviços confiáveis da Microsoft.
  • Especifique pelo menos uma regra de firewall 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 rede virtual, o namespace pode ser acessado pela Internet pública (usando a chave de acesso).

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 de Hubs de Eventos . 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 configurar o firewall IP para especificar os endereços IP a partir dos quais o acesso é permitido.

Configurar firewall IP para um namespace existente

Esta seção mostra como usar o portal do Azure para criar regras de firewall IP para um 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, escolha a opção Redes selecionadas para permitir o acesso apenas a partir de endereços IP especificados.

    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 endereços IP específicos, selecione a opção Redes selecionadas e siga estas etapas:

    1. Na seção Firewall, selecione Adicionar a opção de endereço IP do cliente para dar ao IP do cliente atual o acesso ao namespace.

    2. Para intervalo de endereços, insira endereços IPv4 ou IPv6 específicos ou intervalos de endereços na notação CIDR.

      Importante

      Quando o serviço começar a suportar conexões IPv6 no futuro e os clientes mudarem automaticamente para o IPv6, seus clientes serão interrompidos se você tiver apenas endereços IPv4, não endereços IPv6. Portanto, recomendamos que você adicione endereços IPv6 à lista de endereços IP permitidos agora para que seus clientes não quebrem quando o serviço eventualmente mudar para o suporte a IPv6.

    3. Especifique se deseja permitir que serviços confiáveis da Microsoft ignorem esse firewall. Consulte Serviços confiáveis da Microsoft para obter detalhes.

      Firewall section highlighted in the Public access tab of the Networking page.

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

    Nota

    Para restringir o acesso a redes virtuais específicas, consulte Permitir acesso a partir de redes específicas.

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 hubs de eventos (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 Identidade Gerenciada do Espaço de Trabalho Synapse. 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

Importante

O recurso Firewall não é suportado na camada básica.

O modelo do Gerenciador de Recursos a seguir permite adicionar uma regra de filtro IP a um namespace de Hubs de Eventos existente.

ipMask no modelo é um único endereço IPv4 ou um bloco de endereços IP na notação CIDR. Por exemplo, na notação CIDR 70.37.104.0/24 representa os 256 endereços IPv4 de 70.37.104.0 a 70.37.104.255, com 24 indicando o número de bits de prefixo significativos para o intervalo.

Nota

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

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespace_name": {
            "defaultValue": "contosoehub1333",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.EventHub/namespaces",
            "apiVersion": "2022-01-01-preview",
            "name": "[parameters('namespace_name')]",
            "location": "East US",
            "sku": {
                "name": "Standard",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "minimumTlsVersion": "1.2",
                "publicNetworkAccess": "Enabled",
                "disableLocalAuth": false,
                "zoneRedundant": true,
                "isAutoInflateEnabled": false,
                "maximumThroughputUnits": 0,
                "kafkaEnabled": true
            }
        },
        {
            "type": "Microsoft.EventHub/namespaces/authorizationrules",
            "apiVersion": "2022-01-01-preview",
            "name": "[concat(parameters('namespace_name'), '/RootManageSharedAccessKey')]",
            "location": "eastus",
            "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespace_name'))]"
            ],
            "properties": {
                "rights": [
                    "Listen",
                    "Manage",
                    "Send"
                ]
            }
        },
        {
            "type": "Microsoft.EventHub/namespaces/networkRuleSets",
            "apiVersion": "2022-01-01-preview",
            "name": "[concat(parameters('namespace_name'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespace_name'))]"
            ],
            "properties": {
                "publicNetworkAccess": "Enabled",
                "defaultAction": "Deny",
                "virtualNetworkRules": [],
                "ipRules": [
                    {
                        "ipMask": "10.1.1.1",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "11.0.0.0/24",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "172.72.157.204",
                        "action": "Allow"
                    }
                ]
            }
        }
    ]
}

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 os comandos adicionar, listar, atualizar e remover para gerenciar regras de firewall IP para um namespace de Hubs de Eventos.

Utilizar o Azure PowerShell

Use o Set-AzEventHubNetworkRuleSet cmdlet para adicionar uma ou mais regras de firewall IP. Um exemplo do artigo:

$ipRule1 = New-AzEventHubIPRuleConfig -IPMask 2.2.2.2 -Action Allow
$ipRule2 = New-AzEventHubIPRuleConfig -IPMask 3.3.3.3 -Action Allow
$virtualNetworkRule1 = New-AzEventHubVirtualNetworkRuleConfig -SubnetId '/subscriptions/subscriptionId/resourcegroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/default'
$networkRuleSet = Get-AzEventHubNetworkRuleSet -ResourceGroupName myResourceGroup -NamespaceName myNamespace
$networkRuleSet.IPRule += $ipRule1
$networkRuleSet.IPRule += $ipRule2
$networkRuleSet.VirtualNetworkRule += $virtualNetworkRule1
Set-AzEventHubNetworkRuleSet -ResourceGroupName myResourceGroup -NamespaceName myNamespace -IPRule $ipRule1,$ipRule2 -VirtualNetworkRule $virtualNetworkRule1,$virtualNetworkRule2,$virtualNetworkRule3

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. Ou seja, se você não tiver filtros IP ou regras de rede virtual, 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 estiver definida como Deny, os filtros IP e as regras de rede virtual serão impostos. Se a ação padrão estiver definida como Allow, os filtros IP e as regras de rede virtual 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 seu namespace usando 2021-01-01-preview e anterior com defaultAction definido como Deny, e especificado zero filtros IP e regras de rede virtual, 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 restringir o acesso aos Hubs de Eventos às redes virtuais do Azure, consulte o seguinte link: