Permitir acesso aos namespaces dos Hubs de Eventos do Azure por meio de pontos de extremidade privados

O Serviço de Link Privado do Azure permite acessar os Serviços do Azure (por exemplo, os Hubs de Eventos do Azure, o Armazenamento do Azure e o Azure Cosmos DB) e serviços de parceiros/clientes hospedados no Azure em um ponto de extremidade privado em sua rede virtual.

O ponto de extremidade privado é uma interface de rede que conecta você de forma privada e segura a um serviço com tecnologia do Link Privado do Azure. O ponto de extremidade privado usa um endereço IP privado da rede virtual, colocando efetivamente o serviço na sua rede virtual. Todo o tráfego para o serviço pode ser roteado por meio do ponto de extremidade privado; assim, nenhum gateway, nenhum dispositivo NAT, nenhuma conexão ExpressRoute ou VPN e nenhum endereço IP público é necessário. O tráfego entre a rede virtual e o serviço percorre a rede de backbone da Microsoft, eliminando a exposição da Internet pública. Você pode se conectar a uma instância de um recurso do Azure, fornecendo o nível mais alto de granularidade no controle de acesso.

Para obter mais informações, confira O que é o Link Privado do Azure?

Pontos importantes

  • Não há suporte para esse recurso na camada básica.
  • Implementar pontos de extremidade privados pode impedir que outros serviços do Azure interajam com os Hubs de Eventos. Solicitações que estão bloqueadas incluem as de outros serviços do Azure, do portal do Azure, de registro em log e serviços de métricas e assim por diante. Como exceção, você pode permitir o acesso a recursos de Hubs de Eventos de determinados serviços confiáveis mesmo quando pontos de extremidade privados estiverem habilitadas. Para obter uma lista de serviços confiáveis, confira Serviços confiáveis.
  • Especifique pelo menos uma regra de IP ou regra de rede virtual para o namespace para permitir o tráfego somente dos endereços IP ou da sub-rede de uma rede virtual especificada. Se não houver nenhuma regra de rede virtual e IP, o namespace poderá ser acessado pela Internet pública (usando a chave de acesso).

Inclusão de um ponto de extremidade privado através do portal do Azure

Pré-requisitos

Para integrar um namespace dos Hubs de Eventos ao Link Privado do Azure, você precisará ter as seguintes entidades ou permissões:

  • Um namespace dos Hubs de Eventos.
  • Uma rede virtual do Azure.
  • Uma sub-rede na rede virtual. Você pode usar a sub-rede padrão.
  • Permissões de proprietário ou colaborador para o namespace e a rede virtual.

Seu ponto de extremidade privado e a rede virtual devem estar na mesma região. Quando você selecionar uma região para o ponto de extremidade privado usando o portal, ele filtrará automaticamente apenas as redes virtuais que estiverem nessa região. O namespace pode estar em uma região diferente.

Seu ponto de extremidade privado usa um endereço IP privado em sua rede virtual.

Configurar o acesso privado durante a criação de um namespace

Ao criar um namespace, você pode permitir acesso somente público (de todas as redes) ou somente privado (somente por meio de pontos de extremidade privados) ao namespace.

Se você selecionar a opção Acesso privado na página Rede do assistente de criação de namespace, poderá adicionar um ponto de extremidade privado na página selecionando o botão + Ponto de extremidade privado. Confira a próxima seção para ver as etapas detalhadas de como adicionar um ponto de extremidade privado.

Captura de tela que mostra a página Rede do Assistente de criação do namespace com a opção Acesso privado selecionado.

Configurar o acesso privado para um namespace existente

Se você já tem um namespace do Hubs de Eventos, crie uma conexão de link privado seguindo estas etapas:

  1. Entre no portal do Azure.

  2. Na barra de pesquisa, digite hubs de eventos.

  3. Selecione o namespace na lista à qual você deseja adicionar um ponto de extremidade privado.

  4. Na página Rede, para Acesso à rede pública, selecione Desabilitado se desejar que o namespace seja acessado somente por meio de pontos de extremidade privados.

  5. Para Permitir que serviços confiáveis da Microsoft ignorem esse firewall, selecione Sim se você quiser permitir que os serviços confiáveis da Microsoft ignorem esse firewall.

    Captura de tela da página de rede com o acesso à rede pública desabilitado.

  6. Mude para a guia Conexões de ponto de extremidade privado.

  7. Selecione o botão + Ponto de Extremidade Privado, na parte superior da página.

    Página rede – Guia conexões de ponto de extremidade privado – Adicionar link de ponto de extremidade privado.

  8. Na página Básico, siga estas etapas:

    1. Selecione a Assinatura do Azure na qual você quer criar o ponto de extremidade privado.

    2. Selecione o grupo de recursos para o recurso de ponto de extremidade privado.

    3. Insira um nome para o ponto de extremidade privado.

    4. Digite um nome para o novo adaptador de rede.

    5. Insira uma região para o ponto de extremidade privado. Seu ponto de extremidade privado precisa estar na mesma região da rede virtual, mas pode estar em uma região diferente do recurso de link privado ao qual você está se conectando.

    6. Selecione o botão Avançar: Recurso na parte inferior da página.

      Captura de tela mostrando a página Noções básicas do assistente Criar um ponto de extremidade privado.

  9. Na página Recurso, examine as configurações e selecione Avançar: rede virtual.

    Captura de tela mostrando a página Recursos do assistente Criar um ponto de extremidade privado.

  10. Na página Rede Virtual, selecione a sub-rede em uma rede virtual na qual você deseja implantar o ponto de extremidade privado.

    1. Selecione uma rede virtual. São listadas somente as redes virtuais na assinatura e na localização selecionadas no momento na lista suspensa.

    2. Selecione uma sub-rede na rede virtual selecionada.

    3. Observe que a política de rede para pontos de extremidade privados está desabilitada. Se você quiser habilitá-la, selecione editar, atualize a configuração e selecione Salvar.

    4. Para a Configuração de IP privado, por padrão, a opção Alocar endereço IP dinamicamente está selecionada. Se você quiser atribuir um endereço IP estático, selecione Alocar endereço IP estaticamente*.

    5. Para o Grupo de segurança do aplicativo, selecione um grupo de segurança de aplicativo existente ou crie um que deve ser associado ao ponto de extremidade privado.

    6. Selecione o botão Avançar:DNS> na parte inferior da página.

      Captura de tela mostrando a página Rede Virtual do assistente Criar um ponto de extremidade privado.

  11. Na página DNS, selecione se deseja que o ponto de extremidade privado seja integrado a uma zona DNS privada e selecione Avançar: Marcas.

  12. Na página Marcas, crie quaisquer marcas (nomes e valores) que você deseja associar ao recurso de ponto de extremidade privado. Em seguida, selecione o botão Revisar + criar na parte inferior da página.

  13. Em Revisar + criar, examine todas as configurações e selecione Criar para criar o ponto de extremidade privado.

    Criação de Ponto de Extremidade Privado – Página Revisar e Criar

  14. Verifique se a conexão de ponto de extremidade privado que você criou aparece na lista de pontos de extremidade. Neste exemplo, o ponto de extremidade privado é aprovado automaticamente porque você se conectou a um recurso do Azure em seu diretório e tem permissões suficientes.

    Ponto de extremidade privado criado

Serviços Microsoft confiáveis

Ao habilitar a configuração Permitir que os serviços confiáveis da Microsoft ignorem esse firewall, os serviços a seguir do mesmo locatário terão acesso aos recursos dos Hubs de Eventos.

Serviço confiável Cenários de uso com suporte
Grade de Eventos do Azure Permite que a Grade de Eventos do Azure envie eventos para hubs de eventos no seu namespace de Hubs de Eventos. Também é necessário executar as seguintes etapas:
  • Habilitar a identidade atribuída pelo sistema para um tópico ou domínio
  • Adicionar a identidade à função de remetente de dados dos Hubs de Eventos do Azure no namespace de Hubs de Eventos
  • Em seguida, configure a assinatura do evento que usa um hub de eventos como um ponto de extremidade para usar a identidade atribuída pelo sistema.

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

Stream Analytics do Azure Permite que um trabalho do Azure Stream Analytics leia dados de (entrada) ou grave dados para (saída) em hubs de eventos no seu namespace de Hubs de Eventos.

Importante: o trabalho de Stream Analytics deve ser configurado para usar uma identidade gerenciada para de 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 (versão prévia).

Hub IoT do Azure Permite que o Hub IoT envie mensagens para os hubs de eventos no seu namespace de Hub de Eventos. Também é necessário executar as seguintes etapas:
  • Habilitar identidade atribuída pelo sistema para o seu hub loT
  • Adicionar a identidade à função de remetente de dados dos Hubs de Eventos do Azure no namespace de 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.
Gerenciamento de API do Azure

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

Azure Monitor (grupos de ações e configurações de diagnóstico) Permite que Azure Monitor envie informações de diagnóstico e notificações de alerta aos hubs de eventos no seu namespace de Hubs de Eventos. O Azure Monitor pode ler a partir do hub de eventos, bem como gravar dados no hub de eventos.
Azure Synapse Permite que o Azure Synapse se conecte ao hub de eventos usando a Identidade Gerenciada do Workspace do Synapse. Adicionar a função Remetente, Receptor ou Proprietário de Dados dos Hubs de Eventos do Azure à identidade no namespace dos 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 executar as seguintes etapas:
  • Configurar a Identidade Gerenciada no Azure Data Explorer
  • Conceder a função de Receptor de Dados dos Hubs de Eventos do Azure à identidade, no hub de eventos.
 
Azure IoT Central

Permite que o IoT Central exporte dados para os hubs de eventos no seu namespace do Hub de Eventos. Também é necessário executar as seguintes etapas:

Serviços de Dados de Saúde do Azure Permite que o conector IoT das APIs do Healthcare ingira dados de dispositivos médicos do seu namespace dos Hubs de Eventos e persista dados em seu serviço Fast Healthcare Interoperability Resources (FHIR®) configurado. O conector IoT deve ser configurado para usar uma identidade gerenciada para de acessar o hub de eventos. Para obter mais informações, confira a Introdução às APIs do conector IoT – Azure Healthcare.
Gêmeos Digitais do Azure Permite que os Gêmeos Digitais do Azure enviem dados para os hubs de eventos no seu namespace dos Hubs de Eventos. Também é necessário executar as seguintes etapas:

  • Habilite a identidade atribuída pelo sistema para sua instância dos Gêmeos Digitais do Azure.
  • Adicionar a identidade à função de Remetente de Dados dos Hubs de Eventos do Azure no namespace de Hubs de Eventos.
  • Em seguida, configure um ponto de extremidade dos Gêmeos Digitais do Azure ou uma conexão de histórico de dados dos Gêmeos Digitais do Azure que usa a identidade atribuída pelo sistema para autenticar. Para obter mais informações sobre como configurar pontos de extremidade e rotas de evento para recursos dos Hubs de Eventos dos Gêmeos Digitais do Azure, confira Rotear eventos dos Gêmeos Digitais do Azure e Criar pontos de extremidade nos Gêmeos Digitais do Azure.

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

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

Para permitir que os serviços confiáveis acessem seu namespace, alterne para a guia Acesso Público na página Rede, e selecione Sim para Permitir que os serviços confiáveis da Microsoft ignorem este firewall?.

Inclusão de um ponto de extremidade privado através do PowerShell

O exemplo a seguir mostra como usar o Azure PowerShell para criar uma conexão de ponto de extremidade privado. Ele não cria um cluster dedicado. Siga as etapas neste artigo para criar um cluster dedicado do Hubs de Eventos.

$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VIRTUAL NETWORK LOCATION>"
$vnetName = "<VIRTUAL NETWORK NAME>"
$subnetName = "<SUBNET NAME>"
$namespaceLocation = "<NAMESPACE LOCATION>"
$namespaceName = "<NAMESPACE NAME>"
$peConnectionName = "<PRIVATE ENDPOINT CONNECTION NAME>"

# create resource group
New-AzResourceGroup -Name $rgName -Location $vnetLocation 

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $rgName `
                    -Location $vnetlocation `
                    -Name $vnetName `
                    -AddressPrefix 10.0.0.0/16

# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
                    -Name $subnetName `
                    -AddressPrefix 10.0.0.0/24 `
                    -PrivateEndpointNetworkPoliciesFlag "Disabled" `
                    -VirtualNetwork $virtualNetwork

# update virtual network
$virtualNetwork | Set-AzVirtualNetwork

# create an event hubs namespace in a dedicated cluster
$namespaceResource = New-AzResource -Location $namespaceLocation `
                                    -ResourceName $namespaceName `
                                    -ResourceGroupName $rgName `
                                    -Sku @{name = "Standard"; capacity = 1} `
                                    -Properties @{clusterArmId = "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/clusters/<EVENT HUBS CLUSTER NAME>"} `
                                    -ResourceType "Microsoft.EventHub/namespaces" -ApiVersion "2018-01-01-preview"

# create private endpoint connection
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name $peConnectionName `
                                -PrivateLinkServiceId $namespaceResource.ResourceId `
                                -GroupId "namespace"

# get subnet object that you'll use later
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $rgName -Name $vnetName
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                                | Where-Object  {$_.Name -eq $subnetName}  
   
# create a private endpoint   
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $rgName  `
                                -Name $vnetName   `
                                -Location $vnetlocation `
                                -Subnet  $subnet   `
                                -PrivateLinkServiceConnection $privateEndpointConnection

(Get-AzResource -ResourceId $namespaceResource.ResourceId -ExpandProperties).Properties


Configuração da zona DNS privada

Crie uma zona DNS Privada para o domínio do Hubs de Eventos e crie um link de associação com a rede virtual:

$zone = New-AzPrivateDnsZone -ResourceGroupName $rgName `
                            -Name "privatelink.servicebus.windows.net" 
 
$link  = New-AzPrivateDnsVirtualNetworkLink -ResourceGroupName $rgName `
                                            -ZoneName "privatelink.servicebus.windows.net" `
                                            -Name "mylink" `
                                            -VirtualNetworkId $virtualNetwork.Id  
 
$networkInterface = Get-AzResource -ResourceId $privateEndpoint.NetworkInterfaces[0].Id -ApiVersion "2019-04-01" 
 
foreach ($ipconfig in $networkInterface.properties.ipConfigurations) { 
    foreach ($fqdn in $ipconfig.properties.privateLinkConnectionProperties.fqdns) { 
        Write-Host "$($ipconfig.properties.privateIPAddress) $($fqdn)"  
        $recordName = $fqdn.split('.',2)[0] 
        $dnsZone = $fqdn.split('.',2)[1] 
        New-AzPrivateDnsRecordSet -Name $recordName -RecordType A -ZoneName "privatelink.servicebus.windows.net"  `
                                -ResourceGroupName $rgName -Ttl 600 `
                                -PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address $ipconfig.properties.privateIPAddress)  
    } 
}

Gerenciamento de pontos de extremidade privados usando o portal do Azure

Quando você cria um ponto de extremidade privado, a conexão deve ser aprovada. Se o recurso para o qual você está criando um ponto de extremidade privado estiver em seu diretório, você pode aprovar a solicitação de conexão desde que tenha permissões suficientes. Se estiver se conectando a um recurso do Azure em outro diretório, você deve aguardar o proprietário desse recurso aprovar a sua solicitação de conexão.

Há quatro estados de provisionamento:

Ação de serviço Estado de ponto de extremidade privado do consumidor do serviço Descrição
Nenhum Pendente A conexão é criada manualmente e está pendente de aprovação do proprietário do recurso do Link Privado.
Aprovar Aprovado A conexão foi aprovada automaticamente ou manualmente e está pronta para ser usada.
Rejeitar Rejeitado A conexão foi rejeitada pelo proprietário do recurso do link privado.
Remover Desconectado A conexão foi removida pelo proprietário do recurso do link privado, o ponto de extremidade privado se torna informativo e deve ser excluído para limpeza.

Aprovação, rejeição ou remoção de uma conexão de ponto de extremidade privado

  1. Entre no portal do Azure.
  2. Na barra de pesquisa, digite hubs de eventos.
  3. Selecione o namespace que você deseja gerenciar.
  4. Selecione a guia Rede.
  5. Acesse a seção apropriada a seguir com base na operação que você quer: aprovar, rejeitar ou remover.

Aprovação de uma conexão de ponto de extremidade privado

  1. Se houver conexões pendentes, você verá uma conexão listada com o estado de provisionamento Pendente.

  2. Selecione o ponto de extremidade privado que você deseja aprovar

  3. Selecione o botão Aprovar.

    Aprovar ponto de extremidade privado

  4. Na página Aprovar conexão, adicione um comentário (opcional) e selecione Sim. Se selecionar Não, nada acontecerá.

  5. O status da conexão de ponto de extremidade privado exibido na lista muda para Aprovado.

Rejeição de uma conexão de ponto de extremidade privado

  1. Se houver conexões de ponto de extremidade privado que você deseja rejeitar, seja uma solicitação pendente ou uma conexão existente, selecione a conexão e o botão Rejeitar.

    Rejeitar ponto de extremidade privado

  2. Na página Rejeitar conexão, adicione um comentário (opcional) e selecione Sim. Se selecionar Não, nada acontecerá.

  3. O status da conexão de ponto de extremidade privado exibido na lista muda para Rejeitado.

Remoção de uma conexão de ponto de extremidade privado

  1. Para remover uma conexão de ponto de extremidade privado, selecione-a na lista e selecione Remover na barra de ferramentas.
  2. Na página Excluir conexão, selecione Sim para confirmar a exclusão do ponto de extremidade privado. Se selecionar Não, nada acontecerá.
  3. O status muda para Desconectado. Em seguida, o ponto de extremidade desaparecerá da lista.

Você deve validar se os recursos na rede virtual do ponto de extremidade privado estão se conectando ao namespace dos Hubs de eventos por meio de um endereço IP privado e se eles têm a integração de zona DNS privada correta.

Primeiro, crie uma máquina virtual seguindo as etapas em Criar uma máquina virtual do Windows no portal do Azure

Na guia Rede:

  1. Especifique a Rede virtual e a Sub-rede. Selecione a Rede Virtual na qual você implantou o ponto de extremidade privado.
  2. Especifique um recurso de IP Público.
  3. Para o Grupo de segurança de rede da NIC, selecione Nenhum.
  4. Para o Balanceamento de carga, selecione Não.

Conecte-se à VM, abra a linha de comando e execute o seguinte comando:

nslookup <event-hubs-namespace-name>.servicebus.windows.net

Você verá um resultado parecido com o mostrado a seguir.

Non-authoritative answer:
Name:    <event-hubs-namespace-name>.privatelink.servicebus.windows.net
Address:  10.0.0.4 (private IP address associated with the private endpoint)
Aliases:  <event-hubs-namespace-name>.servicebus.windows.net

Limitações e considerações de design

  • Para obter informações sobre preço, confira Preço do Link Privado do Azure.
  • O recurso está disponível em todas as regiões públicas do Azure.
  • Número máximo de pontos de extremidade privados por namespace do Hubs de Eventos: 120.
  • O tráfego é bloqueado na camada do aplicativo, não na camada TCP. Por isso, você verá conexões TCP ou nslookup operações bem sucedidas no ponto de extremidade público, mesmo que o acesso público esteja desabilitado.

Para saber mais, confira Serviço de Link Privado do Azure: Limitações

Próximas etapas