Raccogliere i log degli utenti dei dispositivi Cloud Identity
Versione parser: 1.0
Questo documento spiega come raccogliere i log degli utenti dei dispositivi Cloud Identity
in Google Security Operations utilizzando il metodo API di terze parti, che è l'approccio
consigliato. Il parser estrae innanzitutto i dati dai log
Cloud Identity Device Users in formato JSON e trasforma il timestamp nel
formato standardizzato. Poi, esegue il mapping di campi specifici dai dati dei log non elaborati ai campi corrispondenti nel modello dei dati UDM (Unified Data Model) per le entità utente, le loro relazioni con gli asset e gli attributi utente aggiuntivi, come gli stati di gestione e password.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Configurazione della delega a livello di dominio per un account di servizio. Il service account deve essere autorizzato per il seguente ambito:
https://www.googleapis.com/auth/cloud-identity.devices.readonly
- Le seguenti API sono abilitate nel tuo Google Cloud progetto:
- API Cloud Identity
- SDK Admin di Google Workspace
- API Alert Center
Consigliato: configura i feed API di terze parti
Esistono due punti di accesso diversi per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed > Aggiungi nuovo feed
- Hub contenuti > Pacchetti di contenuti > Inizia
Come configurare il feed degli utenti dei dispositivi di identità Google Cloud
- Fai clic sul pacchetto Piattaforma di calcolo Google Cloud.
- Individua il tipo di log Google Cloud Utenti dei dispositivi di identità e fai clic su Aggiungi nuovo feed.
- Specifica i valori per i seguenti campi:
- Tipo di origine: seleziona API di terze parti.
- Endpoint JWT OAuth: inserisci l'endpoint del token OAuth:
https://oauth2.googleapis.com/token - Emittente delle attestazioni JWT: inserisci l'indirizzo email del service account (che si trova nel file della chiave JSON del service account).
- Oggetto delle attestazioni JWT: inserisci l'indirizzo email dell'utente a cui è stato concesso il ruolo di amministratore dei servizi o super amministratore nella Console di amministrazione Workspace (l'utente di cui viene eseguito lo spoofing tramite la delega a livello di dominio).
- Pubblico delle attestazioni JWT: inserisci di nuovo l'endpoint:
https://oauth2.googleapis.com/token - Chiave privata RSA: incolla l'intero contenuto della chiave privata dal file della chiave JSON del service account (incluse le righe
-----BEGIN PRIVATE KEY-----e-----END PRIVATE KEY-----).
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Spazio dei nomi asset: spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
- Fai clic su Crea feed.
Per ulteriori informazioni sulla configurazione di più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configura i feed per prodotto.
Metodo alternativo: importazione tramite Cloud Storage
- Accedi alla Google Cloud console.
Vai alla pagina Bucket Cloud Storage.
Fai clic su Crea.
Nella pagina Crea un bucket, inserisci le informazioni del bucket. Dopo ogni passaggio seguente, fai clic su Continua per passare al passaggio successivo:
Nella sezione Inizia, segui questi passaggi:
- Inserisci un nome univoco che soddisfi i requisiti del nome del bucket, ad esempio gcp-cloudidentity-users-logs.
Per attivare lo spazio dei nomi gerarchico, fai clic sulla freccia di espansione per espandere la sezione Ottimizza per carichi di lavoro orientati ai file e con uso intensivo dei dati, quindi seleziona Abilita uno spazio dei nomi gerarchico in questo bucket.
Per aggiungere un'etichetta del bucket, fai clic sulla freccia di espansione per espandere la sezione Etichette.
Fai clic su Aggiungi etichetta e specifica una chiave e un valore per l'etichetta.
Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi:
- Seleziona un Tipo di località.
Utilizza il menu del tipo di località per selezionare una Località in cui i dati degli oggetti all'interno del bucket verranno archiviati in modo permanente.
Per configurare la replica tra bucket, espandi la sezione Configura la replica tra bucket.
Nella sezione Scegli una classe di archiviazione per i tuoi dati , seleziona una classe di archiviazione predefinita per il bucket oppure seleziona Autoclass per la gestione automatica della classe di archiviazione dei dati del bucket.
Nella sezione Scegli come controllare l'accesso agli oggetti, deseleziona Applica la prevenzione dell'accesso pubblico e seleziona un modello di controllo dell'accesso per gli oggetti del bucket.
Nella sezione Scegli come proteggere i dati degli oggetti, segui questi passaggi:
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
- Per scegliere come verranno criptati i dati degli oggetti, fai clic sulla freccia di espansione con l'etichetta Criptaggio dei dati e seleziona un metodo di criptaggio dei dati.
Fai clic su Crea.
Configurare l'esportazione dei log degli utenti dei dispositivi Cloud Identity
- Accedi alla Google Cloud console.
- Vai a Logging > Router dei log.
- Fai clic su Crea sink.
Specifica i seguenti parametri di configurazione:
- Nome sink: inserisci un nome significativo, ad esempio
Cloudidentity-Users-Sink. - Destinazione sink: seleziona Archiviazione Cloud Storage e inserisci l'URI del bucket, ad esempio
gs://gcp-cloudidentity-users-logs/. Filtro log:
logName="projects/<your-project-id>/logs/cloudaudit.googleapis.com%2Factivity" resource.type="cloud_identity_user"Imposta opzioni di esportazione: includi tutte le voci di log.
- Nome sink: inserisci un nome significativo, ad esempio
Fai clic su Crea.
Configurare le autorizzazioni per Cloud Storage
- Vai a IAM e amministrazione > IAM.
- Individua il account di servizio Cloud Logging.
- Concedi il ruolo roles/storage.admin nel bucket.
Tabella di mapping UDM
| Campo log | Mapping UDM | Logica |
|---|---|---|
| collection_time.nanos | timestamp.nanos | Eseguito il mapping direttamente dal campo log. Rappresenta il timestamp dell'evento in nanosecondi. |
| collection_time.seconds | timestamp.seconds | Eseguito il mapping direttamente dal campo log. Rappresenta il timestamp dell'evento in secondi. |
| createTime | entity.metadata.creation_timestamp | Eseguito il mapping direttamente dal campo log dopo essere stato analizzato dal filtro date. Rappresenta il timestamp di creazione dell'utente. |
| managementState | entity.additional.fields.value.string_value | Eseguito il mapping direttamente dal campo log. Rappresenta lo stato di gestione dell'utente. |
| name | entity.entity.resource.name | Eseguito il mapping direttamente dal campo log. Rappresenta il nome completo della risorsa dell'utente del dispositivo. |
| passwordState | entity.additional.fields.value.string_value | Eseguito il mapping direttamente dal campo log. Rappresenta lo stato della password dell'utente. Questo campo viene mappato solo se il campo passwordState esiste nel log non elaborato. |
| userEmail | entity.entity.user.email_addresses | Eseguito il mapping direttamente dal campo log. Rappresenta l'indirizzo email dell'utente. |
| entity.additional.fields.key | Impostato su un valore costante Management State all'interno del parser. Questo campo viene utilizzato per fornire il contesto al valore managementState. |
|
| entity.additional.fields.key | Impostato su un valore costante Password State all'interno del parser. Questo campo viene utilizzato per fornire il contesto al valore passwordState ed è presente solo se passwordState esiste nel log non elaborato. |
|
| entity.entity.user.product_object_id | Estratto dal campo name utilizzando il filtro grok e acquisendo la parte deviceuser_id. Rappresenta l'identificatore univoco dell'utente del dispositivo. |
|
| entity.metadata.collected_timestamp.nanos | Copiato da collection_time.nanos. Rappresenta il timestamp di raccolta del log. |
|
| entity.metadata.collected_timestamp.seconds | Copiato da collection_time.seconds. Rappresenta il timestamp di raccolta del log. |
|
| entity.metadata.entity_type | Impostato su un valore costante USER all'interno del parser. |
|
| entity.metadata.product_name | Impostato su un valore costante GCP Cloud Identity Device Users all'interno del parser. |
|
| entity.metadata.vendor_name | Impostato su un valore costante Google Cloud Platform all'interno del parser. |
|
| relations.entity.asset.product_object_id | Estratto dal campo name utilizzando il filtro grok e acquisendo la parte device_id. Rappresenta l'identificatore univoco del dispositivo. |
|
| relations.entity_type | Impostato su un valore costante ASSET all'interno del parser. |
|
| relations.relationship | Impostato su un valore costante MEMBER all'interno del parser. |
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.