Raccogli i log di Azure API Management
Parser Version: 1.0
Questo documento spiega come creare un feed Azure Event Hub per importare i log di Azure API Management in Google Security Operations.
Azure API Management è una piattaforma di gestione ibrida e multi-cloud per le API in tutti gli ambienti. Aiuta le organizzazioni a pubblicare API per sviluppatori esterni, partner e interni per sfruttare il potenziale dei propri dati e servizi. API Management fornisce strumenti per l'individuazione delle API, funzionalità di gateway, criteri di sicurezza, analisi e coinvolgimento degli sviluppatori. I log di diagnostica acquisiscono informazioni dettagliate sulle operazioni di API Gateway, tra cui richieste, risposte ed errori.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Accesso con privilegi al portale Microsoft Azure con autorizzazioni per:
- Crea spazi dei nomi degli hub di evento
- Crea hub degli eventi
- Configurare le impostazioni di diagnostica per Azure API Management
- Gestisci policy di accesso
Un'istanza del servizio Azure API Management esistente
Crea spazio dei nomi dell'hub eventi
Uno spazio dei nomi degli hub di evento è un contenitore di gestione per uno o più hub di evento.
- Nel portale Azure, cerca Event Hubs.
- Fai clic su + Crea.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Abbonamento Seleziona il tuo abbonamento Azure Gruppo di risorse Seleziona esistente o crea nuovo Nome dello spazio dei nomi Inserisci un nome univoco (ad esempio, secops-apim-eventhub).Località Seleziona la regione (ad esempio, East US)Livello di prezzo Standard (consigliato per la produzione) Unità di throughput Inizia con 1, attiva il gonfiaggio automatico (opzione consigliata) Fai clic su Review + create (Rivedi e crea).
Rivedi la panoramica e fai clic su Crea.
Attendi il completamento del deployment (1-2 minuti).
Crea hub eventi
- Dopo il deployment dello spazio dei nomi, vai allo spazio dei nomi dell'hub di evento.
- Nel menu di navigazione a sinistra, seleziona Hub eventi in Entità.
- Fai clic su + Event Hub.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Nome Inserisci un nome univoco (ad esempio, apim-logs).Conteggio partizioni 40 (consigliato per uno scaling ottimale di Google SecOps) Conservazione dei messaggi 7 giorni (minimo consigliato) Acquisizione Disattivato (non necessario per Google SecOps) Fai clic su Crea.
Recupera la stringa di connessione dell'hub di eventi
Google SecOps richiede una stringa di connessione per l'autenticazione a Event Hub.
Opzione A: stringa di connessione a livello di spazio dei nomi (consigliata)
- Vai allo spazio dei nomi dell'hub di evento.
- Nel menu di navigazione a sinistra, seleziona Criteri di accesso condiviso in Impostazioni.
- Fai clic sulla policy predefinita RootManageSharedAccessKey.
- Copia la stringa di connessione - chiave primaria.
- Salva questa stringa di connessione in modo sicuro.
Esempio:
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==
Opzione B: stringa di connessione a livello di hub eventi
- Vai all'hub di evento (non allo spazio dei nomi).
- Nel menu di navigazione a sinistra, seleziona Criteri di accesso condiviso in Impostazioni.
- Fai clic su + Aggiungi per creare una nuova policy.
- Fornisci i seguenti dettagli di configurazione:
- Nome criterio: inserisci un nome descrittivo (ad esempio
chronicle-read). - Autorizzazioni: seleziona Ascolta (accesso di sola lettura)
- Nome criterio: inserisci un nome descrittivo (ad esempio
- Fai clic su Crea.
- Fai clic sulla policy appena creata.
- Copia la stringa di connessione - chiave primaria.
Salva questa stringa di connessione in modo sicuro.
Configura Azure API Management per lo streaming a Event Hub
- Nel portale Azure, cerca Servizi di gestione API.
- Seleziona l'istanza del servizio API Management.
- Nel menu di navigazione a sinistra, seleziona Impostazioni di diagnostica in Monitoraggio.
- Fai clic su + Aggiungi impostazione di diagnostica.
- Fornisci i seguenti dettagli di configurazione:
- Nome impostazione diagnostica: inserisci un nome descrittivo (ad esempio
apim-to-secops). - Nella sezione Log, seleziona le seguenti categorie:
- GatewayLogs: log di richieste e risposte del gateway API
- WebSocketConnectionLogs: log delle connessioni WebSocket (se applicabile)
- DeveloperPortalAuditLogs: log di controllo del Developer Portal (se applicabile)
- GatewayLlmLogs: log del gateway AI generativa (se applicabile)
- GatewayMCPLogs: log del server Model Context Protocol (MCP), se applicabile
- Nella sezione Dettagli destinazione, seleziona la casella di controllo Trasmetti in streaming a un hub eventi.
- Abbonamento: seleziona l'abbonamento contenente lo spazio dei nomi dell'hub eventi.
- Spazio dei nomi dell'hub eventi: seleziona lo spazio dei nomi creato in precedenza, ad esempio
secops-apim-eventhub. - Nome dell'hub eventi: seleziona l'hub eventi che hai creato (ad esempio,
apim-logs). - Nome policy dell'hub eventi: seleziona RootManageSharedAccessKey o una policy personalizzata con autorizzazioni di invio.
- Nome impostazione diagnostica: inserisci un nome descrittivo (ad esempio
Fai clic su Salva.
(Facoltativo) Configura Azure Blob Storage per il checkpoint
Google SecOps può utilizzare l'archiviazione BLOB di Azure per archiviare i checkpoint di Event Hub, che tengono traccia degli eventi elaborati. In questo modo si evita l'importazione duplicata se il feed viene temporaneamente interrotto.
Crea un account di archiviazione per il checkpoint
- Nel portale Azure, cerca Account di archiviazione.
- Fai clic su + Crea.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Abbonamento Seleziona il tuo abbonamento Azure Gruppo di risorse Utilizza lo stesso gruppo di risorse di Event Hub Nome account di archiviazione Inserisci un nome univoco (ad esempio, secopsapimcheckpoint).Regione Stessa regione dell'hub di eventi Prestazioni Standard Ridondanza Archiviazione con ridondanza locale (LRS) Fai clic su Review + create (Rivedi e crea).
Fai clic su Crea.
Crea contenitore blob
- Vai all'account di archiviazione che hai appena creato.
- Nel riquadro di navigazione a sinistra, seleziona Container nella sezione Archiviazione dati.
- Fai clic su + Contenitore.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
checkpoints - Livello di accesso pubblico: privato (nessun accesso anonimo)
- Nome: inserisci
- Fai clic su Crea.
Recuperare le credenziali dell'account di archiviazione
- Nell'account di archiviazione, seleziona Chiavi di accesso in Sicurezza e networking.
- Fai clic su Mostra chiavi.
- Copia e salva:
- Nome account di archiviazione: il nome del tuo account di archiviazione
- Chiave 1: il valore della chiave di accesso
Fornirai questi valori durante la creazione del feed Google SecOps.
(Facoltativo) Creare un gruppo di consumer dedicato
Per impostazione predefinita, Event Hub fornisce un gruppo di consumer denominato $Default. Per gli ambienti di produzione, ti consigliamo di creare un gruppo di consumatori dedicato per Google SecOps.
- Vai all'hub di evento (non allo spazio dei nomi).
- Nel menu di navigazione a sinistra, seleziona Gruppi di consumatori in Entità.
- Fai clic su + Gruppo di consumatori.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome descrittivo (ad esempio,
chronicle)
- Nome: inserisci un nome descrittivo (ad esempio,
Fai clic su Crea.
Configura un feed in Google SecOps per importare i log di Azure API Management
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Azure API Management Logs). - Seleziona Microsoft Azure Event Hub come Tipo di origine.
- Seleziona Azure API Management come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
Stringa di connessione dell'hub eventi: inserisci la stringa di connessione dell'hub eventi che hai acquisito in precedenza.
Se utilizzi la stringa di connessione a livello di spazio dei nomi:
- Assicurati di aver rimosso il parametro
EntityPath - Devi anche fornire il Nome dell'hub eventi nel campo successivo.
- Assicurati di aver rimosso il parametro
Se utilizzi la stringa di connessione a livello di hub eventi:
- Utilizza la stringa di connessione così com'è (incluso
EntityPath) - Il campo Nome hub eventi può essere lasciato vuoto
- Utilizza la stringa di connessione così com'è (incluso
Nome dell'hub di eventi: inserisci il nome dell'hub di eventi (ad esempio,
apim-logs)- Obbligatorio se utilizzi la stringa di connessione a livello di spazio dei nomi.
- Facoltativo se utilizzi la stringa di connessione a livello di hub eventi.
Gruppo di consumatori (facoltativo): inserisci il nome del gruppo di consumatori.
- Lascia vuoto per utilizzare il gruppo di consumatori
$Defaultpredefinito - Se hai creato un gruppo di consumatori dedicato, inseriscine il nome (ad esempio
chronicle).
- Lascia vuoto per utilizzare il gruppo di consumatori
Nome container Blob Storage (facoltativo): per il checkpoint, inserisci il nome del container (ad esempio
checkpoints).
Se fornisci l'archiviazione blob per il checkpoint:
- Nome account Azure Storage: inserisci il nome dell'account di archiviazione dalla configurazione del checkpoint
Chiave dell'account di archiviazione Azure: inserisci la chiave di accesso dalla configurazione del checkpoint
Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset
Etichette di importazione: l'etichetta da applicare agli eventi di questo feed
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Per saperne di più sui feed Google SecOps, consulta la documentazione sui feed Google SecOps.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
Level_label |
additional.fields |
Unita |
Sku_label |
additional.fields |
Unita |
apiId_label |
additional.fields |
Unita |
apiRevision_label |
additional.fields |
Unita |
apimSubscriptionId_label |
additional.fields |
Unita |
backendMethod_label |
additional.fields |
Unita |
backendProtocol_label |
additional.fields |
Unita |
backendResponseCode_label |
additional.fields |
Unita |
backendTime_label |
additional.fields |
Unita |
cache_label |
additional.fields |
Unita |
clientProtocol_label |
additional.fields |
Unita |
durationMs_label |
additional.fields |
Unita |
eventName_label |
additional.fields |
Unita |
eventid_label |
additional.fields |
Unita |
functionInvocationId_label |
additional.fields |
Unita |
functionName_label |
additional.fields |
Unita |
hostInstanceId_label |
additional.fields |
Unita |
hostVersion_label |
additional.fields |
Unita |
isRequestSuccess_label |
additional.fields |
Unita |
operationId_label |
additional.fields |
Unita |
productId_label |
additional.fields |
Unita |
properties.message |
metadata.description |
Mappato direttamente |
time |
metadata.event_timestamp |
Analizzato come ISO8601 |
has_principal |
metadata.event_type |
Mappato: true → STATUS_UPDATE |
operationName |
metadata.product_event_type |
Mappato direttamente |
DeploymentVersion |
metadata.product_version |
Mappato direttamente |
properties.method |
network.http.method |
Mappato direttamente |
properties.responseCode |
network.http.response_code |
Mappato direttamente |
properties.responseSize |
network.received_bytes |
Mappato direttamente |
properties.requestSize |
network.sent_bytes |
Mappato direttamente |
correlationId |
network.session_id |
Mappato direttamente |
properties.clientTlsCipherSuite |
network.tls.cipher |
Mappato direttamente |
properties.clientTlsVersion |
network.tls.version |
Mappato direttamente |
callerIpAddress |
principal.asset.ip |
Unita |
callerIpAddress |
principal.ip |
Unita |
location |
principal.location.name |
Mappato direttamente |
properties.url |
principal.url |
Mappato direttamente |
properties.userId |
principal.user.userid |
Mappato direttamente |
action |
security_result.action |
Unita |
resultType |
security_result.action |
Mappato: Succeeded → action |
category |
security_result.category_details |
Unita |
properties.category |
security_result.category_details |
Unita |
level |
security_result.severity |
Mappato direttamente |
resultType |
security_result.summary |
Mappato direttamente |
properties.appName |
target.application |
Mappato direttamente |
properties.processId |
target.process.pid |
Mappato direttamente |
roleInstance_label |
target.resource.attribute.labels |
Unita |
resourceId |
target.resource.product_object_id |
Mappato direttamente |
properties.backendUrl |
target.url |
Mappato direttamente |
| N/D | metadata.event_type |
Costante: GENERIC_EVENT |
| N/D | metadata.product_name |
Costante: AZURE API MANAGEMENT |
| N/D | metadata.vendor_name |
Costante: AZURE_API_MANAGEMENT |
| N/D | network.tls.version_protocol |
Costante: HTTP |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.