Příjem oznámení služby Key Vault a reakce na ně pomocí služby Azure Event Grid
Článek
Integrace služby Azure Key Vault se službou Azure Event Grid umožňuje uživatelům oznámení o změně stavu tajného kódu uloženého v trezoru klíčů. Přehled této funkce najdete v tématu Monitorování služby Key Vault pomocí event Gridu.
Tato příručka popisuje, jak přijímat oznámení služby Key Vault prostřednictvím služby Event Grid a jak reagovat na změny stavu prostřednictvím služby Azure Automation.
Požadavky
Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Event Grid je služba událostí pro cloud. Podle kroků v této příručce se přihlásíte k odběru událostí služby Key Vault a směrujete události do služby Automation. Když se blíží vypršení platnosti některého z tajných kódů v trezoru klíčů (definovaného jako 30 dní před datem vypršení platnosti), služba Event Grid oznámí změnu stavu a provede do koncového bodu http POST. Webhook pak aktivuje spuštění skriptu PowerShellu pro automatizaci.
Vytvoření účtu Automation
Vytvořte účet Automation prostřednictvím webu Azure Portal:
Přejděte na portal.azure.com a přihlaste se ke svému předplatnému.
Do vyhledávacího pole zadejte účty Automation.
V části Služby v rozevíracím seznamu na panelu hledání vyberte Účty Automation.
Vyberte Přidat.
Zadejte požadované informace v podokně Přidat účet Automation a pak vyberte Vytvořit.
Vytvoření runbooku
Jakmile bude účet Automation připravený, vytvořte runbook.
Vyberte účet Automation, který jste vytvořili.
V části Automatizace procesů vyberte runbooky.
Vyberte Vytvořit runbook.
Pojmenujte runbook a jako typ runbooku vyberte PowerShell .
Vyberte runbook, který jste vytvořili, a pak vyberte tlačítko Upravit .
Zadejte následující kód (pro účely testování) a vyberte tlačítko Publikovat . Tato akce vrátí výsledek přijaté žádosti POST.
Azure PowerShell
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
{
# Errorwrite-Error"No input data found."
}
Vytvoření webhooku
Vytvořte webhook, který aktivuje nově vytvořený runbook.
V části Prostředky publikovaného runbooku vyberte webhooky.
Vyberte Přidat webhook.
Vyberte Vytvořit nový webhook.
Pojmenujte webhook, nastavte datum vypršení platnosti a zkopírujte adresu URL.
Důležité
Adresu URL nemůžete zobrazit po jejím vytvoření. Ujistěte se, že kopii uložíte do zabezpečeného umístění, kde k ní budete mít přístup po zbytek tohoto průvodce.
Vyberte Parametry a spusťte nastavení a pak vyberte OK. Nezadávejte žádné parametry. Tlačítko Vytvořit se povolí.
Vyberte OK a pak vyberte Vytvořit.
Vytvoření odběru Event Gridu
Vytvořte odběr Event Gridu prostřednictvím webu Azure Portal.
Přejděte do trezoru klíčů a vyberte kartu Události .
Vyberte tlačítko Odběr události.
Vytvořte popisný název předplatného.
Zvolte schéma Event Gridu.
Prostředek tématu by měl být trezor klíčů, který chcete monitorovat změny stavu.
Pro filtr na typy událostí ponechte všechny možnosti vybrané (9).
Jako Typ koncového bodu vyberte Webhook.
Zvolte Vybrat koncový bod. V novém kontextovém podokně vložte adresu URL webhooku z kroku Vytvořit webhook do pole Koncový bod odběratele .
V podokně kontextu vyberte Potvrdit výběr .
Vyberte Vytvořit.
Testování a ověření
Ověřte, že je vaše předplatné Event Gridu správně nakonfigurované. Tento test předpokládá, že jste se přihlásili k odběru oznámení "Vytvoření nové tajné verze" v odběru služby Event Grid a že máte potřebná oprávnění k vytvoření nové verze tajného kódu v trezoru klíčů.
Na webu Azure Portal přejděte na svůj trezor klíčů.
Vytvořte nový tajný kód. Pro účely testování nastavte vypršení platnosti na následující den.
Na kartě Události ve vašem trezoru klíčů vyberte předplatné Event Gridu, které jste vytvořili.
V části Metriky zkontrolujte, jestli byla zaznamenána událost. Očekává se dvě události: SecretNewVersion a SecretNearExpiry. Tyto události ověřují, že Event Grid úspěšně zachytil změnu stavu tajného klíče ve vašem trezoru klíčů.
Přejděte do svého účtu služby Automation.
Vyberte kartu Runbooky a pak vyberte runbook, který jste vytvořili.
Vyberte kartu Webhooky a ověřte, že časové razítko naposledy aktivované je do 60 sekund od vytvoření nového tajného kódu. Tento výsledek potvrdí, že Služba Event Grid do webhooku vytvořila post s podrobnostmi o události změny stavu ve vašem trezoru klíčů a aktivací webhooku.
Vraťte se do runbooku a vyberte kartu Přehled .
Podívejte se na seznam Posledních úloh . Měli byste vidět, že se vytvořila úloha a že je stav dokončený. Tím potvrdíte, že webhook aktivoval runbook, aby začal spouštět svůj skript.
Vyberte poslední úlohu a podívejte se na požadavek POST, který byl odeslán z Event Gridu do webhooku. Prozkoumejte JSON a ujistěte se, že jsou správné parametry pro váš trezor klíčů a typ události. Pokud parametr "typ události" v objektu JSON odpovídá události, ke které došlo v trezoru klíčů (v tomto příkladu Microsoft.KeyVault.SecretNearExpiry), test byl úspěšný.
Řešení problému
Odběr událostí nejde vytvořit.
Znovu zaregistrujte Event Grid a poskytovatele trezoru klíčů ve vašich poskytovatelích prostředků předplatného Azure. Viz Poskytovatelé a typy prostředků Azure.
Další kroky
Gratulujeme! Pokud jste správně postupovali podle všech těchto kroků, jste teď připraveni programově reagovat na změny stavu tajných kódů uložených ve vašem trezoru klíčů.
Pokud jste k hledání změn stavu tajných kódů v trezorech klíčů používali systém založený na dotazování, můžete tuto funkci oznámení začít používat. Testovací skript v runbooku můžete také nahradit kódem, který programově obnoví tajné kódy, jakmile brzy vyprší jejich platnost.