Raccogliere i log del contesto di Compute Google Cloud
Questo documento spiega come esportare e importare i log del contesto di Compute in Google Security Operations utilizzando Cloud Storage. Google Cloud Il parser estrae le informazioni dai log in formato JSON. Quindi normalizza e struttura i dati estratti nel formato UDM di Google SecOps, concentrandosi sui dettagli delle macchine virtuali, come le specifiche hardware, la configurazione di rete, le impostazioni di sicurezza e le relazioni con altre entità.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Compute è configurato e attivo nel tuo Google Cloud ambiente.
- Accesso privilegiato a Google Cloud e autorizzazioni appropriate.
Crea un bucket 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, 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 compute-context-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 , seleziona no per non applicare 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 di Compute Google Cloud
- 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
Compute-Context-Sink. - Destinazione sink: seleziona Archiviazione Cloud Storage e inserisci l'URI del bucket, ad esempio
gs://compute-context-logs/. Filtro log:
logName="*compute*" resource.type="gce_instance"
- 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.
Configura i feed
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 Google Cloud feed del contesto di Compute
- Fai clic sul pacchetto Piattaforma Google Cloud Compute.
- Individua il tipo di log Contesto di Compute Google Cloud.
Specifica i seguenti valori:
- Tipo di origine: Google Cloud Storage V2.
- URI bucket di archiviazione: URL del bucket Cloud Storage, ad esempio
gs://compute-context-logs/. Questo URL deve terminare con una barra (/). Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
Età massima del file: file modificati negli ultimi giorni. Il valore predefinito è 180 giorni.
Service account Chronicle: copia il service account. Ti servirà per aggiungere le autorizzazioni nel bucket per consentire a questo service account di leggere o eliminare i dati nel bucket.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Spazio dei nomi degli 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.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Funzione logica |
|---|---|---|
| ancestors | event.idm.entity.entity.asset.attribute.labels.value | Ogni valore predecessore nell'array ancestors viene mappato a un'etichetta separata con la chiave ancestors. |
| assetType | event.idm.entity.entity.asset.category | Mappato direttamente dal campo assetType. |
| asset_type | event.idm.entity.entity.asset.category | Mappato direttamente dal campo asset_type. |
| name | event.idm.entity.entity.resource.name | Mappato direttamente dal campo name. |
| resource.data.cpuPlatform | event.idm.entity.entity.asset.hardware.cpu_platform | Mappato direttamente dal campo resource.data.cpuPlatform. |
| resource.data.creationTimestamp | event.idm.entity.entity.asset.attribute.creation_time | Analizzato in un formato timestamp dal campo resource.data.creationTimestamp. |
| resource.data.id | event.idm.entity.entity.asset.product_object_id | Mappato direttamente dal campo resource.data.id. |
| resource.data.labels.business_function | event.idm.entity.entity.asset.attribute.labels.value | Mappato direttamente dal campo resource.data.labels.business_function, con la chiave impostata su business_function. |
| resource.data.labels.environment | event.idm.entity.entity.asset.attribute.labels.value | Mappato direttamente dal campo resource.data.labels.environment, con la chiave impostata su environment. |
| resource.data.labels.infra_location | event.idm.entity.entity.asset.attribute.labels.value | Mappato direttamente dal campo resource.data.labels.infra_location, con la chiave impostata su infra_location. |
| resource.data.labels.instance_group | event.idm.entity.user.group_identifiers | Mappato direttamente dal campo resource.data.labels.instance_group. |
| resource.data.labels.os | event.idm.entity.entity.asset.platform_software.platform_version | Mappato direttamente dal campo resource.data.labels.os. |
| resource.data.labels.primary_application | event.idm.entity.entity.asset.attribute.labels.value | Mappato direttamente dal campo resource.data.labels.primary_application, con la chiave impostata su primary_application. |
| resource.data.labels.project_code | event.idm.entity.entity.asset.attribute.labels.value | Mappato direttamente dal campo resource.data.labels.project_code, con la chiave impostata su project_code. |
| resource.data.lastStartTimestamp | event.idm.entity.entity.asset.last_boot_time | Analizzato in un formato timestamp dal campo resource.data.lastStartTimestamp. |
| resource.data.machineType | event.idm.entity.entity.asset.hardware.model | Il tipo di macchina viene estratto dal campo resource.data.machineType utilizzando un'espressione regolare. |
| resource.data.name | event.idm.entity.entity.asset.hostname | Mappato direttamente dal campo resource.data.name. |
| resource.data.networkInterfaces.0.accessConfigs.0.natIP | event.idm.entity.entity.asset.nat_ip | Viene mappato il primo indirizzo IP NAT della prima interfaccia di rete. |
| resource.data.networkInterfaces.0.network | event.idm.entity.entity.asset.attribute.cloud.vpc.name | L'ID di rete viene estratto dal campo resource.data.networkInterfaces.0.network utilizzando un'espressione regolare. |
| resource.data.networkInterfaces.0.networkIP | event.idm.entity.entity.asset.ip | Viene mappato l'indirizzo IP della prima interfaccia di rete. |
| resource.data.networkInterfaces.1.networkIP | event.idm.entity.entity.asset.ip | Viene mappato l'indirizzo IP della seconda interfaccia di rete. |
| resource.data.selfLink | event.idm.entity.entity.url | Mappato direttamente dal campo resource.data.selfLink. |
| resource.data.serviceAccounts.0.email | event.idm.entity.relations.entity.user.email_addresses | Viene mappato l'indirizzo email del primo account di servizio. |
| resource.data.status | event.idm.entity.entity.asset.deployment_status | Mappato su ACTIVE se lo stato è uno tra RUNNING, PROVISIONING, STAGING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, TERMINATED. In caso contrario, mappato su DEPLOYMENT_STATUS_UNSPECIFIED. |
| event.idm.entity.entity.asset.attribute.cloud.availability_zone | La zona di disponibilità viene creata combinando i campi region e zone_suffix. | |
| event.idm.entity.entity.asset.attribute.cloud.environment | Impostato su GOOGLE_CLOUD_PLATFORM. |
|
| event.idm.entity.entity.asset.attribute.cloud.project.name | L'ID progetto viene estratto dal campo name utilizzando un'espressione regolare. | |
| event.idm.entity.entity.asset.attribute.cloud.project.resource_type | Impostato su CLOUD_PROJECT. |
|
| event.idm.entity.entity.asset.attribute.cloud.vpc.resource_type | Impostato su VPC_NETWORK. |
|
| event.idm.entity.entity.resource.resource_type | Impostato su VIRTUAL_MACHINE se asset_type o assetType contiene Instance. |
|
| event.idm.entity.entity.resource.type | Impostato su VIRTUAL_MACHINE se asset_type o assetType contiene Instance. |
|
| event.idm.entity.metadata.collected_timestamp | Impostato sul timestamp dell'evento Logstash. | |
| event.idm.entity.metadata.entity_type | Impostato su ASSET. |
|
| event.idm.entity.metadata.product_name | Impostato su GCP Compute Context. |
|
| event.idm.entity.metadata.vendor_name | Impostato su Google Cloud Platform. |
|
| event.idm.entity.relations.entity.user.attribute.cloud.environment | Impostato su GOOGLE_CLOUD_PLATFORM. |
|
| event.idm.entity.relations.entity_type | Impostato su USER. |
|
| event.idm.entity.relations.relationship | Impostato su ADMINISTERS. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.