Raccogli i log di gestione delle API di Azure
Parser Version: 1.0
Questo documento spiega come creare un feed Azure Event Hub per acquisire i log di Gestione delle API di Azure in Google Security Operations.
Azure API Management è una piattaforma di gestione delle API ibrida e multi-cloud per le API in tutti gli ambienti. Aiuta le organizzazioni a pubblicare API per sviluppatori esterni, partner e interni per sbloccare il potenziale dei loro dati e servizi. La gestione delle API 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 di evento
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 velocità effettiva Inizia con 1, attiva l'aumento 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 di eventi
- Dopo il deployment dello spazio dei nomi, vai allo spazio dei nomi dell'hub di evento.
- Nel pannello 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 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 della 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 di 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 della policy: inserisci un nome descrittivo (ad esempio
chronicle-read) - Autorizzazioni: seleziona solo Ascolta (accesso di sola lettura)
- Nome della policy: inserisci un nome descrittivo (ad esempio
- Fai clic su Crea.
- Fai clic sulla policy appena creata.
- Copia la stringa di connessione della chiave primaria.
Salva questa stringa di connessione in modo sicuro.
Configura Azure API Management per lo streaming su Event Hub
- Nel portale Azure, cerca Servizi di gestione API.
- Seleziona l'istanza del servizio di gestione delle API.
- 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 di diagnostica: inserisci un nome descrittivo (ad esempio
apim-to-secops). - Nella sezione Log, seleziona le seguenti categorie:
- GatewayLogs: log di richieste e risposte di API Gateway
- WebSocketConnectionLogs: log delle connessioni WebSocket (se applicabile)
- DeveloperPortalAuditLogs: log di controllo del portale per sviluppatori (se applicabile)
- GatewayLlmLogs: log del gateway dell'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 degli hub di eventi: seleziona lo spazio dei nomi creato in precedenza (ad esempio,
secops-apim-eventhub). - Nome dell'hub di eventi: seleziona l'hub di eventi che hai creato (ad esempio,
apim-logs). - Nome della policy dell'hub di eventi: seleziona RootManageSharedAccessKey o una policy personalizzata con autorizzazioni di invio.
- Nome impostazione di 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 Hub eventi, 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 dell'account di archiviazione Inserisci un nome univoco (ad esempio secopsapimcheckpoint)Regione Stessa regione dell'hub di evento Prestazioni Standard Ridondanza LRS (archiviazione con ridondanza locale) Fai clic su Review + create (Rivedi e crea).
Fai clic su Crea.
Crea container di 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 + Container.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
checkpoints - Livello di accesso pubblico: privato (nessun accesso anonimo)
- Nome: inserisci
- Fai clic su Crea.
Ottieni le credenziali dell'account di archiviazione
- Nell'account di archiviazione, seleziona Chiavi di accesso in Sicurezza + 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) Crea un gruppo di consumatori 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 consumer 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 acquisire i log di Azure gestione delle API
- 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 gestione delle API come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
Stringa di connessione dell'hub di eventi: inserisci la stringa di connessione dell'hub di 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 specificare 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'è (include
EntityPath) - Il campo Nome hub di eventi può essere lasciato vuoto
- Utilizza la stringa di connessione così com'è (include
Nome 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 consumer (facoltativo): inserisci il nome del gruppo di consumer
- Lascia vuoto per utilizzare il gruppo di consumatori
$Defaultpredefinito - Se hai creato un gruppo di consumer dedicato, inseriscine il nome (ad esempio,
chronicle).
- Lascia vuoto per utilizzare il gruppo di consumatori
Nome container Blob Storage (facoltativo): per il checkpointing, 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 di 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 |
Mappata 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 |
Mappatura: 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 |
Mappata 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.