Udostępnij za pośrednictwem


Odbieranie i odpowiadanie na powiadomienia magazynu kluczy za pomocą Azure Event Grid

Integracja usługi Azure Key Vault z usługą Azure Event Grid umożliwia użytkownikowi powiadamianie o zmianie stanu wpisu tajnego przechowywanego w magazynie kluczy. Aby zapoznać się z omówieniem tej funkcji, zobacz Monitorowanie Key Vault za pomocą usługi Event Grid.

W tym przewodniku opisano sposób odbierania powiadomień Key Vault za pośrednictwem usługi Event Grid oraz reagowania na zmiany stanu za pośrednictwem Azure Automation.

Wymagania wstępne

Pojęcia

Event Grid to usługa zdarzeń dla chmury. Wykonując kroki opisane w tym przewodniku, zasubskrybujesz zdarzenia dla Key Vault i kierować 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 wysyła wpis HTTP DO punktu końcowego. Następnie element web hook wyzwala wykonywanie automatyzacji skryptu programu PowerShell.

Schemat blokowy HTTP POST

Tworzenie konta usługi Automation

Utwórz konto usługi Automation za pomocą Azure Portal:

  1. Przejdź do portal.azure.com i zaloguj się do subskrypcji.

  2. W polu wyszukiwania wprowadź ciąg Konta usługi Automation.

  3. W sekcji Usługi listy rozwijanej na pasku wyszukiwania wybierz pozycję Konta usługi Automation.

  4. Wybierz pozycję Dodaj.

    Okienko konta usługi Automation

  5. Wprowadź wymagane informacje w okienku Dodawanie konta usługi Automation , a następnie wybierz pozycję Utwórz.

Tworzenie elementu runbook

Gdy konto usługi Automation będzie gotowe, utwórz element Runbook.

Tworzenie interfejsu użytkownika elementu Runbook

  1. Wybierz utworzone konto usługi Automation.

  2. Wybierz pozycję Elementy Runbook w obszarze Automatyzacja procesów.

  3. Wybierz pozycję Utwórz element Runbook.

  4. Nadaj elementowi runbook nazwę i wybierz program PowerShell jako typ elementu Runbook.

  5. Wybierz utworzony element Runbook, a następnie wybierz przycisk Edytuj .

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

Publikowanie interfejsu użytkownika elementu Runbook

Tworzenie elementu webhook

Utwórz element webhook, aby wyzwolić nowo utworzony element Runbook.

  1. Wybierz pozycję Elementy webhook w sekcji Zasoby opublikowanego elementu Runbook.

  2. Wybierz pozycję Dodaj element webhook.

    Przycisk Dodaj element webhook

  3. Wybierz pozycję Utwórz nowy element webhook.

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

  5. Wybierz pozycję Parametry i uruchom ustawienia , a następnie wybierz przycisk OK. Nie wprowadzaj żadnych parametrów. Przycisk Utwórz zostanie włączony.

  6. Wybierz przycisk OK , a następnie wybierz pozycję Utwórz.

    Tworzenie nowego interfejsu użytkownika elementu webhook

Tworzenie subskrypcji usługi Event Grid

Utwórz subskrypcję usługi Event Grid za pomocą Azure Portal.

  1. Przejdź do magazynu kluczy i wybierz kartę Zdarzenia .

    Karta Zdarzenia w Azure Portal

  2. Wybierz przycisk Subskrypcja zdarzeń .

  3. Utwórz opisową nazwę subskrypcji.

  4. Wybierz pozycję Schemat usługi Event Grid.

  5. Zasób tematu powinien być magazynem kluczy, który chcesz monitorować pod kątem zmian stanu.

  6. W polu Filtruj do typów zdarzeń pozostaw zaznaczone wszystkie opcje (9 zaznaczonych).

  7. W polu Typ punktu końcowego wybierz pozycję Element webhook.

  8. Wybierz pozycję Wybierz punkt końcowy. W nowym okienku kontekstowym wklej adres URL elementu webhook z kroku Tworzenie elementu webhook w polu Punkt końcowy subskrybenta .

  9. Wybierz pozycję Potwierdź zaznaczenie w okienku kontekstowym.

  10. Wybierz przycisk Utwórz.

    Tworzenie subskrypcji zdarzeń

Testowanie i weryfikowanie

Sprawdź, czy subskrypcja usługi Event Grid została prawidłowo skonfigurowana. W tym teście założono, że zasubskrybujesz powiadomienie "Secret New Version Created" w subskrypcji Tworzenie usługi Event Grid i masz niezbędne uprawnienia do utworzenia nowej wersji wpisu tajnego w magazynie kluczy.

Testowanie konfiguracji subskrypcji usługi Event Grid

Okienko Tworzenie wpisu tajnego

  1. Przejdź do magazynu kluczy w witrynie Azure Portal.

  2. Utwórz nowy wpis tajny. Na potrzeby testowania ustaw datę wygaśnięcia na następny dzień.

  3. Na karcie Zdarzenia w magazynie kluczy wybierz utworzoną subskrypcję usługi Event Grid.

  4. W obszarze Metryki sprawdź, czy zdarzenie zostało przechwycone. Oczekuje się dwóch zdarzeń: SecretNewVersion i SecretNearExpiry. Te zdarzenia sprawdzają, czy usługa Event Grid pomyślnie przechwyciła zmianę stanu wpisu tajnego w magazynie kluczy.

    Okienko metryk: sprawdzanie pod kątem przechwyconych zdarzeń

  5. Przejdź do konta usługi Automation.

  6. Wybierz kartę Elementy Runbook , a następnie wybierz utworzony element Runbook.

  7. 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 wpis do elementu webhook ze szczegółami zdarzenia zmiany stanu w magazynie kluczy i że element webhook został wyzwolony.

    Karta elementy webhook, sygnatura czasowa ostatniego wyzwalania

  8. Wróć do elementu Runbook i wybierz kartę Przegląd .

  9. Przyjrzyj się liście Ostatnie zadania . Powinno być widoczne, że zadanie zostało utworzone i że stan został ukończony. Potwierdza to, że element webhook wyzwolił element Runbook, aby rozpocząć wykonywanie skryptu.

    Lista ostatnio używanych zadań elementu webhook

  10. 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 pasuje do zdarzenia, 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ń

Ponownie wyrejestruj usługę Event Grid i dostawcę magazynu kluczy u dostawców zasobów subskrypcji platformy Azure. Zobacz Dostawcy zasobów i typy zasobów platformy Azure.

Następne kroki

Gratulacje! Jeśli zostały prawidłowo wykonane wszystkie te kroki, możesz teraz przystąpić do programowego reagowania na zmiany stanu wpisów tajnych przechowywanych w magazynie kluczy.

Jeśli używasz systemu sondowania 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: