Samouczek: konfigurowanie usługi Event Hubs dla modułu HSM w chmurze Azure

Jeśli skonfigurowano rejestrowanie zdarzeń operacyjnych dla modułu Azure Cloud HSM, masz już działające ustawienie diagnostyczne w klastrze HSM w chmurze, które kieruje dzienniki HsmServiceOperations do Azure Storage i Log Analytics. Aby dodać usługę Event Hubs jako miejsce docelowe, dodaj trzecie miejsce docelowe do tego samego ustawienia diagnostycznego lub utwórz nowe miejsce docelowe usługi Event Hubs.

Azure Monitor ustawienia diagnostyczne obsługują jednocześnie wiele miejsc docelowych. Ponieważ potok Log Analytics już potwierdza, że emisja dzienników z Cloud HSM działa, Event Hubs jest kolejnym punktem docelowym, który otrzymuje tę samą kategorię HsmServiceOperations.

W tym samouczku nauczysz się następujących rzeczy:

  • Utwórz przestrzeń nazw Event Hub i centrum zdarzeń Event Hub dla dzienników modułu HSM w chmurze.
  • Skonfiguruj reguły autoryzacji z uprawnieniami minimalnymi.
  • Zaktualizuj ustawienia diagnostyczne, aby przesyłać strumieniowo dzienniki do usługi Event Hubs.
  • Sprawdź, czy usługa Event Hubs odbiera zdarzenia operacji modułu HSM w chmurze.

Wymagania wstępne

  • Wdrożony i aktywowany zasób modułu HSM w chmurze Azure. Aby uzyskać więcej informacji, zapoznaj się z przewodnikiem wdrażania Azure Cloud HSM.
  • Ustawienia diagnostyczne wysyłające dzienniki zdarzeń operacyjnych do systemu magazynowania i Log Analytics. Aby uzyskać więcej informacji, zobacz Configure and query operation event logging for Azure Cloud HSM (Konfigurowanie i rejestrowanie zdarzeń operacji zapytań dla modułu HSM w chmurze Azure
  • Contributor lub Monitoring Contributor rola w grupie zasobów Moduł HSM w chmurze.

Sprawdź, czy grupa zasobów dzienników istnieje

Usługa Event Hubs powinna zostać wdrożona w tej samej grupie zasobów, która zawiera konto magazynu i obszar roboczy Log Analytics do rejestrowania zdarzeń operacyjnych. Jeśli nie skonfigurowano rejestrowania zdarzeń operacyjnych, najpierw postępuj zgodnie ze wskazówkami w Konfiguruj rejestrowanie zdarzeń operacji i wykonywanie zapytań dla Azure Cloud HSM.

Sprawdź, czy docelowa grupa zasobów istnieje:

az group show --name "<resource-group>" --query "{name:name, location:location}" --output table

Tworzenie przestrzeni nazw usługi Event Hubs

Przestrzeń nazw to kontener, który zawiera co najmniej jeden event hub. Użyj warstwy Standardowa , która jest wymagana do integracji ustawień diagnostycznych.

az eventhubs namespace create \
  --name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --location "<location>" \
  --sku Standard \
  --capacity 1 \
  --enable-auto-inflate false

Opcje klucza:

  • Jednostka SKU w warstwie Standardowa: warstwa Podstawowa nie obsługuje ustawień diagnostycznych jako miejsca docelowego.
  • Pojemność 1: Jedna jednostka przepływności (ruch przychodzący 1 MB/s, ruch wychodzący 2 MB/s) jest wystarczająca dla dzienników inspekcji modułu HSM.
  • Automatyczne rozszerzanie wyłączone: wolumin dziennika modułu HSM jest niski, więc autoinflate nie jest konieczne.

Utwórz centrum zdarzeń w [przestrzeni nazw]

Aby odbierać dzienniki modułu HSM w chmurze, utwórz centrum zdarzeń w przestrzeni nazw.

az eventhubs eventhub create \
  --name "cloudhsm-logs" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --partition-count 2 \
  --retention-time-in-hours 168 \
  --cleanup-policy Delete

Opcje klucza:

  • Liczba partycji 2: Dwie partycje są wystarczające dla przepływności dziennika inspekcji modułu HSM.
  • Czas przechowywania 168 godzin: zachowaj komunikaty przez siedem dni (maksymalnie dla warstwy Standardowa).
  • Zasada usuwania: Usuwanie komunikatów po wygaśnięciu okresu przechowywania.

Tworzenie grupy odbiorców

Utwórz dedykowaną grupę odbiorców na potrzeby przetwarzania podrzędnego. Zarezerwuj grupę domyślną $Default dla innych zastosowań.

az eventhubs eventhub consumer-group create \
  --name "azure-cloud-hsm" \
  --namespace-name "<eventhub-namespace>" \
  --eventhub-name "cloudhsm-logs" \
  --resource-group "<resource-group>"

Tworzenie reguły autoryzacji

Ustawienia diagnostyczne wymagają uprawnienia Wyślij, aby przesłać dzienniki do centrum zdarzeń. Utwórz zasady dostępu współdzielonego tylko z wymaganymi uprawnieniami.

az eventhubs namespace authorization-rule create \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --rights Send

Uwaga / Notatka

Ta reguła przyznaje tylko Send uprawnienia, a nie Listen, lub Manage. Przestrzegaj reguły najmniejszych uprawnień. Odbiorcy podrzędni (tacy jak Azure Functions lub Stream Analytics) powinni używać oddzielnej reguły z uprawnieniami Listen.

Pobierz identyfikator zasobu reguły autoryzacji

Pobierz identyfikator zasobu reguły autoryzacji do zastosowania w ustawieniach diagnostycznych.

authRuleId=$(az eventhubs namespace authorization-rule show \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --query id --output tsv)

echo "Auth Rule ID: $authRuleId"

Zapisz tę wartość do użycia w następnym kroku.

Aktualizowanie ustawienia diagnostycznego w celu dodania usługi Event Hubs

Dostępne są dwie opcje dodawania usługi Event Hubs jako miejsca docelowego:

To podejście aktualizuje istniejącą konfigurację diagnostyczną, dodając usługę Event Hubs, przy zachowaniu Storage i Log Analytics.

# Set your resource group variables
hsmResourceGroup="<resource-group>"
logsResourceGroup="<resource-group>"

# Find the HSM cluster name (auto-generated during deployment)
hsmClusterName=$(az resource list \
  --resource-group $hsmResourceGroup \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --query "[0].name" --output tsv)
echo "HSM Cluster: $hsmClusterName"

# Get the HSM cluster resource ID
hsmResourceId=$(az resource show \
  --resource-group $hsmResourceGroup \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --name $hsmClusterName \
  --query id --output tsv)

# Get your existing storage account ID
storageAccountId=$(az storage account list \
  --resource-group $logsResourceGroup \
  --query "[0].id" --output tsv)

# Get your existing Log Analytics workspace ID
workspaceId=$(az monitor log-analytics workspace list \
  --resource-group $logsResourceGroup \
  --query "[0].id" --output tsv)

# Get the Event Hub auth rule ID
authRuleId=$(az eventhubs namespace authorization-rule show \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group $logsResourceGroup \
  --query id --output tsv)

# Update the diagnostic setting with all three destinations
az monitor diagnostic-settings create \
  --name "<diagnostic-setting-name>" \
  --resource $hsmResourceId \
  --storage-account $storageAccountId \
  --workspace $workspaceId \
  --event-hub "cloudhsm-logs" \
  --event-hub-rule $authRuleId \
  --logs '[{"category":"HsmServiceOperations","enabled":true}]'

Ważna

Polecenia CLI i PowerShell zastępują całe ustawienie diagnostyczne, jeśli nazwa odpowiada istniejącej. Musisz ponownie dołączyć konto magazynu i obszar roboczy lub usunąć te miejsca docelowe.

Opcja B: Utwórz oddzielne ustawienie diagnostyczne tylko dla usługi Event Hubs

Jeśli wolisz zachować istniejące ustawienie bez zmian i dodać drugie,

# Find the HSM cluster name
hsmClusterName=$(az resource list \
  --resource-group "<resource-group>" \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --query "[0].name" --output tsv)

hsmResourceId=$(az resource show \
  --resource-group "<resource-group>" \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --name $hsmClusterName \
  --query id --output tsv)

authRuleId=$(az eventhubs namespace authorization-rule show \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --query id --output tsv)

az monitor diagnostic-settings create \
  --name "chsm-eventhub-diagnostic-setting" \
  --resource $hsmResourceId \
  --event-hub "cloudhsm-logs" \
  --event-hub-rule $authRuleId \
  --logs '[{"category":"HsmServiceOperations","enabled":true}]'

Uwaga / Notatka

Azure obsługuje maksymalnie pięć ustawień diagnostycznych na zasób. Drugie ustawienie jest prawidłowe i utrzymuje obawy oddzielone.

Sprawdzanie, czy usługa Event Hubs odbiera komunikaty

Po skonfigurowaniu ustawienia diagnostycznego sprawdź, czy usługa Event Hubs odbiera dzienniki modułu HSM w chmurze.

Sprawdzanie ustawienia diagnostycznego w portalu

  1. W portalu Azure przejdź do klastra modułu HSM w chmurze.
  2. W obszarze Monitorowanie wybierz pozycję Ustawienia diagnostyczne.
  3. Upewnij się, że usługa Event Hubs jest wyświetlana jako miejsce docelowe.

Sprawdzanie metryk usługi Event Hubs

Uruchom następujące polecenie, aby sprawdzić komunikaty przychodzące w ciągu ostatniej godziny:

# Get your subscription ID
subId=$(az account show --query id --output tsv)

# Check incoming messages (last 1 hour)
az monitor metrics list \
  --resource "/subscriptions/$subId/resourceGroups/<resource-group>/providers/Microsoft.EventHub/namespaces/<eventhub-namespace>" \
  --metric "SuccessfulRequests" \
  --interval PT1H \
  --output table

Wyświetlanie komunikatów (opcjonalnie)

Jeśli chcesz odczytać kilka komunikatów w celu potwierdzenia zawartości, utwórz regułę nasłuchiwania :

# Create a Listen rule for your consumer
az eventhubs namespace authorization-rule create \
  --name "ConsumerListenRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --rights Listen

# Get the connection string
az eventhubs namespace authorization-rule keys list \
  --name "ConsumerListenRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --query primaryConnectionString --output tsv

Możesz użyć tej parametry połączenia z eksploratorem Azure Event Hubs, rozszerzeniem usługi Visual Studio Code Event Hubs lub skryptem Python do wyświetlania komunikatów.