Sdílet prostřednictvím


Příjem oznámení trezoru klíčů a reakce na ně pomocí Azure Event Grid

Integrace Azure Key Vault s Azure Event Grid umožňuje oznámení uživatelům, když se změní stav tajného kódu uloženého v trezoru klíčů. Přehled této funkce najdete v tématu Monitorování Key Vault pomocí Event Gridu.

Tento průvodce popisuje, jak přijímat Key Vault oznámení prostřednictvím Event Gridu a jak reagovat na změny stavu prostřednictvím Azure Automation.

Požadavky

Koncepty

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í pro Key Vault a směrování událostí do služby Automation. Když se blíží vypršení platnosti některého z tajných klíčů v trezoru klíčů (definované jako 30 dní před datem vypršení platnosti), služba Event Grid obdrží oznámení o změně stavu a provede do koncového bodu protokol HTTP POST. Webhook pak aktivuje spuštění skriptu PowerShellu pro automatizaci.

Vývojový diagram HTTP POST

Vytvoření účtu Automation

Vytvořte účet Automation prostřednictvím Azure Portal:

  1. Přejděte na portal.azure.com a přihlaste se ke svému předplatnému.

  2. Do vyhledávacího pole zadejte Účty Automation.

  3. V části Služby rozevíracího seznamu na panelu hledání vyberte Účty Automation.

  4. Vyberte Přidat.

    Podokno Účty služby Automation

  5. V podokně Přidat účet Automation zadejte požadované informace a pak vyberte Vytvořit.

Vytvoření runbooku

Jakmile bude váš účet Automation připravený, vytvořte runbook.

Vytvoření uživatelského rozhraní runbooku

  1. Vyberte účet Automation, který jste vytvořili.

  2. V části Automatizace procesů vyberte Runbooky.

  3. Vyberte Vytvořit runbook.

  4. Runbook pojmenujte a jako typ runbooku vyberte PowerShell .

  5. Vyberte runbook, který jste vytvořili, a pak vyberte tlačítko Upravit .

  6. 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.

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

Publikování uživatelského rozhraní runbooku

Vytvoření webhooku

Vytvořte webhook, který aktivuje nově vytvořený runbook.

  1. V části Prostředky publikovaného runbooku vyberte Webhooky.

  2. Vyberte Přidat webhook.

    Tlačítko Přidat webhook

  3. Vyberte Vytvořit nový webhook.

  4. Pojmenujte webhook, nastavte datum vypršení platnosti a zkopírujte adresu URL.

    Důležité

    Po vytvoření se adresa URL nedá zobrazit. Nezapomeňte uložit kopii na bezpečné místo, kde k ní budete mít přístup po zbytek tohoto průvodce.

  5. Vyberte Parametry a nastavení spuštění a pak vyberte OK. Nezadávejte žádné parametry. Tlačítko Vytvořit bude povoleno.

  6. Vyberte OK a pak vyberte Vytvořit.

    Vytvoření nového uživatelského rozhraní webhooku

Vytvoření odběru Event Gridu

Vytvořte odběr Event Gridu prostřednictvím Azure Portal.

  1. Přejděte do trezoru klíčů a vyberte kartu Události .

    Karta Události v Azure Portal

  2. Vyberte tlačítko Odběr události .

  3. Vytvořte popisný název předplatného.

  4. Zvolte Schéma Event Gridu.

  5. Téma Prostředek by měl být trezor klíčů, u kterého chcete monitorovat změny stavu.

  6. V části Filtrovat na typy událostí nechejte vybrané všechny možnosti (9 vybraných).

  7. Jako Typ koncového bodu vyberte Webhook.

  8. 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 .

  9. V kontextovém podokně vyberte Potvrdit výběr .

  10. Vyberte Vytvořit.

    Vytvoření odběru událostí

Testování a ověření

Ověřte, že je váš odběr služby Event Grid správně nakonfigurovaný. Tento test předpokládá, že jste se přihlásili k odběru oznámení Vytvoření nové verze tajného kódu v části Vytvoření 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íčů.

Test konfigurace odběru Event Gridu

Podokno Vytvoření tajného kódu

  1. Na webu Azure Portal přejděte na svůj trezor klíčů.

  2. Vytvořte nový tajný klíč. Pro účely testování nastavte datum vypršení platnosti na další den.

  3. Na kartě Události ve vašem trezoru klíčů vyberte odběr event gridu, který jste vytvořili.

  4. V části Metriky zkontrolujte, jestli byla zachycena událost. Očekávají se dvě události: SecretNewVersion a SecretNearExpiry. Tyto události ověřují, že služba Event Grid úspěšně zachytila změnu stavu tajného kódu ve vašem trezoru klíčů.

    Podokno Metriky: Kontrola zachycených událostí

  5. Přejděte do svého účtu služby Automation.

  6. Vyberte kartu Runbooky a pak vyberte runbook, který jste vytvořili.

  7. Vyberte kartu Webhooky a ověřte, že časové razítko poslední aktivace je do 60 sekund od vytvoření nového tajného kódu. Tento výsledek potvrzuje, že Event Grid provedl příspěvek do webhooku s podrobnostmi o události změny stavu ve vašem trezoru klíčů a aktivaci webhooku.

    Karta Webhooky, časové razítko Naposledy aktivované

  8. Vraťte se do runbooku a vyberte kartu Přehled .

  9. Podívejte se na seznam Poslední úlohy . Měli byste vidět, že se vytvořila úloha a že je stav dokončený. Tím se potvrdí, že webhook aktivoval runbook, aby spustil svůj skript.

    Seznam posledních úloh webhooku

  10. Vyberte nedávnou úlohu a podívejte se na požadavek POST odeslaný 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 "event type" 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í potíží

Nemůžete vytvořit odběr událostí.

Znovu zaregistrujte Službu 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ě provedli všechny tyto kroky, 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 vyhledávání změn stavu tajných kódů v trezorech klíčů používali systém založený na dotazování, můžete teď začít používat tuto funkci oznámení. Testovací skript v runbooku můžete také nahradit kódem pro programové obnovení tajných kódů, když se blíží jejich vypršení.

Další informace: