Entrega de evento con una identidad administrada
En este artículo se describe cómo usar una identidad de servicio administrada para un tema del sistema de Azure Event Grid, un tema personalizado o un dominio. Úselo para reenviar eventos a destinos compatibles, como colas y temas de Service Bus, centros de eventos y cuentas de almacenamiento.
Prerrequisitos
Asigne una identidad asignada por el sistema o por el usuario a un tema del sistema, un tema personalizado o un dominio.
- Para temas y dominios personalizados, consulte Asignación de una identidad administrada por el sistema a un tema o un dominio personalizados de Event Grid.
- Para los temas del sistema, consulte Asignación de una identidad administrada por el sistema a un tema del sistema de Event Grid.
Agregue la identidad a un rol adecuado (por ejemplo, Remitente de los datos de Service Bus) en el destino (por ejemplo, una cola de Service Bus). Para obtener pasos detallados, consulte Adición de una identidad a los roles de Azure en destinos de Azure Event Grid.
Nota
Actualmente, no es posible enviar eventos mediante puntos de conexión privados. Para obtener más información, consulte la sección Puntos de conexión privado al final de este artículo.
Creación de suscripciones de eventos que usan una identidad
Una vez que tenga un tema personalizado de Event Grid, un tema o un dominio del sistema con una identidad administrada y haya agregado la identidad al rol adecuado en el destino, estará listo para crear suscripciones que usen la identidad.
Uso de Azure Portal
Al crear una suscripción de evento, se ve una opción para habilitar el uso de una identidad asignada por el sistema o por el usuario para un punto de conexión en la sección DETALLES DE PUNTO DE CONEXIÓN.
Este es un ejemplo de la habilitación de una identidad asignada por el sistema al crear una suscripción de evento con una cola de Service Bus como destino.
También puede habilitar el uso de una identidad asignada por el sistema para que se use en la cola de mensajes fallidos en la pestaña Características adicionales.
Puede habilitar una identidad administrada en una suscripción de eventos después de crearla. En la página Suscripción de evento de la suscripción de evento, vaya a la pestaña Características adicionales para ver la opción. También puede habilitar la identidad para mensajes fallidos en esta página.
Si ha habilitado identidades asignadas por el usuario para el tema, verá la opción de identidad asignada por el usuario habilitada en la lista desplegable Tipo de identidad administrada. Si selecciona Asignada por el usuario en Tipo de identidad administrada, luego puede seleccionar la identidad asignada por el usuario que quiera emplear para entregar eventos.
Uso de la CLI de Azure: cola de Service Bus
En esta sección, aprenderá a usar la CLI de Azure para habilitar el uso de una identidad asignada por el sistema para enviar eventos a una cola de Service Bus. La identidad debe ser miembro del rol Emisor de datos de Azure Service Bus. También debe ser miembro del rol Colaborador de datos de blobs de almacenamiento en la cuenta de almacenamiento que se usa para la cola de mensajes fallidos.
Definición de variables
En primer lugar, especifique los valores de las siguientes variables que se usarán en el comando de la CLI.
subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID TOPIC NAME>"
# get the service bus queue resource id
queueid=$(az servicebus queue show --namespace-name <SERVICE BUS NAMESPACE NAME> --name <QUEUE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
sb_esname = "<Specify a name for the event subscription>"
Creación de una suscripción de eventos usando una identidad administrada para la entrega
Este comando de ejemplo crea una suscripción de eventos para un tema personalizado de Event Grid con un tipo de punto de conexión establecido en cola de Service Bus.
az eventgrid event-subscription create
--source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
--delivery-identity-endpoint-type servicebusqueue
--delivery-identity systemassigned
--delivery-identity-endpoint $queueid
-n $sb_esname
Creación de una suscripción de eventos usando una identidad administrada para la entrega y cola de mensajes fallidos
Este comando de ejemplo crea una suscripción de eventos para un tema personalizado de Event Grid con un tipo de punto de conexión establecido en cola de Service Bus. También especifica que la identidad administrada por el sistema se va a usar para la cola de mensajes fallidos.
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"
az eventgrid event-subscription create
--source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
--delivery-identity-endpoint-type servicebusqueue
--delivery-identity systemassigned
--delivery-identity-endpoint $queueid
--deadletter-identity-endpoint $deadletterendpoint
--deadletter-identity systemassigned
-n $sb_esnameq
Uso de la CLI de Azure: Event Hubs
En esta sección, aprenderá a usar la CLI de Azure para habilitar el uso de una identidad asignada por el sistema para enviar eventos a un centro de eventos. La identidad debe ser miembro del rol Emisor de datos de Azure Event Hubs. También debe ser miembro del rol Colaborador de datos de blobs de almacenamiento en la cuenta de almacenamiento que se usa para la cola de mensajes fallidos.
Definición de variables
subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"
hubid=$(az eventhubs eventhub show --name <EVENT HUB NAME> --namespace-name <NAMESPACE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
eh_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>"
Creación de una suscripción de eventos usando una identidad administrada para la entrega
Este comando de ejemplo crea una suscripción de eventos para un tema personalizado de Event Grid con un tipo de punto de conexión establecido en Event Hubs.
az eventgrid event-subscription create
--source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
--delivery-identity-endpoint-type eventhub
--delivery-identity systemassigned
--delivery-identity-endpoint $hubid
-n $sbq_esname
Creación de una suscripción de eventos usando una identidad administrada para la entrega y cola de mensajes fallidos
Este comando de ejemplo crea una suscripción de eventos para un tema personalizado de Event Grid con un tipo de punto de conexión establecido en Event Hubs. También especifica que la identidad administrada por el sistema se va a usar para la cola de mensajes fallidos.
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"
az eventgrid event-subscription create
--source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
--delivery-identity-endpoint-type servicebusqueue
--delivery-identity systemassigned
--delivery-identity-endpoint $hubid
--deadletter-identity-endpoint $eh_deadletterendpoint
--deadletter-identity systemassigned
-n $eh_esname
Uso de la CLI de Azure: cola de Azure Storage
En esta sección, aprenderá a usar la CLI de Azure para habilitar el uso de una identidad asignada por el sistema para enviar eventos a una cola de Azure Storage. La identidad debe ser miembro del rol Emisor de mensajes de datos de la cola de Storage de la cuenta de almacenamiento. También debe ser miembro del rol Colaborador de datos de blobs de almacenamiento en la cuenta de almacenamiento que se usa para la cola de mensajes fallidos.
Definición de variables
subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"
# get the storage account resource id
storageid=$(az storage account show --name <STORAGE ACCOUNT NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
# build the resource id for the queue
queueid="$storageid/queueservices/default/queues/<QUEUE NAME>"
sa_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>"
Creación de una suscripción de eventos usando una identidad administrada para la entrega
az eventgrid event-subscription create
--source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
--delivery-identity-endpoint-type storagequeue
--delivery-identity systemassigned
--delivery-identity-endpoint $queueid
-n $sa_esname
Creación de una suscripción de eventos usando una identidad administrada para la entrega y cola de mensajes fallidos
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"
az eventgrid event-subscription create
--source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
--delivery-identity-endpoint-type storagequeue
--delivery-identity systemassigned
--delivery-identity-endpoint $queueid
--deadletter-identity-endpoint $deadletterendpoint
--deadletter-identity systemassigned
-n $sa_esname
Puntos de conexión privados
Actualmente, no es posible enviar eventos mediante puntos de conexión privados. Es decir, no hay compatibilidad si tiene requisitos de aislamiento de red estrictos por los que el tráfico de eventos entregados no debe abandonar el espacio de la IP privada.
Sin embargo, si los requisitos requieren una manera segura de enviar eventos mediante un canal cifrado y una identidad conocida del remitente (en este caso, Event Grid) mediante el espacio de IP pública, podría entregar eventos a Event Hubs, Service Bus o servicio de Azure Storage mediante un tema personalizado de Azure Event Grid o un dominio con una identidad administrada, como se muestra en este artículo. Después, puede usar un vínculo privado configurado en Azure Functions o en el webhook implementado en la red virtual para extraer eventos. Consulte el tutorial: Conexión a puntos de conexión privados con Azure Functions.
En esta configuración, el tráfico pasa por la dirección IP pública/Internet desde Event Grid hasta Event Hubs, Service Bus o Azure Storage, pero el canal se puede cifrar y se usa una identidad administrada de Event Grid. Si configura Azure Functions o el webhook implementado en la red virtual para usar una instancia de Event Hubs, Service Bus o Azure Storage a través de un vínculo privado, esa sección del tráfico permanecerá en Azure de forma evidente.
Pasos siguientes
Para más información sobre las identidades administradas, consulte ¿Qué son las identidades administradas de recursos de Azure?.