Partilhar via


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

Você pode usar pontos de extremidade privados para permitir a entrada de eventos diretamente de sua rede virtual para seus tópicos e domínios personalizados com segurança em 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 de rede virtual para seu tópico ou domínio personalizado. Para obter mais informações conceituais, consulte Segurança de rede.

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

Nota

Atualmente, os pontos de extremidade privados não são suportados para tópicos do sistema.

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

Nota

As etapas mostradas nesta seção são principalmente para tópicos personalizados. Você pode 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 de 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ásicas do assistente Criar tópico, selecione Avançar: Rede na parte inferior da página depois de preencher os campos obrigatórios.

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

  2. Para permitir o acesso ao tópico 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. Na seção Private endpoint connections, selecione + Private endpoint button.

    Captura de tela mostrando o botão Ponto de extremidade privado na página Criar tópico.

  4. Na página Criar ponto de extremidade privado, siga estas etapas:

    1. Em Nome, insira um nome para o ponto de extremidade privado.
    2. Selecione uma rede virtual. Apenas as redes virtuais na subscrição e localização atualmente selecionadas estão listadas na lista pendente.
    3. Selecione uma sub-rede na rede virtual selecionada.
    4. Selecione se deseja que o ponto de extremidade privado seja integrado a uma zona DNS privada.
    5. Selecione OK.

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

  5. Agora, na página Criar tópico , selecione Revisão + criar na parte inferior da página.

  6. Na página Rever + criar, selecione Criar.

Para um tópico existente

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

  2. Mude para o separador Rede da página de tópicos. Na guia Acesso público, selecione Somente pontos de extremidade privados.

    Captura de ecrã que mostra a página Acesso à rede pública com a opção Apenas pontos finais privados selecionada.

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

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

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

    1. Selecione uma assinatura do Azure na qual você deseja criar o ponto de extremidade privado.

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

    3. Insira um nome para o ponto de extremidade.

    4. Atualize o nome da interface de rede, se necessário.

    5. Selecione a região para o ponto de extremidade. 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 (neste exemplo, um tópico Grade de Eventos).

    6. Em seguida, selecione Next: Resource > button na parte inferior da página.

      Captura de ecrã a mostrar 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 para Subrecurso de destino e selecione Avançar: botão Rede > Virtual na parte inferior da página.

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

  6. 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. Especifique se deseja que o endereço IP seja alocado estaticamente ou dinamicamente.

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

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

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

  7. 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 na parte inferior da página.

    Captura de ecrã a mostrar a página DNS do assistente Criar um ponto de extremidade privado.

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

  9. Em Rever + criar, reveja todas as definiçõ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ê 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.

Como gerenciar uma conexão de ponto de extremidade privada

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

  1. Inicie sessão 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 o separador Rede.
  5. Se houver conexões pendentes, você verá uma conexão listada com Pendente no estado de provisionamento.

Para aprovar um ponto de extremidade privado

Você pode aprovar um ponto de extremidade privado que esteja no estado pendente. Para aprovar, siga estes passos:

Nota

As etapas mostradas nesta seção são principalmente para tópicos. Você pode 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 final privado - estado pendente

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

    Ponto final privado - aprovar

  3. Confirme que vê o estado do ponto de extremidade como Aprovado.

    Ponto final privado - estado aprovado

Para rejeitar um ponto de extremidade privado

Você pode rejeitar um ponto de extremidade privado que esteja no estado pendente ou no estado aprovado. Para rejeitar, siga estes passos:

Nota

As etapas mostradas nesta seção são para tópicos. Você pode 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 opção

  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 vê o estado do ponto de extremidade como Rejeitado.

    Ponto de extremidade privado - estado rejeitado

    Nota

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

Utilizar 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 <RESOURCE 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 do recurso do tópico ou domínio. O exemplo anterior usa o type: topic.
  • para group-ids, especificar 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 <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Nota

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

Pré-requisitos

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

az extension update -n eventgrid

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

az extension add -n eventgrid

Criar um ponto final 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 <RESOURCE 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 do recurso do tópico ou domínio. O exemplo anterior usa o type: topic.
  • para group-ids, especificar 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 <RESOURCE GROUP NAME> --name <PRIVATE ENDPOINT NAME>

Nota

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

Script de exemplo

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

Nota

As etapas mostradas nesta seção são para tópicos. Você pode 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 trecho de exemplo de CLI a seguir mostra como aprovar uma conexão de ponto de extremidade privada.

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 trecho de exemplo de CLI a seguir mostra como rejeitar uma conexão de ponto de extremidade privada.

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

Desativar o acesso à rede pública

Por padrão, o acesso à rede pública está habilitado para um tópico ou domínio da Grade de Eventos. Para permitir o acesso apenas através de pontos de extremidade privados, desative o acesso à rede pública executando o seguinte comando:

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

Utilizar o PowerShell

Esta seção mostra como criar um ponto de extremidade privado para um tópico ou domínio usando o PowerShell. Aqui está um exemplo de script 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  

Aprovar uma conexão de ponto de extremidade privada

O trecho de exemplo do PowerShell a seguir mostra como aprovar um ponto de extremidade privado.

Nota

As etapas mostradas nesta seção são para tópicos. Você pode 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

Rejeitar uma conexão de ponto de extremidade privada

O exemplo a seguir mostra como rejeitar um ponto de extremidade privado usando o PowerShell. Você pode obter o GUID para o ponto de extremidade privado a partir do resultado do comando GET anterior.

Nota

As etapas mostradas nesta seção são para tópicos. Você pode 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

Você pode aprovar a conexão mesmo depois que ela for rejeitada via API. Se você usar o portal do Azure, não poderá aprovar um ponto de extremidade que tenha sido rejeitado.