Configuración de puntos de conexión privados para temas o dominios personalizados de Azure Event Grid
Puede usar puntos de conexión privados para permitir la entrada de eventos directamente desde su red virtual a sus temas y dominios personalizados de forma segura a través de un vínculo privado sin tener que ir a la red pública de Internet. El punto de conexión privado usa una dirección IP del espacio de direcciones de la red virtual para el tema o dominio personalizado. Para más información conceptual, consulte Seguridad de las redes.
En este artículo se describe cómo configurar los puntos de conexión privados para los temas o dominios personalizados.
Nota
Actualmente, los puntos de conexión privados no se admiten en los temas del sistema.
Usar Azure Portal
En esta sección se muestra cómo usar Azure Portal para crear un punto de conexión privado para un tema o dominio.
Nota
Los pasos que se muestran en esta sección son principalmente para los temas personalizados. Puede usar pasos similares para crear puntos de conexión privados para dominios.
Al crear un nuevo tema
En esta sección se muestra cómo habilitar el acceso a la red privada para un tema Event Grid o un dominio. Para obtener instrucciones paso a paso para crear un nuevo tema, consulte Creación de un tema personalizado.
En la página Aspectos básicos del asistente para Crear tema, seleccione Siguiente: Redes en la parte inferior de la página después de rellenar los campos necesarios.
Para permitir el acceso al tema de Event Grid a través de un punto de conexión privado, seleccione la opción Acceso privado.
Consulte la sección siguiente para ver los pasos para agregar un punto de conexión privado.
Para un tema existente
Inicie sesión en Azure Portal y vaya al tema o dominio.
Cambie a la pestaña redes de la página del tema. En la pestaña Acceso público, seleccione Solo puntos de conexión privados.
Cambie a la pestaña Conexiones de punto de conexión privado y seleccione + Punto de conexión privado en la barra de herramientas.
En la página Conceptos básicos, siga estos pasos:
Seleccione la suscripción de Azure donde desea crear el punto de conexión privado.
Seleccione un grupo de recursos de Azure para el punto de conexión privado.
Escriba un nombre para el punto de conexión.
Actualice el nombre de la interfaz de red si fuera necesario.
Seleccione la región del punto de conexión. El punto de conexión privado debe estar en la misma región que la red virtual, pero puede estar en otra región distinta de la del recurso de Private Link (en este ejemplo, un tema de Event Grid).
A continuación, seleccione el botón Siguiente: Recurso > en la parte inferior de la página.
En la página Recurso, siga estos pasos, confirme que el tema esté seleccionado para el Subrecurso de destino y, a continuación, seleccione el botón Siguiente: Virtual Network > de la parte inferior de la página.
En la página Virtual Network, seleccione la subred de una red virtual en la que desee implementar el punto de conexión privado.
Seleccione una red virtual. En la lista desplegable, solo se muestran las redes virtuales de la suscripción y la ubicación seleccionadas actualmente.
Seleccione una subred de la red virtual que seleccionó.
Especifique si desea que la dirección IP se asigne estática o dinámicamente.
Seleccione un grupo de seguridad de aplicaciones existente o cree uno y, a continuación, asócielo al punto de conexión privado.
Seleccione el botón Siguiente: DNS> situado en la parte inferior de la página.
En la página DNS, seleccione si desea que el punto de conexión privado se integre con una zona DNS privada y, a continuación, seleccione Siguiente: etiquetas al final de la página.
En la página Etiquetas, cree cualquier etiqueta (nombres y valores) que desee asociar al recurso de punto de conexión privado. Después, en la parte inferior de la página, seleccione el botón Revisar y crear.
En Revisar y crear, revise toda la configuración y seleccione Crear para crear el punto de conexión privado.
Administración de una conexión de vínculo privado
Cuando se crea un punto de conexión privado, se debe aprobar la conexión. Si el recurso para el que va a crear un punto de conexión privado está en el directorio, puede aprobar la solicitud de conexión siempre que tenga permisos suficientes. Si se va a conectar a un recurso de Azure en otro directorio, debe esperar a que el propietario de ese recurso apruebe la solicitud de conexión.
Hay cuatro estados de aprovisionamiento:
Acción del servicio | Estado de punto de conexión privado del consumidor del servicio | Descripción |
---|---|---|
None | Pending | La conexión se crea manualmente y está pendiente de aprobación por parte del propietario del recurso de Private Link. |
Aprobación | Aprobado | La conexión se aprobó de forma automática o manual y está lista para usarse. |
Reject | Rechazada | El propietario del recurso de vínculo privado rechazó la conexión. |
Remove | Escenario desconectado | El propietario del recurso del vínculo privado quitó la conexión, el punto de conexión privado se vuelve informativo y debe eliminarse para la limpieza. |
Administración de una conexión de punto de conexión privado
En las secciones siguientes se muestra cómo aprobar o rechazar una conexión de punto de conexión privado.
- Inicie sesión en Azure Portal.
- En la barra de búsqueda, escriba Temas de Event Grid o Dominios de Event Grid.
- Seleccione el tema o dominio que desea administrar.
- Seleccione la pestaña Redes.
- Si hay alguna conexión pendiente, verá una conexión que aparece con el estado Pendiente como estado de aprovisionamiento.
Aprobación de un punto de conexión privado
Puede aprobar un punto de conexión privado que esté pendiente. Para aprobarlo, siga estos pasos:
Nota
Los pasos que se muestran en esta sección son principalmente para los temas. Puede usar pasos similares para aprobar puntos de conexión privados para dominios.
Seleccione el punto de conexión privado que desea aprobar y seleccione Aprobar en la barra de herramientas.
En el cuadro de diálogo Aprobación de la conexión, escriba un comentario (opcional), y seleccione Sí.
Confirme que el estado del punto de conexión privado aparece como Aprobado.
Rechazo de un punto de conexión privado
Puede rechazar un punto de conexión privado que tenga el estado Pendiente o Aprobado. Para rechazarlo, siga estos pasos:
Nota
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para rechazar puntos de conexión privados para dominios.
Seleccione el punto de conexión privado que desea rechazar y seleccione Rechazar en la barra de herramientas.
En el cuadro de diálogo Rechazo de la conexión, escriba un comentario (opcional), y seleccione Sí.
Confirme que el estado del punto de conexión privado aparece como Rechazado.
Nota
No se puede aprobar un punto de conexión privado en Azure Portal una vez rechazado.
Uso de CLI de Azure
Para crear un punto de conexión privado, use el método az network private-endpoint create que se indica en el siguiente ejemplo:
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 obtener descripciones de los parámetros utilizados en el ejemplo, consulte la documentación de az network private-endpoint create. Tenga en cuenta los siguientes puntos de este ejemplo:
- Para
private-connection-resource-id
, especifique el identificador del recurso del tema o dominio. En el ejemplo anterior se utiliza el tipo "tema". - Para
group-ids
, especifiquetopic
odomain
. En el ejemplo anterior, se usatopic
.
Para eliminar un punto de conexión privado, use el método az network private-endpoint delete que se indica en el siguiente ejemplo:
az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Nota
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para crear puntos de conexión privados para dominios.
Requisitos previos
Actualice la extensión de Azure Event Grid para la CLI mediante el siguiente comando:
az extension update -n eventgrid
Si la extensión no está instalada, ejecute el siguiente comando para instalarla:
az extension add -n eventgrid
Creación de un punto de conexión privado
Para crear un punto de conexión privado, use el método az network private-endpoint create que se indica en el siguiente ejemplo:
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 obtener descripciones de los parámetros utilizados en el ejemplo, consulte la documentación de az network private-endpoint create. Tenga en cuenta los siguientes puntos de este ejemplo:
- Para
private-connection-resource-id
, especifique el identificador del recurso del tema o dominio. En el ejemplo anterior se utiliza el tipo "tema". - Para
group-ids
, especifiquetopic
odomain
. En el ejemplo anterior, se usatopic
.
Para eliminar un punto de conexión privado, use el método az network private-endpoint delete que se indica en el siguiente ejemplo:
az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
Nota
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para crear puntos de conexión privados para dominios.
Script de ejemplo
Este es un script de ejemplo que crea los siguientes recursos de Azure:
- Resource group
- Virtual network
- Una subred en la red virtual
- Tema de Azure Event Grid
- Un punto de conexión privado para el tema
Nota
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para crear puntos de conexión privados para dominios.
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
Aprobación de un punto de conexión privado
En el siguiente ejemplo de fragmento de código de la CLI se muestra cómo aprobar una conexión de punto de conexión privado.
az eventgrid topic private-endpoint-connection approve \
--resource-group $resourceGroupName \
--topic-name $topicName \
--name $endpointName \
--description "connection approved"
Rechazo de un punto de conexión privado
En el siguiente ejemplo de fragmento de código de la CLI se muestra cómo rechazar una conexión de punto de conexión privado.
az eventgrid topic private-endpoint-connection reject \
--resource-group $resourceGroupName \
--topic-name $topicName \
--name $endpointName \
--description "Connection rejected"
Deshabilitación del acceso a una red pública
De forma predeterminada, el acceso a la red pública está habilitado para un tema o dominio de Event Grid. Para permitir el acceso a través de puntos de conexión privados únicamente, deshabilite el acceso a la red pública con el siguiente comando:
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access disabled
Uso de PowerShell
En esta sección se muestra cómo crear un punto de conexión privado para un tema o dominio mediante PowerShell. Este es un script de ejemplo con comentarios.
# 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
Aprobación de una conexión de punto de conexión privado
En el siguiente ejemplo de fragmento de código de PowerShell se muestra cómo aprobar un punto de conexión privado.
Nota
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para aprobar puntos de conexión privados para dominios.
# 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
Rechazo de una conexión de punto de conexión privado
En el siguiente ejemplo se muestra cómo rechazar un punto de conexión privado mediante PowerShell. Puede obtener el GUID del punto de conexión privado a partir del resultado del comando GET anterior.
Nota
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para rechazar puntos de conexión privados para dominios.
# 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
Puede aprobar la conexión incluso después de que esta se haya rechazado mediante la API. Si usa Azure Portal, no puede aprobar un punto de conexión que se haya rechazado.
Pasos siguientes
- Para más información sobre cómo configurar las opciones de firewall de IP, consulte Configuración del firewall de IP para temas o dominios de Azure Event Grid.
- Para solucionar problemas de conectividad de red, consulte Solucionar problemas de conectividad de red.