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.
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.
Para permitir o acesso ao tópico Grade de Eventos por meio de um ponto de extremidade privado, selecione a opção Acesso privado .
Na seção Private endpoint connections, selecione + Private endpoint button.
Na página Criar ponto de extremidade privado, siga estas etapas:
- Em Nome, insira um nome para o ponto de extremidade privado.
- Selecione uma rede virtual. Apenas as redes virtuais na subscrição e localização atualmente selecionadas estão listadas na lista pendente.
- Selecione uma sub-rede na rede virtual selecionada.
- Selecione se deseja que o ponto de extremidade privado seja integrado a uma zona DNS privada.
- Selecione OK.
Agora, na página Criar tópico , selecione Revisão + criar na parte inferior da página.
Na página Rever + criar, selecione Criar.
Para um tópico existente
Entre no portal do Azure e navegue até seu tópico ou domínio.
Mude para o separador Rede da página de tópicos. Na guia Acesso público, selecione Somente pontos de extremidade privados.
Alterne para a guia Conexões de ponto de extremidade privado e selecione + Ponto de extremidade privado na barra de ferramentas.
Na página Noções básicas, siga estas etapas:
Selecione uma assinatura do Azure na qual você deseja criar o ponto de extremidade privado.
Selecione um grupo de recursos do Azure para o ponto de extremidade privado.
Insira um nome para o ponto de extremidade.
Atualize o nome da interface de rede, se necessário.
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).
Em seguida, selecione Next: Resource > button na parte inferior da página.
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.
Na página Rede Virtual, selecione a sub-rede em uma rede virtual para onde deseja implantar o ponto de extremidade privado.
Selecione uma rede virtual. Apenas as redes virtuais na subscrição e localização atualmente selecionadas estão listadas na lista pendente.
Selecione uma sub-rede na rede virtual selecionada.
Especifique se deseja que o endereço IP seja alocado estaticamente ou dinamicamente.
Selecione um grupo de segurança de aplicativo existente ou crie um e associe-o ao ponto de extremidade privado.
Selecione Next: botão DNS > na parte inferior da página.
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.
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.
Em Rever + criar, reveja todas as definições e selecione Criar para criar o ponto de extremidade privado.
Gerenciar conexão de link 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.
- Inicie sessão no portal do Azure.
- Na barra de pesquisa, digite tópicos da Grade de Eventos ou domínios da Grade de Eventos.
- Selecione o tópico ou domínio que deseja gerenciar.
- Selecione o separador Rede.
- 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.
Selecione o ponto de extremidade privado que deseja aprovar e selecione Aprovar na barra de ferramentas.
Na caixa de diálogo Aprovar conexão, insira um comentário (opcional) e selecione Sim.
Confirme que vê o estado do ponto de extremidade como 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.
Selecione o ponto de extremidade privado que deseja rejeitar e selecione Rejeitar na barra de ferramentas.
Na caixa de diálogo Rejeitar conexão, insira um comentário (opcional) e selecione Sim.
Confirme que vê o estado do ponto de extremidade como 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
, especificartopic
oudomain
. 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
, especificartopic
oudomain
. 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.
Conteúdos relacionados
- Para saber mais sobre como definir configurações de firewall IP, consulte Configurar firewall IP para tópicos ou domínios da Grade de Eventos do Azure.
- Para solucionar problemas de conectividade de rede, consulte Solucionar problemas de conectividade de rede