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

O Serviço de Link Privado do Azure permite que você acesse os Serviços do Azure (por exemplo, Hubs de Eventos do Azure, Armazenamento do Azure e Azure Cosmos DB) e os serviços de cliente/parceiro hospedados pelo Azure em um ponto de extremidade privado em sua rede virtual.

Um ponto final privado é uma interface de rede que o liga a um serviço de forma privada e segura com a tecnologia Azure Private Link. O ponto final privado utiliza um endereço IP privado da sua rede virtual, para que possa aceder ao serviço de forma eficaz na sua rede virtual. Todo o tráfego para o serviço é roteado através do ponto de extremidade privado, portanto, não são necessários gateways, dispositivos NAT, conexões ExpressRoute ou VPN ou endereços IP públicos. 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, oferecendo o mais alto nível de granularidade no controle de acesso.

Para obter mais informações, consulte O que é o Azure Private Link?

Pontos importantes

  • Este recurso não é suportado na camada básica .
  • Habilitar pontos de extremidade privados pode impedir que outros serviços do Azure interajam com Hubs de Eventos. As solicitações bloqueadas incluem aquelas 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 os pontos de extremidade privados estão habilitados. 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 rede virtual, o namespace pode ser acessado pela Internet pública (usando a chave de acesso).

Adicionar um ponto de extremidade privado usando o portal do Azure

Pré-requisitos

Para integrar um namespace de Hubs de Eventos com o Azure Private Link, você precisa das seguintes entidades ou permissões:

  • Um namespace de 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.

O ponto final privado e a rede virtual têm de estar na mesma região. Quando você seleciona uma região para o ponto de extremidade privado usando o portal, ele filtra automaticamente as redes virtuais que estão nessa região. Seu 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 ao criar um namespace

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.

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. Consulte a próxima seção para obter as etapas detalhadas para adicionar um ponto de extremidade privado.

Captura de tela mostrando a página Rede do assistente Criar namespace com a opção Acesso privado selecionada.

Configurar acesso privado para um namespace existente

Se você já tiver um namespace de Hubs de Eventos, poderá criar uma conexão de link privado seguindo estas etapas:

  1. Inicie sessão no portal do Azure.

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

  3. Selecione o namespace na lista ao 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. Em Permitir que serviços confiáveis da Microsoft ignorem esse firewall, selecione Sim se quiser permitir que serviços confiáveis da Microsoft ignorem esse firewall.

    Captura de ecrã da página Rede com acesso à rede pública como Desativado.

  6. Alterne para a guia Conexões de ponto de extremidade privadas.

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

    Página de rede - Guia Conexões de ponto de extremidade privado - Adicionar link de ponto de extremidade privado.

  8. Na página Noções básicas, siga estas etapas:

    1. Selecione a assinatura do Azure na qual você deseja 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. Insira um nome para a interface de rede.

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

    6. Selecione Next: Resource > button na parte inferior da página.

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

  9. Na página Recurso, revise as configurações e selecione Avançar: Rede Virtual.

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

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

    1. Selecione uma rede virtual. Apenas as redes virtuais na subscrição e localização atualmente selecionadas estão listadas na lista pendente.

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

    3. Observe que a diretiva de rede para pontos de extremidade privados está desabilitada. Se quiser ativá-lo, selecione editar, atualize a configuração e selecione Salvar.

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

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

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

      Captura de ecrã a mostrar a página Rede Virtual do assistente Criar 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: Tags.

  12. Na página Etiquetas, crie quaisquer etiquetas (nomes e valores) que pretenda associar ao recurso de ponto de extremidade privado. Em seguida, selecione o botão Rever + criar na parte inferior da página.

  13. Em Rever + criar, reveja todas as definições e selecione Criar para criar o ponto de extremidade privado.

    Captura de ecrã que mostra a página Rever + criar.

  14. Confirme que você vê a conexão de ponto de extremidade privada que você criou aparece na lista de pontos de extremidade. Atualize a página e alterne para a guia Private endpoint connections . 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.

    Captura de tela que mostra a página Conexões de ponto de extremidade privado com o ponto de extremidade privado recém-criado.

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

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

Adicionar um ponto de extremidade privado usando o PowerShell

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

$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


Configurar a zona DNS privada

Crie uma zona DNS privada para o domínio dos 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)  
    } 
}

Gerenciar 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ê poderá aprovar a solicitação de conexão desde que tenha permissões suficientes. Se você estiver se conectando a um recurso do Azure em outro diretório, deverá aguardar que o proprietário desse recurso aprove sua solicitação de conexão.

Há quatro estados de provisionamento:

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

Aprovar, rejeitar ou remover uma conexão de ponto de extremidade privada

  1. Inicie sessão no portal do Azure.
  2. Na barra de pesquisa, digite hubs de eventos.
  3. Selecione o namespace que você deseja gerenciar.
  4. Selecione o separador Rede.
  5. Vá para a seção apropriada a seguir com base na operação desejada: aprovar, rejeitar ou remover.

Aprovar uma conexão de ponto de extremidade privada

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

  2. Selecione o ponto de extremidade privado que deseja aprovar

  3. Selecione o botão Aprovar .

    Captura de tela que mostra a guia Conexões de ponto de extremidade privado com o botão Aprovar realçado.

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

  5. Você verá o status da conexão de ponto de extremidade privado na lista alterada para Aprovado.

Rejeitar uma conexão de ponto de extremidade privada

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

    Captura de tela que mostra a guia Conexões de ponto de extremidade privado com o botão Rejeitar realçado.

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

  3. Você deve ver o status da conexão de ponto de extremidade privado na lista alterada para Rejeitado.

Remover uma conexão de ponto de extremidade privada

  1. Para remover uma conexão de ponto de extremidade privada, 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 você selecionar Não, nada acontece.
  3. Você verá o status alterado para Desconectado. Em seguida, o ponto de extremidade desaparece da lista.

Você deve validar se os recursos dentro da 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 Rede virtual e Sub-rede. Você deve selecionar a Rede Virtual na qual implantou o ponto de extremidade privado.
  2. Especifique um recurso IP público.
  3. Para o grupo de segurança de rede NIC, selecione Nenhum.
  4. Para 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 semelhante ao seguinte.

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ços, consulte Preços do Link Privado do Azure.
  • Esse recurso está disponível em todas as regiões públicas do Azure.
  • Número máximo de pontos de extremidade privados por namespace de Hubs de Eventos: 120.
  • O tráfego é bloqueado na camada de aplicativo, não na camada TCP. Portanto, você vê 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, consulte Serviço de Link Privado do Azure: Limitações