Azure API-Verwaltungslogs erfassen
Parserversion: 1.0
In diesem Dokument wird beschrieben, wie Sie einen Azure Event Hub-Feed erstellen, um Azure API-Verwaltungs-Logs in Google Security Operations aufzunehmen.
Azure API Management ist eine hybride Multi-Cloud-Verwaltungsplattform für APIs in allen Umgebungen. Unternehmen können damit APIs für externe, Partner- und interne Entwickler veröffentlichen, um das Potenzial ihrer Daten und Dienste zu erschließen. Die API-Verwaltung bietet Tools für die API-Erkennung, Gateway-Funktionen, Sicherheitsrichtlinien, Analysen und die Einbindung von Entwicklern. Die Diagnoseprotokolle enthalten detaillierte Informationen zu API-Gateway-Vorgängen, einschließlich Anfragen, Antworten und Fehlern.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
- Eine Google SecOps-Instanz
- Privilegierter Zugriff auf das Microsoft Azure-Portal mit folgenden Berechtigungen:
- Event Hub-Namespaces erstellen
- Event Hubs erstellen
- Diagnoseeinstellungen für Azure API-Verwaltung konfigurieren
- Zugriffsrichtlinien verwalten
Eine vorhandene Azure API Management-Dienstinstanz
Event Hub-Namespace erstellen
Ein Event Hub-Namespace ist ein Verwaltungscontainer für einen oder mehrere Event Hubs.
- Suchen Sie im Azure-Portal nach Event Hubs.
- Klicken Sie auf + Erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Abo Azure-Abo auswählen Ressourcengruppe Vorhandene auswählen oder neue erstellen Namespace-Name Geben Sie einen eindeutigen Namen ein (z. B. secops-apim-eventhub).Standort Wählen Sie die Region aus (z. B. East US).Preise Standard (für die Produktion empfohlen) Durchsatzeinheiten Beginnen Sie mit 1 und aktivieren Sie die automatische Skalierung (empfohlen). Klicken Sie auf Überprüfen + Erstellen.
Prüfen Sie die Übersicht und klicken Sie auf Erstellen.
Warten Sie, bis die Bereitstellung abgeschlossen ist (1–2 Minuten).
Event Hub erstellen
- Rufen Sie nach der Bereitstellung des Namespace den Event Hub-Namespace auf.
- Wählen Sie im linken Navigationsbereich unter Entitäten die Option Event Hubs aus.
- Klicken Sie auf + Event Hub.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Name Geben Sie einen eindeutigen Namen ein (z. B. apim-logs).Anzahl der Partitionen 40 (empfohlen für eine optimale Google SecOps-Skalierung) Nachrichtenaufbewahrung 7 Tage (empfohlenes Minimum) Aufnehmen Deaktiviert (für Google SecOps nicht erforderlich) Klicken Sie auf Erstellen.
Verbindungsstring für Event Hub abrufen
Google SecOps benötigt einen Verbindungsstring, um sich beim Event Hub zu authentifizieren.
Option A: Verbindungsstring auf Namespace-Ebene (empfohlen)
- Rufen Sie den Event Hub-Namespace auf.
- Wählen Sie im linken Navigationsbereich unter Einstellungen die Option Richtlinien für gemeinsamen Zugriff aus.
- Klicken Sie auf die Standardrichtlinie RootManageSharedAccessKey.
- Kopieren Sie den Verbindungsstring-Primärschlüssel.
- Speichern Sie diesen Verbindungsstring an einem sicheren Ort.
Beispiel:
Original: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=apim-logs Remove EntityPath: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
Option B: Verbindungsstring auf Event Hub-Ebene
- Rufen Sie den Event Hub auf (nicht den Namespace).
- Wählen Sie im linken Navigationsbereich unter Einstellungen die Option Richtlinien für gemeinsamen Zugriff aus.
- Klicken Sie auf + Hinzufügen, um eine neue Richtlinie zu erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Richtlinienname: Geben Sie einen aussagekräftigen Namen ein, z. B.
chronicle-read. - Berechtigungen: Wählen Sie Nur zuhören (Lesezugriff) aus.
- Richtlinienname: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Klicken Sie auf Erstellen.
- Klicken Sie auf die neu erstellte Richtlinie.
- Kopieren Sie den Verbindungsstring-Primärschlüssel.
Speichern Sie diesen Verbindungsstring an einem sicheren Ort.
Azure API-Verwaltung für das Streaming an Event Hub konfigurieren
- Suchen Sie im Azure-Portal nach API-Verwaltungsdiensten.
- Wählen Sie Ihre API-Verwaltungsdienstinstanz aus.
- Wählen Sie im linken Navigationsbereich unter Monitoring die Option Diagnoseeinstellungen aus.
- Klicken Sie auf + Diagnoseeinstellung hinzufügen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name der Diagnoseeinstellung: Geben Sie einen aussagekräftigen Namen ein, z. B.
apim-to-secops. - Wählen Sie im Abschnitt Logs die folgenden Kategorien aus:
- GatewayLogs: Anfrage- und Antwortlogs des API-Gateways
- WebSocketConnectionLogs: WebSocket-Verbindungsprotokolle (falls zutreffend)
- DeveloperPortalAuditLogs: Audit-Logs des Entwicklerportals (falls zutreffend)
- GatewayLlmLogs: Generative AI-Gateway-Logs (falls zutreffend)
- GatewayMCPLogs: MCP-Server-Logs (Model Context Protocol), falls zutreffend
- Wählen Sie im Abschnitt Zieldetails das Kästchen An einen Event Hub streamen aus.
- Abo: Wählen Sie das Abo aus, das Ihren Event Hub-Namespace enthält.
- Event Hub-Namespace: Wählen Sie den zuvor erstellten Namespace aus (z. B.
secops-apim-eventhub). - Event Hub-Name: Wählen Sie den von Ihnen erstellten Event Hub aus (z. B.
apim-logs). - Event Hub-Richtlinienname: Wählen Sie RootManageSharedAccessKey oder eine benutzerdefinierte Richtlinie mit Sendeberechtigungen aus.
- Name der Diagnoseeinstellung: Geben Sie einen aussagekräftigen Namen ein, z. B.
Klicken Sie auf Speichern.
(Optional) Azure Blob Storage für die Prüfpunkterstellung konfigurieren
Google SecOps kann Azure Blob Storage verwenden, um Event Hub-Prüfpunkte zu speichern, mit denen verfolgt wird, welche Ereignisse verarbeitet wurden. So wird verhindert, dass Daten doppelt aufgenommen werden, wenn der Feed vorübergehend unterbrochen wird.
Speicherkonto für die Prüfpunkterstellung erstellen
- Suchen Sie im Azure-Portal nach Speicherkonten.
- Klicken Sie auf + Erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Abo Azure-Abo auswählen Ressourcengruppe Verwenden Sie dieselbe Ressourcengruppe wie Event Hub. Storage-Kontoname Geben Sie einen eindeutigen Namen ein (z. B. secopsapimcheckpoint).Region Gleiche Region wie Event Hub Leistung Standard Redundanz LRS (lokal redundanter Speicher) Klicken Sie auf Überprüfen + Erstellen.
Klicken Sie auf Erstellen.
Blob-Container erstellen
- Rufen Sie das Speicherkonto auf, das Sie gerade erstellt haben.
- Wählen Sie im linken Navigationsbereich unter Datenspeicher die Option Container aus.
- Klicken Sie auf + Container.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
checkpointsein. - Öffentliche Zugriffsebene: Privat (kein anonymer Zugriff)
- Name: Geben Sie
- Klicken Sie auf Erstellen.
Anmeldedaten für Speicherkonto abrufen
- Wählen Sie im Speicherkonto unter Sicherheit + Netzwerk die Option Zugriffsschlüssel aus.
- Klicken Sie auf Schlüssel anzeigen.
- Kopieren und speichern:
- Storage-Kontoname: Der Name Ihres Storage-Kontos
- Schlüssel 1: Der Wert des Zugriffsschlüssels
Diese Werte geben Sie beim Erstellen des Google SecOps-Feeds an.
(Optional) Dedizierte Consumer-Gruppe erstellen
Standardmäßig stellt Event Hub eine Nutzergruppe namens $Default bereit. Für Produktionsumgebungen wird empfohlen, eine dedizierte Consumer-Gruppe für Google SecOps zu erstellen.
- Rufen Sie den Event Hub auf (nicht den Namespace).
- Wählen Sie im linken Navigationsbereich unter Entitäten die Option Nutzergruppen aus.
- Klicken Sie auf + Nutzergruppe.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen aussagekräftigen Namen ein (z. B.
chronicle).
- Name: Geben Sie einen aussagekräftigen Namen ein (z. B.
Klicken Sie auf Erstellen.
Feed in Google SecOps konfigurieren, um Azure API-Verwaltung-Logs aufzunehmen
- Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Azure API Management Logs. - Wählen Sie Microsoft Azure Event Hub als Quelltyp aus.
- Wählen Sie Azure API-Verwaltung als Logtyp aus.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
Event Hub-Verbindungsstring: Geben Sie den zuvor erfassten Event Hub-Verbindungsstring ein.
Wenn Sie einen Verbindungsstring auf Namespace-Ebene verwenden:
- Achten Sie darauf, dass Sie den Parameter
EntityPathentfernt haben. - Außerdem müssen Sie im nächsten Feld den Event Hub-Namen angeben.
- Achten Sie darauf, dass Sie den Parameter
Bei Verwendung eines Verbindungsstrings auf Event Hub-Ebene:
- Verbindungsstring unverändert verwenden (enthält
EntityPath) - Das Feld Event Hub-Name kann leer bleiben.
- Verbindungsstring unverändert verwenden (enthält
Event Hub-Name: Geben Sie den Event Hub-Namen ein (z. B.
apim-logs).- Erforderlich, wenn ein Verbindungsstring auf Namespace-Ebene verwendet wird.
- Optional, wenn ein Verbindungsstring auf Event Hub-Ebene verwendet wird.
Nutzergruppe (optional): Geben Sie den Namen der Nutzergruppe ein.
- Lassen Sie das Feld leer, um die Standard-Nutzergruppe
$Defaultzu verwenden. - Wenn Sie eine dedizierte Nutzergruppe erstellt haben, geben Sie deren Namen ein (z. B.
chronicle).
- Lassen Sie das Feld leer, um die Standard-Nutzergruppe
Blob-Speichercontainername (optional): Geben Sie für die Prüfpunkterstellung den Containernamen ein (z. B.
checkpoints).
Wenn Sie Blob-Speicher für die Prüfpunkterstellung bereitstellen:
- Azure-Speicherkontoname: Geben Sie den Speicherkontonamen aus der Prüfpunktkonfiguration ein.
Azure-Speicherkontoschlüssel: Geben Sie den Zugriffsschlüssel aus der Prüfpunktkonfiguration ein.
Asset-Namespace: Der Asset-Namespace
Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
Klicken Sie auf Weiter.
Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Weitere Informationen zu Google SecOps-Feeds finden Sie in der Dokumentation zu Google SecOps-Feeds.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
Level_label |
additional.fields |
Zusammengeführt |
Sku_label |
additional.fields |
Zusammengeführt |
apiId_label |
additional.fields |
Zusammengeführt |
apiRevision_label |
additional.fields |
Zusammengeführt |
apimSubscriptionId_label |
additional.fields |
Zusammengeführt |
backendMethod_label |
additional.fields |
Zusammengeführt |
backendProtocol_label |
additional.fields |
Zusammengeführt |
backendResponseCode_label |
additional.fields |
Zusammengeführt |
backendTime_label |
additional.fields |
Zusammengeführt |
cache_label |
additional.fields |
Zusammengeführt |
clientProtocol_label |
additional.fields |
Zusammengeführt |
durationMs_label |
additional.fields |
Zusammengeführt |
eventName_label |
additional.fields |
Zusammengeführt |
eventid_label |
additional.fields |
Zusammengeführt |
functionInvocationId_label |
additional.fields |
Zusammengeführt |
functionName_label |
additional.fields |
Zusammengeführt |
hostInstanceId_label |
additional.fields |
Zusammengeführt |
hostVersion_label |
additional.fields |
Zusammengeführt |
isRequestSuccess_label |
additional.fields |
Zusammengeführt |
operationId_label |
additional.fields |
Zusammengeführt |
productId_label |
additional.fields |
Zusammengeführt |
properties.message |
metadata.description |
Direkt zugeordnet |
time |
metadata.event_timestamp |
Geparst als ISO8601 |
has_principal |
metadata.event_type |
Zugeordnet: true → STATUS_UPDATE |
operationName |
metadata.product_event_type |
Direkt zugeordnet |
DeploymentVersion |
metadata.product_version |
Direkt zugeordnet |
properties.method |
network.http.method |
Direkt zugeordnet |
properties.responseCode |
network.http.response_code |
Direkt zugeordnet |
properties.responseSize |
network.received_bytes |
Direkt zugeordnet |
properties.requestSize |
network.sent_bytes |
Direkt zugeordnet |
correlationId |
network.session_id |
Direkt zugeordnet |
properties.clientTlsCipherSuite |
network.tls.cipher |
Direkt zugeordnet |
properties.clientTlsVersion |
network.tls.version |
Direkt zugeordnet |
callerIpAddress |
principal.asset.ip |
Zusammengeführt |
callerIpAddress |
principal.ip |
Zusammengeführt |
location |
principal.location.name |
Direkt zugeordnet |
properties.url |
principal.url |
Direkt zugeordnet |
properties.userId |
principal.user.userid |
Direkt zugeordnet |
action |
security_result.action |
Zusammengeführt |
resultType |
security_result.action |
Zugeordnet: Succeeded → action |
category |
security_result.category_details |
Zusammengeführt |
properties.category |
security_result.category_details |
Zusammengeführt |
level |
security_result.severity |
Direkt zugeordnet |
resultType |
security_result.summary |
Direkt zugeordnet |
properties.appName |
target.application |
Direkt zugeordnet |
properties.processId |
target.process.pid |
Direkt zugeordnet |
roleInstance_label |
target.resource.attribute.labels |
Zusammengeführt |
resourceId |
target.resource.product_object_id |
Direkt zugeordnet |
properties.backendUrl |
target.url |
Direkt zugeordnet |
| – | metadata.event_type |
Konstante: GENERIC_EVENT |
| – | metadata.product_name |
Konstante: AZURE API MANAGEMENT |
| – | metadata.vendor_name |
Konstante: AZURE_API_MANAGEMENT |
| – | network.tls.version_protocol |
Konstante: HTTP |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten