Odbieranie i odpowiadanie na powiadomienia magazynu kluczy za pomocą usługi Azure Event Grid
Integracja usługi Azure Key Vault z usługą Azure Event Grid umożliwia powiadomienie użytkownika po zmianie stanu wpisu tajnego przechowywanego w magazynie kluczy. Aby zapoznać się z omówieniem tej funkcji, zobacz Monitorowanie usługi Key Vault za pomocą usługi Event Grid.
W tym przewodniku opisano sposób odbierania powiadomień usługi Key Vault za pośrednictwem usługi Event Grid oraz reagowania na zmiany stanu za pośrednictwem usługi Azure Automation.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Magazyn kluczy w ramach subskrypcji platformy Azure. Możesz szybko utworzyć nowy magazyn kluczy, wykonując kroki opisane w artykule Ustawianie i pobieranie wpisu tajnego z usługi Azure Key Vault przy użyciu interfejsu wiersza polecenia platformy Azure.
Pojęcia
Event Grid to usługa zdarzeń dla chmury. Wykonując kroki opisane w tym przewodniku, zasubskrybujesz zdarzenia dla usługi Key Vault i kierujesz zdarzenia do usługi Automation. Gdy jeden z wpisów tajnych w magazynie kluczy wkrótce wygaśnie (zdefiniowany jako 30 dni przed datą wygaśnięcia), usługa Event Grid zostanie powiadomiona o zmianie stanu i spowoduje wysłanie żądania HTTP POST do punktu końcowego. Następnie element webhook wyzwala wykonywanie automatyzacji skryptu programu PowerShell.
Tworzenie konta usługi Automation
Utwórz konto usługi Automation za pośrednictwem witryny Azure Portal:
Przejdź do portal.azure.com i zaloguj się do subskrypcji.
W polu wyszukiwania wpisz Konta usługi Automation.
W sekcji Usługi listy rozwijanej na pasku wyszukiwania wybierz pozycję Konta usługi Automation.
Wybierz Dodaj.
Wprowadź wymagane informacje w okienku Dodawanie konta usługi Automation, a następnie wybierz pozycję Utwórz.
Tworzenie elementu runbook
Po dokonaniu gotowości konta usługi Automation utwórz element Runbook.
Wybierz utworzone konto usługi Automation.
Wybierz pozycję Elementy Runbook w obszarze Automatyzacja procesów.
Wybierz pozycję Utwórz element Runbook.
Nadaj elementowi runbook nazwę i wybierz pozycję PowerShell jako typ elementu Runbook.
Wybierz utworzony element Runbook, a następnie wybierz przycisk Edytuj .
Wprowadź następujący kod (na potrzeby testowania ) i wybierz przycisk Publikuj . Ta akcja zwraca wynik odebranego żądania 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."
}
Tworzenie elementu webhook
Utwórz element webhook, aby wyzwolić nowo utworzony element Runbook.
Wybierz pozycję Elementy webhook w sekcji Zasoby opublikowanego elementu Runbook.
Wybierz pozycję Dodaj element webhook.
Wybierz pozycję Utwórz nowy element webhook.
Nazwij element webhook, ustaw datę wygaśnięcia i skopiuj adres URL.
Ważne
Nie można wyświetlić adresu URL po jego utworzeniu. Upewnij się, że zapisano kopię w bezpiecznej lokalizacji, w której można uzyskać do niej dostęp w pozostałej części tego przewodnika.
Wybierz pozycję Parametry i uruchom ustawienia , a następnie wybierz przycisk OK. Nie wprowadzaj żadnych parametrów. Przycisk Utwórz zostanie włączony.
Wybierz przycisk OK , a następnie wybierz pozycję Utwórz.
Tworzenie subskrypcji usługi Event Grid
Utwórz subskrypcję usługi Event Grid za pośrednictwem witryny Azure Portal.
Przejdź do magazynu kluczy i wybierz kartę Zdarzenia .
Wybierz przycisk Subskrypcja zdarzeń.
Utwórz opisową nazwę subskrypcji.
Wybierz pozycję Schemat usługi Event Grid.
Zasób tematu powinien być magazynem kluczy, który chcesz monitorować pod kątem zmian stanu.
W polu Filtruj do typów zdarzeń pozostaw zaznaczone wszystkie opcje (wybrane 9).
W polu Typ punktu końcowego wybierz pozycję Element webhook.
Wybierz pozycję Wybierz punkt końcowy. W nowym okienku kontekstu wklej adres URL elementu webhook z kroku Tworzenie elementu webhook w polu Punkt końcowy subskrybenta.
Wybierz pozycję Potwierdź zaznaczenie w okienku kontekstu.
Wybierz pozycję Utwórz.
Testowanie i weryfikowanie
Sprawdź, czy subskrypcja usługi Event Grid została prawidłowo skonfigurowana. W tym teście przyjęto założenie, że zasubskrybujesz powiadomienie "Utworzono nową wersję wpisu tajnego" w subskrypcji usługi Event Grid i że masz uprawnienia niezbędne do utworzenia nowej wersji wpisu tajnego w magazynie kluczy.
Przejdź do magazynu kluczy w witrynie Azure Portal.
Utwórz nowy wpis tajny. Dla celów testowych ustaw datę wygaśnięcia na następny dzień.
Na karcie Zdarzenia w magazynie kluczy wybierz utworzoną subskrypcję usługi Event Grid.
W obszarze Metryki sprawdź, czy zdarzenie zostało przechwycone. Oczekiwane są dwa zdarzenia: SecretNewVersion i SecretNearExpiry. Te zdarzenia sprawdzają, czy usługa Event Grid pomyślnie przechwyciła zmianę stanu wpisu tajnego w magazynie kluczy.
Przejdź do konta usługi Automation.
Wybierz kartę Elementy Runbook , a następnie wybierz utworzony element Runbook.
Wybierz kartę Elementy webhook i upewnij się, że sygnatura czasowa "ostatnio wyzwolona" wynosi 60 sekund od momentu utworzenia nowego wpisu tajnego. Ten wynik potwierdza, że usługa Event Grid wykonała post do elementu webhook ze szczegółami zdarzenia zmiany stanu w magazynie kluczy i że element webhook został wyzwolony.
Wróć do elementu Runbook i wybierz kartę Przegląd .
Zapoznaj się z listą Ostatnie zadania . Powinno zostać wyświetlone, że zadanie zostało utworzone i że stan został ukończony. Potwierdza to, że element webhook wyzwolił element Runbook, aby rozpocząć wykonywanie skryptu.
Wybierz ostatnie zadanie i przyjrzyj się żądaniu POST wysłanemu z usługi Event Grid do elementu webhook. Sprawdź kod JSON i upewnij się, że parametry magazynu kluczy i typu zdarzenia są poprawne. Jeśli parametr "typ zdarzenia" w obiekcie JSON odpowiada zdarzeniu, które wystąpiło w magazynie kluczy (w tym przykładzie Microsoft.KeyVault.SecretNearExpiry), test zakończył się pomyślnie.
Rozwiązywanie problemów
Nie można utworzyć subskrypcji zdarzeń
Ponowne rejestrowanie usługi Event Grid i dostawcy magazynu kluczy u dostawców zasobów subskrypcji platformy Azure. Zobacz Dostawcy i typy zasobów platformy Azure.
Następne kroki
Gratulacje! Jeśli wszystkie te kroki zostały wykonane poprawnie, możesz teraz programowo reagować na zmiany stanu wpisów tajnych przechowywanych w magazynie kluczy.
Jeśli używasz systemu opartego na sondowaniu do wyszukiwania zmian stanu wpisów tajnych w magazynach kluczy, możesz teraz rozpocząć korzystanie z tej funkcji powiadomień. Możesz również zastąpić skrypt testowy w elemencie Runbook kodem, aby programowo odnowić wpisy tajne po wygaśnięciu.
Więcej informacji:
- Omówienie: Monitorowanie usługi Key Vault za pomocą usługi Azure Event Grid
- Instrukcje: odbieranie wiadomości e-mail po zmianie wpisu tajnego magazynu kluczy
- Schemat zdarzeń usługi Azure Event Grid na potrzeby usługi Azure Key Vault
- Omówienie usługi Azure Key Vault
- Omówienie usługi Azure Event Grid
- Omówienie usługi Azure Automation