Empfangen von und Reagieren auf Key Vault-Benachrichtigungen mit Azure Event Grid
Die Azure Key Vault-Integration in Azure Event Grid ermöglicht die Benutzerbenachrichtigung, wenn sich der Status eines in einem Schlüsseltresor gespeicherten Geheimnisses geändert hat. Eine Übersicht über dieses Feature finden Sie unter Überwachen von Key Vault mit Event Grid.
In dieser Anleitung ist beschrieben, wie Sie Key Vault-Benachrichtigungen über Event Grid erhalten und wie Sie über Azure Automation auf Statusänderungen reagieren.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Ein Schlüsseltresor in Ihrem Azure-Abonnement. Sie können ganz schnell einen neuen Schlüsseltresor erstellen. Eine entsprechende Anleitung finden Sie unter Schnellstart: Festlegen eines Geheimnisses und Abrufen des Geheimnisses aus Azure Key Vault mithilfe der Azure CLI.
Konzepte
Event Grid ist ein Ereignisdienst für die Cloud. Durch Ausführen der Schritte in diesem Leitfaden abonnieren Sie Ereignisse für Key Vault und leiten Sie Ereignisse an Automation 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. Daraufhin löst ein Webhook eine Automation-Ausführung eines PowerShell-Skripts aus.
Erstellen eines Automation-Kontos
Erstellen Sie ein Automation-Konto über das Azure-Portal:
Navigieren Sie zu „portal.azure.com“, und melden Sie sich bei Ihrem Abonnement an.
Geben Sie Automation-Konten in das Suchfeld ein.
Wählen Sie auf der Suchleiste im Dienste-Abschnitt des Dropdownmenüs die Option Automation-Konten aus.
Wählen Sie Hinzufügen.
Geben Sie im Bereich Automation-Konto hinzufügen die erforderlichen Informationen ein, und wählen Sie anschließend Erstellen aus.
Erstellen eines Runbooks
Wenn Ihr Automation-Konto vorbereitet ist, erstellen Sie ein Runbook.
Wählen Sie das von Ihnen erstellte Automation-Konto aus.
Wählen Sie Runbooks unter Option Prozessautomatisierung aus.
Wählen Sie Runbook erstellen aus.
Benennen Sie Ihr Runbook, und wählen Sie als Runbooktyp PowerShell aus.
Wählen Sie das von Ihnen erstellte Runbook aus, und wählen Sie dann die Schaltfläche Bearbeiten aus.
Geben Sie (zu Testzwecken) den folgenden Code ein, und wählen Sie anschließend die Schaltfläche Veröffentlichen aus. Durch diese Aktion wird das Ergebnis der empfangenen POST-Anforderung zurückgegeben.
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."
}
Erstellen eines Webhooks
Erstellen Sie einen Webhook, um Ihr neu erstelltes Runbook auszulösen.
Wählen Sie im Abschnitt Ressourcen des von Ihnen veröffentlichten Runbooks die Option Webhooks aus.
Wählen Sie Webhook hinzufügen aus.
Wählen Sie Neuen Webhook erstellen aus.
Benennen Sie den Webhook, legen Sie ein Ablaufdatum fest, und kopieren Sie die URL.
Wichtig
Nach ihrer Erstellung kann die URL nicht mehr angezeigt werden. Speichern Sie sie an einem sicheren Ort, auf den Sie im weiteren Verlauf dieses Leitfadens problemlos zugreifen können.
Wählen Sie Parameter und Ausführungseinstellungen aus, und wählen Sie dann OK aus. Geben Sie keine Parameter ein. Die Schaltfläche Erstellen wird aktiviert.
Wählen Sie OK und anschließend Erstellen aus.
Erstellen eines Event Grid-Abonnements
Erstellen Sie ein Event Grid-Abonnement über das Azure-Portal.
Navigieren Sie zu Ihrem Schlüsseltresor, und wählen Sie die Registerkarte Ereignisse aus.
Wählen Sie die Schaltfläche Ereignisabonnement aus.
Erstellen Sie einen aussagekräftigen Namen für das Abonnement.
Wählen Sie Event Grid-Schema aus.
Themenressource muss der Schlüsseltresor sein, den Sie auf Statusänderungen überwachen möchten.
Belassen Sie für Nach Ereignistypen filtern alle Optionen ausgewählt (9 ausgewählt).
Wählen Sie unter Endpunkttyp die Option Webhook aus.
Wählen Sie Endpunkt auswählen aus. Fügen Sie im neuen Kontextbereich die Webhook-URL aus dem Schritt Erstellen eines Webhooks in das Feld Abonnentenendpunkt ein.
Wählen Sie im Kontextbereich die Option Auswahl bestätigen aus.
Klicken Sie auf Erstellen.
Testen und Überprüfen
Vergewissern Sie sich, dass Ihr Event Grid-Abonnement ordnungsgemäß konfiguriert ist. Bei diesem Test wird davon ausgegangen, dass Sie im Schritt Erstellen eines Event Grid-Abonnements die Benachrichtigung für die Erstellung einer neuen Geheimnisversion (Secret New Version Created) abonniert haben und über die nötigen Berechtigungen verfügen, um in einem Schlüsseltresor eine neue Version eines Geheimnisses zu erstellen.
Navigieren Sie im Azure-Portal zu Ihrem Schlüsseltresor.
Erstellen Sie ein neues Geheimnis. Legen Sie zu Testzwecken das Ablaufdatum auf den nächsten Tag fest.
Wählen Sie auf der Registerkarte Ereignisse in Ihrem Schlüsseltresor das Event Grid-Abonnement aus, das Sie erstellt haben.
Überprüfen Sie unter Metriken, ob ein Ereignis erfasst wurde. Zwei Ereignisse werden 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.
Navigieren Sie zu Ihrem Automation-Konto.
Wählen Sie die Registerkarte Runbooks und anschließend das von Ihnen erstellte Runbook aus.
Wählen Sie die Registerkarte Webhooks aus, und vergewissern Sie sich, dass der „Zuletzt ausgelöst“-Zeitstempel innerhalb von 60 Sekunden nach der Erstellung des neuen Geheimnisses liegt. Mit diesem Ergebnis wird bestätigt, dass Event Grid eine POST-Anforderung mit den Ereignisdetails der Statusänderung in Ihrem Schlüsseltresor an den Webhook gesendet hat und dass der Webhook ausgelöst wurde.
Kehren Sie zu Ihrem Runbook zurück, und wählen Sie die Registerkarte Übersicht aus.
Sehen Sie sich die Liste Kürzlich ausgeführte Aufträge an. Darin sollte ein erstellter und abgeschlossener Auftrag enthalten sein. Ist dies der Fall, hat der Webhook das Runbook ausgelöst, um die Skriptausführung zu starten.
Wählen Sie den aktuellen Auftrag aus, und sehen Sie sich die POST-Anforderung an, die von Event Grid an den Webhook gesendet wurde. Überprüfen Sie den JSON-Code, und vergewissern Sie sich, dass die Parameter für den Schlüsseltresor und den Ereignistyp korrekt sind. Wenn der Parameter „event type“ (Ereignistyp) im JSON-Objekt dem Ereignis entspricht, 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 des Key Vault-Anbieters in den Ressourcenanbietern Ihres Azure-Abonnements. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.
Nächste Schritte
Glückwunsch! Wenn Sie alle aufgeführten Schritte ordnungsgemäß ausgeführt haben, können Sie nun programmgesteuert auf Statusänderungen von Geheimnissen 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üsseltresors zu suchen, können Sie nun beginnen, dieses Benachrichtigungsfeature zu verwenden. Sie können auch das Testskript in Ihrem Runbook durch Code ersetzen, um Ihre in Kürze ablaufenden Geheimnisse programmgesteuert zu erneuern.
Weitere Informationen:
- Übersicht: Überwachen von Key Vault mit Azure Event Grid
- Gewusst wie: Verwenden von Logic Apps zum Empfangen einer E-Mail bei Statusänderungen von Key Vault-Geheimnissen
- Azure Event Grid-Ereignisschema für Azure Key Vault
- Was ist der Azure-Schlüsseltresor?
- Was ist Azure Event Grid?
- Azure Automation – Übersicht