Remise d’événement avec une identité managée

Cet article explique comment utiliser une identité de service managée pour une rubrique système Azure Event Grid, une rubrique personnalisée ou un domaine. Utilisez-le pour transférer des événements vers des destinations prises en charge, telles que des files d’attente et rubriques Service Bus, des concentrateurs d’événements et des comptes de stockage.

Prérequis

  1. Assignez une identité attribuée par le système ou une identité attribuée par l’utilisateur à une rubrique système, à une rubrique personnalisée ou à un domaine.

  2. Ajouter l’identité à un rôle approprié (par exemple, expéditeur de données Service Bus) sur la destination (par exemple, une file d’attente Service Bus). Pour obtenir des instructions détaillées, consultez Ajouter une identité à des rôles Azure sur des destinations.

    Notes

    Actuellement, il n’est pas possible de remettre des événements à l’aide de points de terminaison privés. Pour plus d’informations, consultez la section Points de terminaison privés à la fin de cet article.

Créer des abonnements à des événements qui utilisent une identité

Une fois que vous avez une rubrique personnalisée Event Grid ou une rubrique système ou un domaine avec une identité managée et ajouté l’identité au rôle approprié sur la destination, vous êtes prêt à créer des abonnements qui utilisent l’identité.

Utilisation du portail Azure

Lors de la création d’un abonnement à des événements, une option permet d’activer l’utilisation d’une identité attribuée par le système ou d’une identité attribuée par l’utilisateur pour un point de terminaison dans la section DÉTAILS DES POINTS DE TERMINAISON.

Voici un exemple d’activation de l’identité attribuée par le système lors de la création d’un abonnement à des événements avec une file d’attente Service Bus en tant que destination.

Screenshot that shows how to enable an identity when creating an event subscription for a Service Bus queue.

Vous pouvez également activer l’utilisation d’une identité affectée par le système pour la mise en file d’attente de lettres mortes sous l’onglet Fonctionnalités supplémentaires.

Screenshot that shows how to enable a system-assigned identity for dead-lettering.

Vous pouvez activer une identité managée sur un abonnement aux événements après sa création. Sur la page Abonnement à des événements de l’abonnement à des événements, basculez vers l’onglet Fonctionnalités supplémentaires pour voir l’option. Vous pouvez également activer l’identité pour la lettre morte sur cette page.

Screenshot that shows how to enable a system-assigned identity on an existing event subscription.

Si vous avez activé les identités affectées par l’utilisateur pour la rubrique, vous verrez l’option d’identité affectée par l’utilisateur activée dans la liste déroulante pour le type d’identité géré. Si vous sélectionnez Attribuée par l’utilisateur pour Type d’identité managée, vous pouvez sélectionner l’identité attribuée par l’utilisateur que vous souhaitez utiliser pour distribuer les événements.

Screenshot that shows how to enable a user-assigned identity on an event subscription.

Utilisation d’Azure CLI – File d’attente Service Bus

Cette section explique comment utiliser Azure CLI afin d’activer l’utilisation d’une identité affectée par le système pour remettre des événements à une file d’attente Service Bus. L’identité doit être un membre du rôle Expéditeur de données Azure Service Bus. Elle doit également être membre du rôle Contributeur aux données Blob du stockage sur le compte de stockage utilisé pour la mise en file d'attente de lettres mortes.

Définir des variables

Tout d’abord, spécifiez des valeurs pour les variables suivantes à utiliser dans la commande 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>" 

Créer un abonnement à des événements en utilisant une identité managée pour la remise

Cet exemple de commande crée un abonnement aux événements pour une rubrique personnalisée Event Grid avec un type de point de terminaison défini sur file d’attente 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 

Créer un abonnement à des événements en utilisant une identité managée pour la remise et la mise en file d’attente de lettres mortes

Cet exemple de commande crée un abonnement aux événements pour une rubrique personnalisée Event Grid avec un type de point de terminaison défini sur file d’attente Service Bus. Il spécifie également que l’identité managée par le système doit être utilisée pour la mise en file d’attente de lettres mortes.

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 

Utilisation d’Azure CLI – Event Hubs

Cette section explique comment utiliser Azure CLI afin d’activer l’utilisation d’une identité affectée par le système pour remettre des événements à un hub d’événements. L’identité doit être un membre du rôle Expéditeur de données Azure Event Hubs. Elle doit également être membre du rôle Contributeur aux données Blob du stockage sur le compte de stockage utilisé pour la mise en file d'attente de lettres mortes.

Définir des 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>" 

Créer un abonnement à des événements en utilisant une identité managée pour la remise

Cet exemple de commande crée un abonnement aux événements pour une rubrique personnalisée Event Grid avec un type de point de terminaison défini sur 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 

Créer un abonnement à des événements en utilisant une identité managée pour la remise et la mise en file d’attente de lettres mortes

Cet exemple de commande crée un abonnement aux événements pour une rubrique personnalisée Event Grid avec un type de point de terminaison défini sur Event Hubs. Il spécifie également que l’identité managée par le système doit être utilisée pour la mise en file d’attente de lettres mortes.

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 

Utilisation d’Azure CLI – File d’attente de stockage Azure

Cette section explique comment utiliser Azure CLI afin d’activer l’utilisation d’une identité affectée par le système pour remettre des événements à une file d’attente de Stockage Azure. L’identité doit être membre du rôle Expéditeur de messages de données en file d’attente du stockage sur le compte de stockage. Elle doit également être membre du rôle Contributeur aux données Blob du stockage sur le compte de stockage utilisé pour la mise en file d'attente de lettres mortes.

Définir des 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>" 

Créer un abonnement à des événements en utilisant une identité managée pour la remise

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 

Créer un abonnement à des événements en utilisant une identité managée pour la remise et la mise en file d’attente de lettres mortes

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 

Instances Private Endpoint

Actuellement, il n’est pas possible de remettre des événements à l’aide de points de terminaison privés. Autrement dit, il n’y a pas de prise en charge si vous avez des exigences strictes en termes d’isolement réseau quand le trafic des événements remis ne doit pas sortir de l’espace IP privé.

Toutefois, si vos besoins appellent un moyen sécurisé d’envoyer des événements à l’aide d’un canal chiffré et d’une identité connue de l’expéditeur (dans ce cas, Event Grid) à l’aide d’un espace IP public, vous pouvez remettre des événements à Event Hubs, Service Bus ou Stockage Azure service à l’aide d’une rubrique personnalisée Azure Event Grid ou d’un domaine avec une identité managée, comme indiqué dans cet article. Ensuite, vous pouvez utiliser une liaison privée configurée dans Azure Functions ou votre webhook déployé sur votre réseau virtuel pour extraire des événements. Voir l’exemple : Connectez-vous à des points de terminaison privés avec Azure Functions.

Dans cette configuration, le trafic transite par l’adresse IP publique ou Internet d’Event Grid vers le service Event Hubs, Service Bus ou Stockage Azure, mais le canal peut être chiffré et une identité managée d’Event Grid est utilisée. Si vous configurez votre Azure Functions ou webhook déployé sur votre réseau virtuel pour utiliser un stockage Event Hubs, Service Bus ou stockage Azure via une liaison privée, cette section du trafic restera évidemment dans Azure.

Étapes suivantes

Pour découvrir les identités managées, consultez Que sont les identités managées pour les ressources Azure ?.