Självstudie: Konfigurera Event Hubs för Azure Cloud HSM

Om du har konfigurerat händelseloggning för Azure Cloud HSM har du redan en fungerande diagnostikinställning i ditt Cloud HSM-kluster som dirigerar HsmServiceOperations loggar till Lagring och Log Analytics. Om du vill lägga till Event Hubs som mål lägger du till ett tredje mål i samma diagnostikinställning eller skapar en ny som riktar sig mot Event Hubs.

Azure Monitor diagnostikinställningar stöder flera mål samtidigt. Eftersom din Log Analytics-pipeline redan bevisar att loggutmatning från Cloud HSM fungerar, blir Event Hubs ett annat mål som tar emot samma kategori HsmServiceOperations.

I den här handledningen kommer du att:

  • Skapa ett Event Hub-namnområde och en händelsehubb för Cloud HSM-loggar.
  • Konfigurera auktoriseringsregler med minimerade behörigheter.
  • Uppdatera diagnostikinställningarna för att strömma loggar till Event Hubs.
  • Kontrollera att Event Hubs tar emot HSM-åtgärdshändelser i Molnet.

Förutsättningar

Kontrollera att loggresursgruppen finns

Event Hubs bör distribueras till samma resursgrupp som innehåller ditt lagringskonto och Log Analytics arbetsyta för loggning av drifthändelser. Om du inte har konfigurerat loggning av driftshändelser följer du först anvisningarna i Konfiguration och frågeåtgärdshändelseloggning för Azure Cloud HSM.

Kontrollera att din målresursgrupp finns:

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

Skapa ett Event Hubs-namnområde

Namnområdet är containern som innehåller en eller flera händelsehubbar. Använd standardnivån , som krävs för integrering av diagnostikinställningar.

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

Viktiga alternativ:

  • Standard-SKU: Basic-nivån stöder inte diagnostikinställningar som mål.
  • Kapacitet 1: En dataflödesenhet (1 MB/s ingress, 2 MB/s utgående) räcker för HSM-granskningsloggar.
  • Autoinflate inaktiverat: HSM-loggvolymen är låg, så autoinflate är inte nödvändigt.

Skapa en händelsehubb i namnområdet

Om du vill ta emot Cloud HSM-loggarna skapar du en händelsehubb i namnområdet.

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

Viktiga alternativ:

  • Partitionsantal 2: Två partitioner räcker för HSM-granskningsloggens dataflöde.
  • Kvarhållningstid 168 timmar: Behåll meddelanden i sju dagar (det högsta för Standard-nivån).
  • Rensningsprincip Ta bort: Ta bort meddelanden när kvarhållningsperioden har upphört att gälla.

Skapa en konsumentgrupp

Skapa en dedikerad konsumentgrupp för nedströmsbearbetning. Reservera standardgruppen $Default för andra användningsområden.

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

Skapa en auktoriseringsregel

Diagnostikinställningar behöver Skicka behörighet för att skicka loggar till händelsehubben. Skapa en princip för delad åtkomst med endast den behörighet som krävs.

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

Anmärkning

Den här regeln beviljar endast Send behörighet, inte Listen, eller Manage. Följ principen om lägsta behörighet. Dina underordnade användare (till exempel Azure Functions eller Stream Analytics) bör använda en separat regel med behörigheten Listen.

Hämta resurs-ID:t för auktoriseringsregeln

Hämta resurs-ID:t för auktoriseringsregeln för användning i diagnostikinställningen.

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"

Spara det här värdet för användning i nästa steg.

Uppdatera diagnostikinställningen för att lägga till Event Hubs

Du har två alternativ för att lägga till Event Hubs som mål:

Den här metoden uppdaterar din befintliga diagnostikinställning för att lägga till Event Hubs samtidigt som lagring och Log Analytics behålls.

# 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}]'

Viktigt!

Både CLI- och PowerShell-kommandon ersätter hela diagnostikinställningen om namnet matchar ett befintligt. Du måste inkludera lagringskontot och arbetsytan igen, annars tas dessa mål bort.

Alternativ B: Skapa en separat diagnostikinställning endast för Event Hubs

Om du föredrar att behålla den befintliga inställningen oförändrad och lägga till en till,

# 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}]'

Anmärkning

Azure stöder upp till fem diagnostikinställningar per resurs. En andra inställning är giltig och håller problemen åtskilda.

Kontrollera att Event Hubs tar emot meddelanden

När du har konfigurerat diagnostikinställningen kontrollerar du att Event Hubs tar emot Cloud HSM-loggar.

Kontrollera diagnostikinställningen i portalen

  1. I Azure-portalen går du till ditt Cloud HSM-kluster.
  2. Under Övervakning väljer du Diagnostikinställningar.
  3. Bekräfta att Event Hubs är listad som en destination.

Kontrollera Mått för Event Hubs

Kör följande kommando för att kontrollera inkommande meddelanden under den senaste timmen:

# 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

Visa meddelanden (valfritt)

Om du vill läsa några meddelanden för att bekräfta innehåll skapar du en lyssningsregel :

# 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

Du kan använda den här anslutningssträngen med Azure Event Hubs Explorer, Event Hubs-tillägget för Visual Studio Code eller ett Python-skript för att visa meddelanden.