Partager via


Recevoir des notifications concernant un coffre de clés et y répondre avec Azure Event Grid

L’intégration d’Azure Key Vault à Azure Event Grid permet aux utilisateurs de notification lorsque l’état d’un secret stocké dans un coffre de clés a changé. Pour obtenir une vue d’ensemble de cette fonctionnalité, consultez Monitoring Key Vault avec Event Grid.

Ce guide explique comment recevoir des notifications Key Vault via Event Grid et comment répondre aux modifications d’état via Azure Automation.

Conditions préalables

Les concepts

Event Grid est un service d’événements pour le cloud. En suivant les étapes décrites dans ce guide, vous allez vous abonner aux événements pour Key Vault et acheminer les événements vers Automation. Quand l’un des secrets du coffre de clés est sur le point d’expirer (défini comme 30 jours avant la date d’expiration), Event Grid est averti du changement de statut et effectue une requête HTTP POST sur le point d'accès. Un webhook déclenche ensuite l'exécution automatique d’un script PowerShell.

Organigramme HTTP POST

Créer un compte Automation

Créez un compte Automation via le portail Azure :

  1. Accédez à portal.azure.com et connectez-vous à votre abonnement.

  2. Dans la barre de recherche, entrez Comptes d'automatisation.

  3. Sous la section Services de la liste déroulante dans la barre de recherche, sélectionnez Comptes Automation.

  4. Sélectionnez Ajouter.

    Volet Comptes d'automatisation

  5. Entrez les informations requises dans le volet Ajouter un compte Automation , puis sélectionnez Créer.

Créer un runbook

Une fois votre compte Automation prêt, créez un guide d'exécution (runbook).

Créer une interface utilisateur de runbook

  1. Sélectionnez le compte Automation que vous avez créé.

  2. Sélectionnez Runbooks sous Process Automation.

  3. Sélectionnez Créer un runbook.

  4. Nommez votre runbook et sélectionnez PowerShell comme type de runbook.

  5. Sélectionnez le runbook que vous avez créé, puis sélectionnez le bouton Modifier .

  6. Entrez le code suivant (à des fins de test) et sélectionnez le bouton Publier . Cette action retourne le résultat de la requête POST reçue.

param
(
[Parameter (Mandatory = $false)]
[object] $WebhookData
)

#If runbook was called from Webhook, WebhookData will not be null.
if ($WebhookData) {

#rotate secret:
#generate new secret version in key vault
#update db/service with generated secret

#Write-Output "WebhookData <$WebhookData>"
Write-Output $WebhookData.RequestBody
}
else
{
# Error
write-Error "No input data found." 
}

Publier l’interface utilisateur du runbook

Créer un webhook

Créez un Webhook pour déclencher le runbook que vous venez de créer.

  1. Sélectionnez Webhooks dans la section Ressources du runbook que vous avez publié.

  2. Sélectionnez Ajouter un webhook.

    Bouton Ajouter un Webhook

  3. Sélectionnez Créer un webhook.

  4. Nommez le webhook, définissez une date d’expiration et copiez l’URL.

    Important

    Vous ne pouvez pas afficher l’URL une fois que vous l’avez créée. Veillez à enregistrer une copie dans un emplacement sécurisé où vous pouvez y accéder pour le reste de ce guide.

  5. Sélectionnez Paramètres et exécutez les paramètres , puis sélectionnez OK. N’entrez aucun paramètre. Le bouton Créer est activé.

  6. Sélectionnez OK , puis sélectionnez Créer.

    Créer une nouvelle interface utilisateur pour Webhook

Créer un abonnement Event Grid

Créez un abonnement Event Grid via le portail Azure.

  1. Accédez à votre coffre de clés et sélectionnez l’onglet Événements .

    Onglet Événements dans le portail Azure

  2. Sélectionnez le bouton Abonnement aux événements .

  3. Créez un nom descriptif pour l’abonnement.

  4. Choisissez Le schéma Event Grid.

  5. La ressource de rubrique doit être le coffre de clés dont vous souhaitez superviser les changements d’état.

  6. Pour Filtrer sur les types d’événements, laissez toutes les options sélectionnées (9 sélectionnés).

  7. Pour Type de point de terminaison, sélectionnez Webhook.

  8. Choisissez Sélectionner un point de terminaison. Dans le nouveau volet contextuel, collez l’URL du webhook à partir de l’étape Créer un webhook dans le champ Point de terminaison de l’Abonné .

  9. Sélectionnez Confirmer la sélection dans le volet contextuel.

  10. Sélectionnez Créer.

    Créer un abonnement aux événements

Tester et vérifier

Vérifiez que votre abonnement Event Grid est correctement configuré. Ce test suppose que vous avez souscrit à la notification « Nouvelle version secrète créée » dans l’abonnement Créer un event Grid et que vous disposez des autorisations nécessaires pour créer une nouvelle version d’un secret dans un coffre de clés.

Tester la configuration de l’abonnement Event Grid

Volet Créer un secret

  1. Accédez à votre coffre de clés dans le portail Azure.

  2. Créez un nouveau secret. À des fins de test, définissez l’expiration jusqu’au jour suivant.

  3. Sous l’onglet Événements de votre coffre de clés, sélectionnez l’abonnement Event Grid que vous avez créé.

  4. Sous Métriques, vérifiez si un événement a été capturé. Deux événements sont attendus : SecretNewVersion et SecretNearExpiry. Ces événements confirment que Event Grid a correctement capturé le changement d’état du secret dans votre coffre de clés.

    Volet Métriques : rechercher les événements capturés

  5. Accédez à votre compte Automation.

  6. Sélectionnez l’onglet Runbooks , puis sélectionnez le Runbook que vous avez créé.

  7. Sélectionnez l’onglet Webhooks et vérifiez que l’horodatage « dernier déclenché » est dans les 60 secondes suivant la création du nouveau secret. Ce résultat confirme qu’Event Grid a envoyé une requête POST au Webhook en indiquant les détails de l’événement de changement d’état relatif à votre coffre de clés, et que le Webhook a été déclenché.

    Onglet Webhooks, horodatage du dernier déclenchement

  8. Revenez à votre runbook et sélectionnez l’onglet Vue d’ensemble .

  9. Examinez la liste Travaux récents . Vous devriez voir qu’une tâche a été créée et que l’état est terminé. Cela confirme que le webhook a déclenché le runbook pour commencer à exécuter son script.

    Liste Tâches récente du Webhook

  10. Sélectionnez le travail récent et examinez la requête POST envoyée à partir d’Event Grid vers le webhook. Examinez le JSON et vérifiez que les paramètres de votre coffre de clés et du type d’événement sont corrects. Si le paramètre « type d’événement » dans l’objet JSON correspond à l’événement qui s’est produit dans le coffre de clés (dans cet exemple, Microsoft.KeyVault.SecretNearExpiry), le test a réussi.

Résolution des problèmes

Vous ne pouvez pas créer d’abonnement aux événements

Réinscrire Event Grid et le fournisseur Azure Key Vault dans les fournisseurs de ressources de votre abonnement Azure. Voir Fournisseurs et types de ressources Azure.

Étapes suivantes

Félicitations! Si vous avez correctement suivi toutes ces étapes, vous êtes maintenant prêt à répondre par programme aux modifications d’état des secrets stockés dans votre coffre de clés.

Si vous avez utilisé un système d’interrogation pour rechercher les changements d’état des secrets dans vos coffres de clés, vous pouvez désormais vous servir de cette fonctionnalité de notification. Vous pouvez également remplacer le script de test dans votre runbook par du code pour renouveler par programmation vos secrets lorsqu’ils expirent.

Pour en savoir plus: