Ta emot och svara på key vault-meddelanden med Azure Event Grid

Azure Key Vault integrering med Azure Event Grid aktiverar användarmeddelanden när statusen för en hemlighet som lagras i ett nyckelvalv har ändrats. En översikt över den här funktionen finns i Övervakning Key Vault med Event Grid.

Den här guiden beskriver hur du tar emot Key Vault meddelanden via Event Grid och hur du svarar på statusändringar via Azure Automation.

Förutsättningar

Begrepp

Event Grid är en händelsetjänst för molnet. Genom att följa stegen i den här guiden prenumererar du på händelser för Key Vault och dirigerar händelser till Automation. När en av hemligheterna i nyckelvalvet håller på att upphöra att gälla (definieras som 30 dagar före förfallodatum) meddelas Event Grid om statusändringen och gör en HTTP POST till slutpunkten. En webbkrok utlöser sedan en Automation-körning av ett PowerShell-skript.

HTTP POST-flödesschema

Skapa ett Automation-konto

Skapa ett Automation-konto via Azure Portal:

  1. Gå till portal.azure.com och logga in på din prenumeration.

  2. I sökrutan anger du Automation-konton.

  3. Under avsnittet Tjänster i listrutan i sökfältet väljer du Automation-konton.

  4. Välj Lägg till.

    Fönstret Automation-konton

  5. Ange nödvändig information i fönstret Lägg till Automation-konto och välj sedan Skapa.

Skapa en runbook

När automationskontot är klart skapar du en runbook.

Skapa ett runbook-användargränssnitt

  1. Välj det Automation-konto som du skapade.

  2. Välj Runbooks under ProcessAutomatisering.

  3. Välj Skapa en runbook.

  4. Namnge din runbook och välj PowerShell som runbook-typ.

  5. Välj den runbook som du skapade och välj sedan knappen Redigera .

  6. Ange följande kod (i testsyfte) och välj knappen Publicera . Den här åtgärden returnerar resultatet av den MOTtagna POST-begäran.

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." 
}

Publicera runbook-användargränssnitt

Skapa en webhook

Skapa en webhook för att utlösa din nyligen skapade runbook.

  1. Välj Webhooks i avsnittet Resurser i runbooken som du publicerade.

  2. Välj Lägg till webhook.

    Knappen Lägg till Webhook

  3. Välj Skapa ny webhook.

  4. Namnge webhooken, ange ett förfallodatum och kopiera URL:en.

    Viktigt

    Du kan inte visa URL:en när du har skapat den. Se till att spara en kopia på en säker plats där du kan komma åt den under resten av den här guiden.

  5. Välj Parametrar och kör inställningar och välj sedan OK. Ange inga parametrar. Knappen Skapa aktiveras.

  6. Välj OK och välj sedan Skapa.

    Skapa nytt Webhook-användargränssnitt

Skapa en Event Grid-prenumeration

Skapa en Event Grid-prenumeration via Azure Portal.

  1. Gå till nyckelvalvet och välj fliken Händelser .

    Fliken Händelser i Azure Portal

  2. Välj knappen Händelseprenumeration .

  3. Skapa ett beskrivande namn för prenumerationen.

  4. Välj Event Grid-schema.

  5. Ämnesresurs bör vara det nyckelvalv som du vill övervaka för statusändringar.

  6. För Filtrera till händelsetyper låter du alla alternativ vara markerade (9 markerade).

  7. Som Typ av slutpunkt väljer du Webhook.

  8. Välj Välj en slutpunkt. I det nya kontextfönstret klistrar du in webhookens URL från steget Skapa en webhook i fältet Prenumerantslutpunkt .

  9. Välj Bekräfta markering i kontextfönstret.

  10. Välj Skapa.

    Skapa händelseprenumeration

Testa och verifiera

Kontrollera att Event Grid-prenumerationen är korrekt konfigurerad. Det här testet förutsätter att du har prenumererat på meddelandet "Hemlig ny version skapad" i prenumerationen Skapa ett Event Grid och att du har de behörigheter som krävs för att skapa en ny version av en hemlighet i ett nyckelvalv.

Testa konfigurationen av Event Grid-prenumeration

Fönstret Skapa en hemlighet

  1. Gå till ditt nyckelvalv på Azure-portalen.

  2. Skapa en ny hemlighet. I testsyfte anger du förfallodatumet till nästa dag.

  3. På fliken Händelser i nyckelvalvet väljer du den Event Grid-prenumeration som du skapade.

  4. Under Mått kontrollerar du om en händelse har registrerats. Två händelser förväntas: SecretNewVersion och SecretNearExpiry. Dessa händelser verifierar att Event Grid har registrerat statusändringen av hemligheten i nyckelvalvet.

    Fönstret Mått: sök efter insamlade händelser

  5. Gå till ditt Automation-konto.

  6. Välj fliken Runbooks och välj sedan den runbook som du skapade.

  7. Välj fliken Webhooks och bekräfta att tidsstämpeln "senast utlöst" är inom 60 sekunder från när du skapade den nya hemligheten. Det här resultatet bekräftar att Event Grid gjorde en POST till webhooken med händelseinformationen om statusändringen i nyckelvalvet och att webhooken utlöstes.

    Fliken Webhooks, tidsstämpeln Senast utlöst

  8. Gå tillbaka till din runbook och välj fliken Översikt .

  9. Titta på listan Senaste jobb . Du bör se att ett jobb har skapats och att statusen är klar. Detta bekräftar att webhooken utlöste runbooken för att börja köra skriptet.

    Webhook Lista över senaste jobb

  10. Välj det senaste jobbet och titta på POST-begäran som skickades från Event Grid till webhooken. Granska JSON och kontrollera att parametrarna för nyckelvalvet och händelsetypen är korrekta. Om parametern "händelsetyp" i JSON-objektet matchar händelsen som inträffade i nyckelvalvet (i det här exemplet Microsoft.KeyVault.SecretNearExpiry) lyckades testet.

Felsökning

Du kan inte skapa en händelseprenumeration

Registrera om Event Grid och nyckelvalvsprovidern i azure-prenumerationsresursprovidrar. Se Azure-resursprovidrar och typer.

Nästa steg

Grattis! Om du har följt alla dessa steg korrekt är du nu redo att svara programmatiskt på statusändringar av hemligheter som lagras i ditt nyckelvalv.

Om du har använt ett avsökningsbaserat system för att söka efter statusändringar av hemligheter i dina nyckelvalv kan du nu börja använda den här meddelandefunktionen. Du kan också ersätta testskriptet i din runbook med kod för att programmatiskt förnya dina hemligheter när de snart upphör att gälla.

Läs mer: