Zelfstudie: Event Hubs configureren voor Azure Cloud HSM

Als u logboekregistratie van bewerkingsgebeurtenissen hebt geconfigureerd voor Azure Cloud HSM, hebt u al een werkende diagnostische instelling op uw Cloud HSM-cluster waarmee logboeken HsmServiceOperations worden gerouteerd naar Storage en Log Analytics. Als u Event Hubs als bestemming wilt toevoegen, voegt u een derde bestemming toe aan dezelfde diagnostische instelling of maakt u een nieuwe die is gericht op Event Hubs.

Azure Monitor diagnostische instellingen ondersteunen meerdere bestemmingen tegelijk. Omdat uw Log Analytics-pijplijn al bewijst dat logboekuitgifte van Cloud HSM werkt, wordt Event Hubs een andere bestemming die dezelfde HsmServiceOperations categorie ontvangt.

In deze handleiding leert u:

  • Maak een Event Hub-naamruimte en Event Hub voor Cloud HSM-logboeken.
  • Configureer autorisatieregels met machtigingen voor minimale bevoegdheden.
  • Werk diagnostische instellingen bij om logboeken naar Event Hubs te streamen.
  • Controleer of Event Hubs cloud-HSM-bewerkingsevenementen ontvangt.

Vereiste voorwaarden

Controleer of de resourcegroep voor de logboeken bestaat.

Event Hubs moet worden geïmplementeerd in dezelfde resourcegroep die uw opslagaccount bevat en Log Analytics werkruimte voor operationele gebeurtenislogboekregistratie. Als u de logboekregistratie van operationele gebeurtenissen niet hebt ingesteld, volgt u eerst de richtlijnen in Logboekregistratie van configuratie- en querybewerkingen voor Azure Cloud HSM.

Controleer of uw doelresourcegroep bestaat:

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

Een Event Hubs-naamruimte maken

De naamruimte is de container die een of meer Event Hubs bevat. Gebruik de Standard-laag , die vereist is voor de integratie van diagnostische instellingen.

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

Belangrijkste opties:

  • Standard-SKU: De Basic-laag biedt geen ondersteuning voor diagnostische instellingen als bestemming.
  • Capaciteit 1: Eén doorvoereenheid (1 MB/s inkomend verkeer, 2 MB/s uitgaand verkeer) is voldoende voor HSM-auditlogboeken.
  • Automatisch vergroten uitgeschakeld: HSM-logboekvolume is laag, dus automatisch vergroten is niet nodig.

Een Event Hub maken in de naamruimte

Als u de Cloud HSM-logboeken wilt ontvangen, maakt u een Event Hub in de naamruimte.

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

Belangrijkste opties:

  • Aantal partities 2: twee partities zijn voldoende voor doorvoer van HSM-auditlogboeken.
  • Bewaartijd 168 uur: Berichten gedurende zeven dagen bewaren (het maximum voor de Standard-laag).
  • Opschoonbeleid Verwijderen: Berichten verwijderen nadat de bewaarperiode is verlopen.

Een consumentengroep maken

Maak een speciale consumentengroep voor downstreamverwerking. Reserveer de standaardgroep $Default voor ander gebruik.

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

Een autorisatieregel maken

Diagnostische instellingen hebben een machtiging Verzenden nodig om logboeken naar de Event Hub te pushen. Maak een beleid voor gedeelde toegang met alleen de vereiste machtiging.

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

Opmerking

Deze regel verleent alleen Send machtigingen, niet Listen, of Manage. Volg het principe van minimale bevoegdheden. Uw downstreamgebruikers (zoals Azure Functions of Stream Analytics) moeten een afzonderlijke regel gebruiken met Listen-machtiging.

De resource-ID van de autorisatieregel ophalen

Haal de resource-ID van de autorisatieregel op voor gebruik in de diagnostische instellingen.

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"

Sla deze waarde op voor gebruik in de volgende stap.

De diagnostische instelling bijwerken om Event Hubs toe te voegen

U hebt twee opties voor het toevoegen van Event Hubs als bestemming:

Met deze aanpak worden uw bestaande diagnostische instellingen bijgewerkt om Event Hubs toe te voegen, terwijl zowel de opslag als Log Analytics behouden blijven.

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

Belangrijk

Zowel CLI- als PowerShell-opdrachten vervangen de volledige diagnostische instelling als de naam overeenkomt met een bestaande. U moet het opslagaccount en de werkruimte opnieuw opnemen of deze bestemmingen worden verwijderd.

Optie B: Alleen voor Event Hubs een afzonderlijke diagnostische instelling maken

Als u de bestaande instelling liever ongewijzigd wilt houden en een tweede instelling wilt toevoegen,

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

Opmerking

Azure ondersteunt maximaal vijf diagnostische instellingen per resource. Een tweede instelling is geldig en houdt zorgen gescheiden.

Controleren of Event Hubs berichten ontvangt

Nadat u de diagnostische instelling hebt geconfigureerd, controleert u of Event Hubs Cloud HSM-logboeken ontvangt.

Controleer de diagnostische instelling in de portal

  1. Ga in de Azure-portal naar uw Cloud HSM-cluster.
  2. Selecteer Diagnostische instellingen onder Controle.
  3. Controleer of Event Hubs wordt vermeld als een bestemming.

Metrische gegevens van Event Hubs controleren

Voer de volgende opdracht uit om binnenkomende berichten in het afgelopen uur te controleren:

# 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

Berichten weergeven (optioneel)

Als u enkele berichten wilt lezen om inhoud te bevestigen, maakt u een listen-regel :

# 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

U kunt deze verbindingsreeks gebruiken met Azure Event Hubs Explorer, de Visual Studio Code Event Hubs-extensie of een Python script om berichten weer te geven.