Permitir o acesso a espaços de nomes Hubs de Eventos do Azure através de pontos finais privados

Azure Private Link Service permite-lhe aceder aos Serviços do Azure (por exemplo, Hubs de Eventos do Azure, Armazenamento do Azure e Azure Cosmos DB) e serviços de cliente/parceiro alojados no Azure através de um ponto final privado na 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, colocando efetivamente o serviço na sua rede virtual. Todo o tráfego para o serviço pode ser encaminhado através do ponto final privado, pelo que não são necessários gateways, dispositivos NAT, ligações ExpressRoute ou VPN nem 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. Pode ligar-se a uma instância de um recurso do Azure, o que lhe dá o nível mais elevado de granularidade no controlo de acesso.

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

Pontos importantes

  • Esta funcionalidade não é suportada no escalão básico .
  • Ativar pontos finais privados pode impedir que outros serviços do Azure interajam com os Hubs de Eventos. Os pedidos bloqueados incluem os de outros serviços do Azure, do portal do Azure, dos serviços de registo e métricas, etc. Como exceção, pode permitir o acesso aos recursos dos Hubs de Eventos a partir de determinados serviços fidedignos , mesmo quando os pontos finais privados estão ativados. Para obter uma lista de serviços fidedignos, veja Serviços fidedignos.
  • Especifique , pelo menos, uma regra de IP ou uma regra de rede virtual para o espaço de nomes permitir tráfego apenas a partir dos endereços IP especificados ou da sub-rede de uma rede virtual. Se não existirem regras de IP e de rede virtual, o espaço de nomes pode ser acedido através da Internet pública (utilizando a chave de acesso).

Adicionar um ponto final privado com portal do Azure

Pré-requisitos

Para integrar um espaço de nomes dos Hubs de Eventos com Azure Private Link, precisa das seguintes entidades ou permissões:

  • Um espaço de nomes dos Hubs de Eventos.
  • Uma rede virtual do Azure.
  • Uma sub-rede na rede virtual. Pode utilizar a sub-rede predefinida .
  • Permissões de proprietário ou contribuidor para o espaço de nomes e a rede virtual.

O ponto final privado e a rede virtual têm de estar na mesma região. Quando seleciona uma região para o ponto final privado com o portal, esta filtrará automaticamente apenas as redes virtuais nessa região. O seu espaço de nomes pode estar numa região diferente.

O ponto final privado utiliza um endereço IP privado na sua rede virtual.

Configurar o acesso privado ao criar um espaço de nomes

Ao criar um espaço de nomes, pode permitir apenas acesso público (a partir de todas as redes) ou apenas privado (apenas através de pontos finais privados) ao espaço de nomes.

Se selecionar a opção Acesso privado na página Rede do assistente de criação do espaço de nomes, pode adicionar um ponto final privado na página ao selecionar o botão + Ponto final privado . Veja a secção seguinte para obter os passos detalhados para adicionar um ponto final privado.

Captura de ecrã a mostrar a página Rede do assistente Criar espaço de nomes com a opção Acesso privado selecionada.

Configurar o acesso privado para um espaço de nomes existente

Se já tiver um espaço de nomes dos Hubs de Eventos, pode criar uma ligação de ligação privada ao seguir estes passos:

  1. Inicie sessão no portal do Azure.

  2. Na barra de pesquisa, escreva nos hubs de eventos.

  3. Selecione o espaço de nomes na lista à qual pretende adicionar um ponto final privado.

  4. Na página Rede , para acesso à rede pública, selecione Desativado se pretender que o espaço de nomes seja acedido apenas através de pontos finais privados.

  5. Para Permitir que os serviços Microsoft fidedignos ignorem esta firewall, selecione Sim se quiser permitir que os serviços Microsoft fidedignos ignorem esta firewall.

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

  6. Mude para o separador Ligações de ponto final privado .

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

    Página de rede – separador Ligações de ponto final privado – adicionar ligação de ponto final privado.

  8. Na página Noções básicas , siga estes passos:

    1. Selecione a subscrição do Azure na qual pretende criar o ponto final privado.

    2. Selecione o grupo de recursos do recurso de ponto final privado.

    3. Introduza um nome para o ponto final privado.

    4. Introduza um nome para a interface de rede.

    5. Selecione uma região para o ponto final privado. O ponto final privado tem de estar na mesma região que a sua rede virtual, mas pode estar numa região diferente do recurso de ligação privada ao qual se está a ligar.

    6. Selecione Seguinte: botão Recurso > na parte inferior da página.

      Captura de ecrã a mostrar a página Noções básicas do assistente Criar ponto final privado.

  9. Na página Recurso, reveja as definições e selecione Seguinte: Rede Virtual.

    Captura de ecrã a mostrar a página Recurso do assistente Criar ponto final privado.

  10. Na página Rede Virtual, selecione a sub-rede numa rede virtual para onde pretende implementar o ponto final 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 que selecionou.

    3. Repare que a política de rede para pontos finais privados está desativada . Se quiser ativá-la, selecione editar, atualize a definição e selecione Guardar.

    4. Para a configuração de IP Privado, por predefiniçã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 aplicações, selecione um grupo de segurança de aplicações existente ou crie um que esteja associado ao ponto final privado.

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

      Captura de ecrã a mostrar a página Rede Virtual do assistente Criar ponto final privado.

  11. Na página DNS , selecione se pretende que o ponto final privado seja integrado numa zona DNS privada e, em seguida, selecione Seguinte: Etiquetas.

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

  13. Na opção Rever + criar, reveja todas as definições e selecione Criar para criar o ponto final privado.

    Criar Ponto Final Privado - Rever e Criar página

  14. Confirme que vê a ligação de ponto final privado que criou aparece na lista de pontos finais. Neste exemplo, o ponto final privado é aprovado automaticamente porque se ligou a um recurso do Azure no diretório e tem permissões suficientes.

    Ponto final privado criado

Serviços Microsoft fidedignos

Quando ativar a definição Permitir serviços Microsoft fidedignos para ignorar esta definição de firewall, é concedido acesso aos seus recursos dos Hubs de Eventos aos seguintes serviços no mesmo inquilino.

Serviço fidedigno Cenários de utilização suportados
Azure Event Grid Permite Azure Event Grid enviar eventos para os hubs de eventos no espaço de nomes dos Hubs de Eventos. Também tem de efetuar os seguintes passos:
  • Ativar a identidade atribuída pelo sistema para um tópico ou domínio
  • Adicionar a identidade à função Hubs de Eventos do Azure Remetente de Dados no espaço de nomes dos Hubs de Eventos
  • Em seguida, configure a subscrição de eventos que utiliza um hub de eventos como um ponto final para utilizar a identidade atribuída pelo sistema.

Para obter mais informações, veja Entrega de eventos com uma identidade gerida

Azure Stream Analytics Permite que uma tarefa do Azure Stream Analytics leia dados de (entrada) ou escreva dados em hubs de eventos (saída) no espaço de nomes dos Hubs de Eventos.

Importante: a tarefa do Stream Analytics deve ser configurada para utilizar uma identidade gerida para aceder ao hub de eventos. Para obter mais informações, veja Utilizar identidades geridas para aceder ao hub de eventos a partir de uma tarefa do Azure Stream Analytics (Pré-visualização).

Hub IoT do Azure Permite Hub IoT enviar mensagens para os hubs de eventos no espaço de nomes dos Hubs de Eventos. Também tem de efetuar os seguintes passos:
  • Ativar a identidade atribuída pelo sistema para o hub IoT
  • Adicione a identidade à função Hubs de Eventos do Azure Remetente de Dados no espaço de nomes dos Hubs de Eventos.
  • Em seguida, configure o Hub IoT que utiliza um hub de eventos como um ponto final personalizado para utilizar a autenticação baseada na identidade.
Gestão de API do Azure

O serviço Gestão de API permite-lhe enviar eventos para um hub de eventos no seu espaço de nomes dos Hubs de Eventos.

Azure Monitor (Definições de Diagnóstico e Grupos de Ações) Permite que o Azure Monitor envie informações de diagnóstico e notificações de alerta para os hubs de eventos no espaço de nomes dos Hubs de Eventos. O Azure Monitor pode ler a partir do hub de eventos e também escrever dados no hub de eventos.
Azure Synapse Permite Azure Synapse ligar ao hub de eventos com a Identidade Gerida da Área de Trabalho do Synapse. Adicione a função de Remetente, Recetor ou Proprietário de Dados Hubs de Eventos do Azure à identidade no espaço de nomes dos Hubs de Eventos.
Azure Data Explorer Permite que o Azure Data Explorer receba eventos do hub de eventos com a Identidade Gerida do cluster. Tem de efetuar os seguintes passos:
  • Configurar a Identidade Gerida no Azure Data Explorer
  • Conceda a função de Recetor de Dados Hubs de Eventos do Azure à identidade, no hub de eventos.
 
Azure IoT Central

Permite ao IoT Central exportar dados para hubs de eventos no espaço de nomes dos Hubs de Eventos. Também tem de efetuar os seguintes passos:

  • Ative a identidade atribuída pelo sistema para a sua aplicação do IoT Central.
  • Adicione a identidade à função Hubs de Eventos do Azure Remetente de Dados no espaço de nomes dos Hubs de Eventos.
  • Em seguida, configure o destino de exportação dos Hubs de Eventos na sua aplicação do IoT Central para utilizar a autenticação baseada em identidades.
Serviços de Dados de Saúde do Azure Permite que o conector IoT das APIs de Cuidados de Saúde ingera dados de dispositivos médicos a partir do espaço de nomes dos Hubs de Eventos e persista os dados no seu serviço configurado fast healthcare Interoperability Resources (FHIR®). O conector IoT deve ser configurado para utilizar uma identidade gerida para aceder ao hub de eventos. Para obter mais informações, veja Introdução ao conector IoT – APIs de Cuidados de Saúde do Azure.
Azure Digital Twins Permite ao Azure Digital Twins enviar dados para hubs de eventos no espaço de nomes dos Hubs de Eventos. Também tem de efetuar os seguintes passos:

  • Ative a identidade atribuída pelo sistema para a sua instância do Azure Digital Twins.
  • Adicione a identidade à função Hubs de Eventos do Azure Remetente de Dados no espaço de nomes dos Hubs de Eventos.
  • Em seguida, configure um ponto final do Azure Digital Twins ou uma ligação do histórico de dados do Azure Digital Twins que utilize a identidade atribuída pelo sistema para autenticar. Para obter mais informações sobre como configurar pontos finais e rotas de eventos para recursos dos Hubs de Eventos do Azure Digital Twins, veja Encaminhar eventos do Azure Digital Twins e Criar pontos finais no Azure Digital Twins.

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

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

Para permitir que os serviços fidedignos acedam ao seu espaço de nomes, mude para o separador Acesso Público na página Rede e selecione Sim para Permitir que os serviços Microsoft fidedignos ignorem esta firewall?.

Adicionar um ponto final privado com o PowerShell

O exemplo seguinte mostra como utilizar Azure PowerShell para criar uma ligação de ponto final privado. Não cria um cluster dedicado para si. Siga os passos neste artigo para criar um cluster dedicado dos 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


Configurar a Zona DNS privada

Crie uma zona DNS privada para o domínio dos Hubs de Eventos e crie uma ligação 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)  
    } 
}

Gerir pontos finais privados com portal do Azure

Quando cria um ponto final privado, a ligação tem de ser aprovada. Se o recurso para o qual está a criar um ponto final privado estiver no seu diretório, pode aprovar o pedido de ligação desde que tenha permissões suficientes. Se estiver a ligar a um recurso do Azure noutro diretório, tem de aguardar que o proprietário desse recurso aprove o seu pedido de ligação.

Existem quatro estados de aprovisionamento:

Ação do serviço Estado do ponto final privado do consumidor do serviço Descrição
Nenhum Pendente A ligação é criada manualmente e está pendente da aprovação do proprietário do recurso Private Link.
Aprovar Aprovado A ligação foi aprovada automaticamente ou manualmente e está pronta para ser utilizada.
Rejeitar Rejeitado A ligação foi rejeitada pelo proprietário do recurso de ligação privada.
Remover Desligado A ligação foi removida pelo proprietário do recurso de ligação privada, o ponto final privado torna-se informativo e deve ser eliminado para limpeza.

Aprovar, rejeitar ou remover uma ligação de ponto final privado

  1. Inicie sessão no portal do Azure.
  2. Na barra de pesquisa, escreva nos hubs de eventos.
  3. Selecione o espaço de nomes que pretende gerir.
  4. Selecione o separador Rede.
  5. Aceda à secção seguinte adequada com base na operação que pretende: aprovar, rejeitar ou remover.

Aprovar uma ligação de ponto final privado

  1. Se existirem ligações pendentes, verá uma ligação listada com Pendente no estado de aprovisionamento.

  2. Selecione o ponto final privado que pretende aprovar

  3. Selecione o botão Aprovar .

    Aprovar ponto final privado

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

  5. Deverá ver o estado da ligação de ponto final privado na lista alterado para Aprovado.

Rejeitar uma ligação de ponto final privado

  1. Se houver alguma ligação de ponto final privado que pretenda rejeitar, seja um pedido pendente ou uma ligação existente, selecione a ligação e selecione o botão Rejeitar .

    Rejeitar ponto final privado

  2. Na página Rejeitar ligação , introduza um comentário (opcional) e selecione Sim. Se selecionar Não, nada acontece.

  3. Deverá ver o estado da ligação de ponto final privado na lista alterado para Rejeitado.

Remover uma ligação de ponto final privado

  1. Para remover uma ligação de ponto final privado, selecione-a na lista e selecione Remover na barra de ferramentas.
  2. Na página Eliminar ligação , selecione Sim para confirmar a eliminação do ponto final privado. Se selecionar Não, nada acontece.
  3. Deverá ver o estado alterado para Desligado. Em seguida, o ponto final desaparece da lista.

Deve validar que os recursos na rede virtual do ponto final privado estão a ligar-se ao espaço de nomes dos Hubs de Eventos através de um endereço IP privado e que têm a integração de zona DNS privada correta.

Primeiro, crie uma máquina virtual ao seguir os passos em Criar uma máquina virtual do Windows no portal do Azure

No separador Rede :

  1. Especifique Rede virtual e Sub-rede. Tem de selecionar o Rede Virtual no qual implementou o ponto final 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.

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

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

Deverá 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, veja preços de Azure Private Link.
  • Esta funcionalidade está disponível em todas as regiões públicas do Azure.
  • Número máximo de pontos finais privados por espaço de nomes dos Hubs de Eventos: 120.
  • O tráfego é bloqueado na camada da aplicação, não na camada TCP. Por conseguinte, verá ligações TCP ou nslookup operações com êxito no ponto final público, mesmo que o acesso público esteja desativado.

Para obter mais informações, veja Azure Private Link service: Limitations (Serviço Azure Private Link: Limitações)

Passos seguintes