Configurar pontos de extremidade privados para domínios ou tópicos personalizados da Grade de Eventos do Azure

É possível usar pontos de extremidade privados para permitir a entrada de eventos diretamente da rede virtual nos domínios e tópicos personalizados, com segurança, por meio de um link privado sem passar pela Internet pública. O ponto de extremidade privado usa um endereço IP do espaço de endereço da VNet para o domínio ou tópico personalizado. Para obter mais informações conceituais, consulte Segurança de rede.

Este artigo descreve como configurar pontos de extremidade privados para domínios ou tópicos personalizados.

Observação

Atualmente, não há suporte para pontos de extremidade privados em tópicos do sistema.

Usar o portal do Azure

Esta seção mostra como usar o portal do Azure para criar um ponto de extremidade privado para um tópico ou domínio.

Observação

As etapas mostradas nesta seção são principalmente para tópicos personalizados. É possível usar etapas semelhantes para criar pontos de extremidade privados para domínios.

Ao criar um novo tópico

Esta seção mostra como habilitar o acesso à rede privada para um tópico da Grade de Eventos ou um domínio. Para obter instruções passo a passo para criar um novo tópico, consulte Criar um tópico personalizado.

  1. Na página Noções básicasdo assistente para Criar tópico, selecione Próximo: Rede na parte inferior da página depois de preencher os campos necessários.

    Imagem mostrando a seleção do link de Rede na parte inferior da página.

  2. Para permitir o acesso ao tópico da Grade de Eventos por meio de um ponto de extremidade privado, selecione a opção Acesso privado.

    Imagem mostrando a seleção da opção Acesso privado na página Rede do assistente Criar tópico.

  3. Consulte a próxima seção para ver as etapas para adicionar um ponto de extremidade privado.

Edite um tópico existente

  1. Entre no portal do Azure e navegue até o tópico ou domínio.

  2. Alterne para a guia Rede da página do tópico. Na guia Acesso público, selecione Somente pontos de extremidade privados.

    Captura de tela que mostra a página de Acesso à rede pública com a opção Somente ponto de extremidade privado selecionada.

  3. Alterne para a guia Conexões de ponto de extremidade privado e, em seguida, selecione + Ponto de extremidade privado na barra de ferramentas.

    Captura de tela mostrando a seleção do link + Ponto de extremidade privado na guia Conexão de ponto de extremidade privado.

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

    1. Selecione a Assinatura do Azure na qual deseja criar o ponto de extremidade privado.

    2. Selecione um grupo de recursos do Azure para ponto de extremidade privado.

    3. Insira um nome para o ponto de extremidade.

    4. Se necessário, atualize o nome do adaptador de rede.

    5. Selecione a Região para o ponto de extremidade. O ponto de extremidade privado deve estar na mesma região que a rede virtual, mas pode estar em uma região diferente do recurso de link privado (no exemplo, um tópico da Grade de Eventos).

    6. Em seguida, 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.

  5. Na página Recurso, siga estas etapas, confirme se o tópico está selecionado no sub-recurso de Destino e selecione botão Avançar: Rede Virtual > na parte inferior da página.

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

  6. 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. Especifique se você deseja que o endereço IP seja alocado de forma estática ou dinâmica.

    4. Selecione um grupo de segurança de aplicativos existente ou crie um e associe-o ao ponto de extremidade privado.

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

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

  7. Na página DNS, selecione se você deseja que o ponto de extremidade privado seja integrado a uma zona DNS privada e, em seguida, selecione Próximo: Marcas na parte inferior da página.

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

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

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

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

Como gerenciar uma conexão de ponto de extremidade privado

As seções a seguir mostram como aprovar ou rejeitar uma conexão de ponto de extremidade privado.

  1. Entre no portal do Azure.
  2. Na barra de pesquisa, digite Tópicos da Grade de Eventos ou Domínios da Grade de Eventos.
  3. Selecione o tópico ou domínio que deseja gerenciar.
  4. Selecione a guia Rede.
  5. Se houver conexões pendentes, será exibida uma lista de conexões com estado de provisionamento Pendente.

Para aprovar um ponto de extremidade privado

É possível aprovar um ponto de extremidade privado no estado pendente. Para aprovar, siga estas etapas:

Observação

As etapas mostradas nesta seção são principalmente para tópicos. É possível usar etapas semelhantes para aprovar pontos de extremidade privados para domínios.

  1. Selecione o ponto de extremidade privado que deseja aprovar e selecione Aprovar na barra de ferramentas.

    Ponto de extremidade privado – estado pendente

  2. Na caixa de diálogo Aprovar conexão, insira um comentário (opcional) e selecione Sim.

    Ponto de extremidade privado – aprovar

  3. Confirme que o status do ponto de extremidade está como Aprovado.

    Ponto de extremidade privado – estado aprovado

Para rejeitar um ponto de extremidade privado

É possível rejeitar um ponto de extremidade privado que esteja nos estados pendente ou aprovado. Para rejeitar, siga estas etapas:

Observação

As etapas mostradas nesta seção são para tópicos. É possível usar etapas semelhantes para rejeitar pontos de extremidade privados para domínios.

  1. Selecione o ponto de extremidade privado que deseja rejeitar e selecione Rejeitar na barra de ferramentas.

    Captura de tela que mostra a

  2. Na caixa de diálogo Rejeitar conexão, insira um comentário (opcional) e selecione Sim.

    Ponto de extremidade privado – rejeitar

  3. Confirme que o status do ponto de extremidade está como Rejeitado.

    Ponto de extremidade privado – estado rejeitado

    Observação

    Não é possível aprovar um ponto de extremidade privado no portal do Azure depois que ele for rejeitado.

Usar a CLI do Azure

Para criar um ponto de extremidade privado, use o método az network private-endpoint create, conforme mostrado no exemplo a seguir:

az network private-endpoint create \
    --resource-group <RESOURECE GROUP NAME> \
    --name <PRIVATE ENDPOINT NAME> \
    --vnet-name <VIRTUAL NETWORK NAME> \
    --subnet <SUBNET NAME> \
    --private-connection-resource-id "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>" \
    --connection-name <PRIVATE LINK SERVICE CONNECTION NAME> \
    --location <LOCATION> \
    --group-ids topic

Para obter descrições dos parâmetros usados no exemplo, consulte a documentação para az network private-endpoint create. Alguns pontos a serem observados neste exemplo são:

  • Para private-connection-resource-id, especifique a ID de recurso do tópico ou domínio. O exemplo anterior usa o tipo: tópico.
  • para group-ids, especifique topic ou domain. No exemplo anterior, topic é usado.

Para excluir um ponto de extremidade privado, use o método az network private-endpoint delete, conforme mostrado no exemplo a seguir:

az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Observação

As etapas mostradas nesta seção são para tópicos. É possível usar etapas semelhantes para criar pontos de extremidade privados para domínios.

Pré-requisitos

Atualizar a extensão da Grade de Eventos do Azure para a CLI, executando o seguinte comando:

az extension update -n eventgrid

Se a extensão não estiver instalada, execute o comando a seguir para instalá-la:

az extension add -n eventgrid

Criar um ponto de extremidade privado

Para criar um ponto de extremidade privado, use o método az network private-endpoint create, conforme mostrado no exemplo a seguir:

az network private-endpoint create \
    --resource-group <RESOURECE GROUP NAME> \
    --name <PRIVATE ENDPOINT NAME> \
    --vnet-name <VIRTUAL NETWORK NAME> \
    --subnet <SUBNET NAME> \
    --private-connection-resource-id "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>" \
    --connection-name <PRIVATE LINK SERVICE CONNECTION NAME> \
    --location <LOCATION> \
    --group-ids topic

Para obter descrições dos parâmetros usados no exemplo, consulte a documentação para az network private-endpoint create. Alguns pontos a serem observados neste exemplo são:

  • Para private-connection-resource-id, especifique a ID de recurso do tópico ou domínio. O exemplo anterior usa o tipo: tópico.
  • para group-ids, especifique topic ou domain. No exemplo anterior, topic é usado.

Para excluir um ponto de extremidade privado, use o método az network private-endpoint delete, conforme mostrado no exemplo a seguir:

az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Observação

As etapas mostradas nesta seção são para tópicos. É possível usar etapas semelhantes para criar pontos de extremidade privados para domínios.

Exemplo de script

Aqui está um script de exemplo que cria os seguintes recursos do Azure:

  • Grupo de recursos
  • Rede virtual
  • Sub-rede na rede virtual
  • Tópico da Grade de Eventos do Azure
  • Ponto de extremidade privado para o tópico

Observação

As etapas mostradas nesta seção são para tópicos. É possível usar etapas semelhantes para criar pontos de extremidade privados para domínios.

subscriptionID="<AZURE SUBSCRIPTION ID>"
resourceGroupName="<RESOURCE GROUP NAME>"
location="<LOCATION>"
vNetName="<VIRTUAL NETWORK NAME>"
subNetName="<SUBNET NAME>"
topicName = "<TOPIC NAME>"
connectionName="<ENDPOINT CONNECTION NAME>"
endpointName=<ENDPOINT NAME>

# resource ID of the topic. replace <SUBSCRIPTION ID>, <RESOURCE GROUP NAME>, and <TOPIC NAME> 
# topicResourceID="/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventGrid/topics/<TOPIC NAME>"

# select subscription
az account set --subscription $subscriptionID

# create resource group
az group create --name $resourceGroupName --location $location

# create vnet 
az network vnet create \
    --resource-group $resourceGroupName \
    --name $vNetName \
    --address-prefix 10.0.0.0/16

# create subnet
az network vnet subnet create \
    --resource-group $resourceGroupName \
    --vnet-name $vNetName \
    --name $subNetName \
    --address-prefixes 10.0.0.0/24

# disable private endpoint network policies for the subnet
az network vnet subnet update \
    --resource-group $resourceGroupName \
    --vnet-name $vNetName \
    --name $subNetName \
    --disable-private-endpoint-network-policies true

# create event grid topic. update <LOCATION>
az eventgrid topic create \
    --resource-group $resourceGroupName \
    --name $topicName \
    --location $location

# verify that the topic was created.
az eventgrid topic show \
    --resource-group $resourceGroupName \
    --name $topicName

# create private endpoint for the topic you created
az network private-endpoint create \
    --resource-group $resourceGroupName \
    --name $endpointName \
    --vnet-name $vNetName \
    --subnet $subNetName \
    --private-connection-resource-id $topicResourceID \
    --connection-name $connectionName \
    --location $location \
    --group-ids topic

# get topic 
az eventgrid topic show \
    --resource-group $resourceGroupName \
    --name $topicName

Aprovar um ponto de extremidade privado

O snippet de código da CLI de exemplo a seguir mostra como aprovar uma conexão de ponto de extremidade privado.

az eventgrid topic private-endpoint-connection approve \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name  $endpointName \
    --description "connection approved"

Rejeitar um ponto de extremidade privado

O snippet de código da CLI de exemplo a seguir mostra como rejeitar uma conexão de ponto de extremidade privado.

az eventgrid topic private-endpoint-connection reject \
    --resource-group $resourceGroupName \
    --topic-name $topicName \
    --name $endpointName \
    --description "Connection rejected"

Desabilitar o acesso de redes públicas

Por padrão, o acesso à rede pública é habilitado para um tópico ou domínio da Grade de Eventos. Para permitir o acesso somente por meio de pontos de extremidade privados, desabilite o acesso à rede pública executando o seguinte comando:

az eventgrid topic update \
    --resource-group $resourceGroupName \
    --name $topicName \
    --public-network-access disabled

Usar o PowerShell

Esta seção mostra como criar um ponto de extremidade privado para um tópico ou domínio usando o PowerShell. Veja aqui um script de exemplo com comentários.


# name of an Azure resource group to be created
$resourceGroupName = "contosorg"

# location where you want the resources to be created
$location ="eastus"

# name of the VNet to be created
$vnetName = "contosovnet"

# name of the subnet to be created in the VNet
$subnetName = "example-privatelinksubnet"

# name of the Event Grid topic to be created
$egridTopicName = "contosotopic"

# name of the private link service connection to be created
$privateLinkServiceConnectionName = "spegridplsconn"

# name of the private endpoint connection to be created
$privateEndpointConnectionName = "spegridpe11"

#

# create resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $resourceGroupName `
                    -Location $location `
                    -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

# get virtual network (optional)
$virtualNetwork = Get-AzVirtualNetwork `
                    -ResourceGroupName $resourceGroupName `
                    -Name $vnetName 

# create an Event Grid topic with public network access disabled. 
$topic = New-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $egridTopicName -Location $location -PublicNetworkAccess disabled

# create a private link service connection to the Event Grid topic. 
# For topics, set GroupId to 'topic'. For domains, it's 'domain'
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name "privateLinkServiceConnectionName" `
                                -PrivateLinkServiceId $topic.id `
                                -GroupId "topic"

# get subnet info
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                             | Where-Object  {$_.Name -eq $subnetName }  

# now, you are ready to create a private endpoint 
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $resourceGroupName  `
                                        -Name privateEndpointConnectionName   `
                                        -Location $location `
                                        -Subnet  $subnet   `
                                        -PrivateLinkServiceConnection $privateEndpointConnection

# verify that the endpoint is created
Get-AzPrivateEndpoint -ResourceGroupName $resourceGroupName  -Name privateEndpointConnectionName  

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

O snippet de código de exemplo do PowerShell a seguir mostra como aprovar uma conexão de ponto de extremidade privado.

Observação

As etapas mostradas nesta seção são para tópicos. É possível usar etapas semelhantes para aprovar pontos de extremidade privados para domínios.


# list all private endpoints for the topic
$topic = Get-AzEventGridTopic -ResourceGroup <RESOURCE GROUP NAME> - Name <TOPIC NAME>
$endpointList = Get-AzPrivateEndpointConnection -PrivateLinkResourceId $topic.Id

# filter the private endpoints using a name
 $pseEndpoint = $endpointList | Where-Object {     $_.Name.StartsWith('<MYENDPOINTNAME>') }

# approve the endpoint connection
Approve-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

# get the endpoint connection to verify that it's approved
Get-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

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

O exemplo a seguir mostra como rejeitar um ponto de extremidade privado usando o PowerShell. É possível obter o GUID para o ponto de extremidade privado do resultado do comando GET anterior.

Observação

As etapas mostradas nesta seção são para tópicos. É possível usar etapas semelhantes para rejeitar pontos de extremidade privados para domínios.

# list all private endpoints for the topic
$topic = Get-AzEventGridTopic -ResourceGroup <RESOURCE GROUP NAME> - Name <TOPIC NAME>
$endpointList = Get-AzPrivateEndpointConnection -PrivateLinkResourceId $topic.Id


# filter the private endpoints using a name
 $pseEndpoint = $endpointList | Where-Object {     $_.Name.StartsWith('<MYENDPOINT>') }

# deny or reject the private endpoint connection
Deny-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

# get the endpoint connection to verify that it's rejected
Get-AzPrivateEndpointConnection -ResourceId $pseEndpoint.Id

É possível aprovar a conexão mesmo depois que ela for rejeitada via API. Se usar portal do Azure, não poderá aprovar um ponto de extremidade que foi rejeitado.

Próximas etapas