Freigeben über


Empfangen von und Reagieren auf Schlüsseltresorbenachrichtigungen mit Azure Event Grid

Die Azure Key Vault-Integration in Azure Event Grid ermöglicht die Benutzerbenachrichtigung, wenn sich der Status eines geheimen Schlüssels geändert hat, der in einem Schlüsseltresor gespeichert ist. Eine Übersicht über dieses Feature finden Sie unter Monitoring Key Vault with Event Grid.

In diesem Leitfaden wird beschrieben, wie Sie Key Vault-Benachrichtigungen über Das Ereignisraster empfangen und wie Sie auf Statusänderungen über Azure Automation reagieren.

Voraussetzungen

Konzepte

Ereignisraster ist ein Ereignisdienst für die Cloud. Indem Sie die Schritte in diesem Leitfaden ausführen, abonnieren Sie Ereignisse für Key Vault und leiten Ereignisse zur Automatisierung weiter. Wenn eines der Geheimnisse im Schlüsseltresor in Kürze abläuft (definiert als 30 Tage vor dem Ablaufdatum), wird Event Grid über die Statusänderung informiert und sendet eine HTTP POST-Anforderung an den Endpunkt. Ein Web-Hook löst dann eine Automatisierungsausführung eines PowerShell-Skripts aus.

HTTP POST-Flussdiagramm

Erstellen eines Automatisierungskontos

Erstellen Sie ein Automatisierungskonto über das Azure-Portal:

  1. Wechseln Sie zu portal.azure.com, und melden Sie sich bei Ihrem Abonnement an.

  2. Geben Sie im Suchfeld Automation Accounts ein.

  3. Wählen Sie im Abschnitt "Dienste " der Dropdownliste auf der Suchleiste die Option "Automatisierungskonten" aus.

  4. Wählen Sie Hinzufügen aus.

    Bereich „Automation-Konten“

  5. Geben Sie die erforderlichen Informationen im Bereich " Automatisierungskonto hinzufügen " ein, und wählen Sie dann "Erstellen" aus.

Ein Runbook erstellen

Wenn Ihr Automation-Konto vorbereitet ist, erstellen Sie ein Runbook.

Erstellen einer Runbook-Benutzeroberfläche

  1. Wählen Sie das von Ihnen erstellte Automatisierungskonto aus.

  2. Wählen Sie "Runbooks" unter "Prozessautomatisierung" aus.

  3. Wählen Sie Runbook erstellen aus.

  4. Benennen Sie Ihr Runbook, und wählen Sie PowerShell als Runbooktyp aus.

  5. Wählen Sie das erstellte Runbook und dann die Schaltfläche "Bearbeiten " aus.

  6. Geben Sie den folgenden Code (zu Testzwecken) ein, und wählen Sie die Schaltfläche " Veröffentlichen" aus . Diese Aktion gibt das Ergebnis der empfangenen POST-Anforderung zurück.

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

Veröffentlichen der Runbook-Benutzeroberfläche

Erstellen eines Webhooks

Erstellen Sie einen Webhook, um Ihr neu erstelltes Runbook auszulösen.

  1. Wählen Sie Webhooks aus dem Abschnitt "Ressourcen " des von Ihnen veröffentlichten Runbook aus.

  2. Wählen Sie "Webhook hinzufügen" aus.

    Schaltfläche

  3. Wählen Sie "Neuen Webhook erstellen" aus.

  4. Benennen Sie den Webhook, legen Sie ein Ablaufdatum fest, und kopieren Sie die URL.

    Von Bedeutung

    Sie können die URL nach dem Erstellen nicht anzeigen. Stellen Sie sicher, dass Sie eine Kopie an einem sicheren Speicherort speichern, an dem Sie für den Rest dieses Handbuchs darauf zugreifen können.

  5. Wählen Sie "Parameter" aus, und führen Sie Einstellungen aus , und wählen Sie dann "OK" aus. Geben Sie keine Parameter ein. Die Schaltfläche " Erstellen " wird aktiviert.

  6. Wählen Sie "OK" und dann " Erstellen" aus.

    Erstellen einer neuen Webhook-Benutzeroberfläche

Erstellen eines Event Grid-Abonnements

Erstellen Sie ein Event Grid-Abonnement über das Azure-Portal.

  1. Navigieren Sie zu Ihrem Schlüsseltresor, und wählen Sie die Registerkarte Ereignisse aus.

    Registerkarte

  2. Wählen Sie die Schaltfläche "Ereignisabonnement" aus .

  3. Erstellen Sie einen beschreibenden Namen für das Abonnement.

  4. Wählen Sie das Ereignisrasterschema aus.

  5. Themenressource muss der Schlüsseltresor sein, den Sie auf Statusänderungen überwachen möchten.

  6. Lassen Sie für "Auf Ereignistypen filtern" alle Optionen ausgewählt (9 ausgewählt).

  7. Wählen Sie unter Endpunkttyp die Option Webhook aus.

  8. Wählen Sie Endpunkt auswählen aus. Fügen Sie im neuen Kontextbereich die Webhook-URL aus dem Schritt " Webhook erstellen " in das Feld "Abonnentenendpunkt " ein.

  9. Wählen Sie " Auswahl bestätigen " im Kontextbereich aus.

  10. Klicken Sie auf Erstellen.

    Ereignisabonnement erstellen

Testen und Überprüfen

Vergewissern Sie sich, dass Ihr Event Grid-Abonnement ordnungsgemäß konfiguriert ist. Bei diesem Test wird davon ausgegangen, dass Sie die Benachrichtigung "Geheime neue Version erstellt" im Abonnement "Ereignisraster erstellen" abonniert haben und dass Sie über die erforderlichen Berechtigungen zum Erstellen einer neuen Version eines geheimen Schlüssels in einem Schlüsseltresor verfügen.

Testkonfiguration des Event Grid-Abonnements

Bereich 'Geheimnis erstellen'

  1. Navigieren Sie im Azure-Portal zu Ihrem Schlüsseltresor.

  2. Erstellen Sie ein neues Geheimnis. Legen Sie für Testzwecke das Ablaufdatum auf den nächsten Tag fest.

  3. Wählen Sie auf der Registerkarte "Ereignisse " im Schlüsseltresor das von Ihnen erstellte Event Grid-Abonnement aus.

  4. Überprüfen Sie unter "Metriken", ob ein Ereignis erfasst wurde. Es werden zwei Ereignisse erwartet: SecretNewVersion und SecretNearExpiry. Mit diesen Ereignissen wird überprüft, ob die Statusänderung des Geheimnisses in Ihrem Schlüsseltresor von Event Grid erfolgreich erfasst wurde.

    Metrikbereich: Überprüfen auf erfasste Ereignisse

  5. Navigieren Sie zu Ihrem Automation-Konto.

  6. Wählen Sie die Registerkarte "Runbooks " und dann das erstellte Runbook aus.

  7. Wählen Sie die Registerkarte "Webhooks " aus, und vergewissern Sie sich, dass der Zeitstempel "Zuletzt ausgelöst" innerhalb von 60 Sekunden nach dem Erstellen des neuen geheimen Schlüssels liegt. Dieses Ergebnis bestätigt, dass Event Grid einen POST an den Webhook mit den Details der Statusänderung in Ihrem Schlüsseltresor vorgenommen hat und dass der Webhook ausgelöst wurde.

    Registerkarte „Webhooks“, Zeitstempel „Zuletzt ausgelöst“

  8. Kehren Sie zu Ihrem Runbook zurück, und wählen Sie die Registerkarte "Übersicht " aus.

  9. Sehen Sie sich die Liste "Aktuelle Aufträge " an. Sie sollten sehen, dass ein Auftrag erstellt wurde und dass der Status „abgeschlossen“ ist. Dadurch wird bestätigt, dass der Webhook das Runbook ausgelöst hat, um mit der Ausführung des Skripts zu beginnen.

    Liste der neuesten Webhook-Jobs

  10. Wählen Sie den zuletzt verwendeten Auftrag aus, und sehen Sie sich die POST-Anforderung an, die vom Event Grid an den Webhook gesendet wurde. Überprüfen Sie das JSON, und stellen Sie sicher, dass die Parameter für Ihren Key Vault und den Ereignistyp korrekt sind. Wenn der Parameter "event type" im JSON-Objekt mit dem Ereignis übereinstimmt, das im Schlüsseltresor aufgetreten ist (in diesem Beispiel Microsoft.KeyVault.SecretNearExpiry), war der Test erfolgreich.

Problembehandlung

Sie können kein Ereignisabonnement erstellen.

Wiederholen Sie die Registrierung von Event Grid und dem Schlüsseltresoranbieter in den Ressourcenanbietern Ihres Azure-Abonnements. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.

Nächste Schritte

Glückwunsch! Wenn Sie alle diese Schritte ordnungsgemäß befolgt haben, können Sie jetzt programmgesteuert auf Statusänderungen von geheimen Schlüsseln reagieren, die in Ihrem Schlüsseltresor gespeichert sind.

Falls Sie bislang ein abrufbasiertes System verwendet haben, um nach Statusänderungen von Geheimnissen in Ihren Schlüsseltresoren zu suchen, können Sie nun beginnen, diese Benachrichtigungsfunktion zu verwenden. Sie können das Testskript in Ihrem Runbook auch durch Code ersetzen, um Ihre geheimen Schlüssel programmgesteuert zu verlängern, wenn sie bald ablaufen.

Weitere Informationen: