Udostępnij za pośrednictwem


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

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.

Schemat blokowy HTTP POST

Tworzenie konta usługi Automation

Utwórz konto usługi Automation za pośrednictwem witryny Azure Portal:

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

  2. W polu wyszukiwania wpisz Konta usługi Automation.

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

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

Po dokonaniu gotowości konta usługi Automation 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 pozycję 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 pośrednictwem witryny Azure Portal.

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

    Karta Zdarzenia w witrynie 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 (wybrane 9).

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

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

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

  10. Wybierz pozycję Utwórz.

    Tworzenie subskrypcji zdarzeń

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.

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. Dla celów testowych 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. 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.

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

    Karta elementy webhook, sygnatura czasowa ostatniego wyzwalacza

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

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

    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 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: