Raccogliere i log delle istanze AWS EC2
Questo documento spiega come configurare i log delle istanze AWS EC2 in Google Security Operations per il monitoraggio e l'analisi. Il parser estrae i dati dai log JSON di prenotazione delle istanze, ristruttura e rinomina i campi in conformità con l'UDM, gestisce vari tipi di dati e strutture nidificate, tra cui interfacce di rete, gruppi e tag, generando al contempo relazioni tra asset e metadati. Esegue anche la gestione degli errori e l'eliminazione dei messaggi JSON non validi.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso con privilegi ad AWS.
Configura AWS IAM e S3
- Crea un bucket Amazon S3 seguendo questa guida dell'utente: Creazione di un bucket.
- Salva Nome e Regione del bucket per utilizzarli in un secondo momento.
- Crea un utente seguendo questa guida dell'utente: Creare un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi un tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per utilizzarle in un secondo momento.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Norme relative alle autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Collega direttamente i criteri.
- Cerca e seleziona il criterio AmazonS3FullAccess.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Configurare EC2 per inviare i log a CloudWatch Logs
Utilizza SSH per connetterti all'istanza EC2, fornendo la coppia di chiavi per l'autenticazione.
ssh -i your-key.pem ec2-user@your-ec2-public-ip
Installa l'agente CloudWatch Logs:
- Per installare l'agente CloudWatch Logs su Amazon Linux, utilizza il seguente comando:
sudo yum install -y awslogs
- Per installare l'agente CloudWatch Logs su Ubuntu, utilizza il seguente comando:
sudo apt-get install -y awslogs
Apri il file di configurazione di CloudWatch Logs:
sudo vi /etc/awslogs/awslogs.conf
Crea uno script che recupera i metadati dell'istanza di log e li scrive in un file:
#!/bin/bash echo "Architecture: $(curl -s http://169.254.169.254/latest/meta-data/architecture)" >> /var/log/instance_metadata.log echo "AmiLaunchIndex: $(curl -s http://169.254.169.254/latest/meta-data/ami-launch-index)" >> /var/log/instance_metadata.log echo "BootMode: $(curl -s http://169.254.169.254/latest/meta-data/boot-mode)" >> /var/log/instance_metadata.log
Salva lo script come
/etc/init.d/metadata_script.sh
ed eseguilo all'avvio dell'istanza utilizzando crontab orc.local
.Apri il file di configurazione per l'agente CloudWatch Logs:
sudo vi /etc/awslogs/awslogs.conf
Aggiungi quanto segue al file di configurazione:
[/var/log/messages] file = /var/log/messages log_group_name = /ec2/system/logs log_stream_name = {instance_id} [/var/log/secure] file = /var/log/secure log_group_name = /ec2/security/logs log_stream_name = {instance_id} [/var/log/auth.log] file = /var/log/auth.log log_group_name = /ec2/auth/logs log_stream_name = {instance_id} [/var/log/httpd/access_log] file = /var/log/httpd/access_log log_group_name = /ec2/application/apache/access_logs log_stream_name = {instance_id} [/var/log/httpd/error_log] file = /var/log/httpd/error_log log_group_name = /ec2/application/apache/error_logs log_stream_name = {instance_id}
Salva la configurazione ed esci dall'editor.
Avvia l'agente CloudWatch Logs:
- Su Amazon Linux:
sudo service awslogs start
- Su Ubuntu:
sudo service awslogs start
Verifica che l'agente sia in esecuzione:
sudo service awslogs status
Configura le autorizzazioni IAM per Lambda e S3
Nella console AWS IAM, crea un nuovo ruolo IAM con le seguenti autorizzazioni:
logs:PutSubscriptionFilter
logs:DescribeLogGroups
logs:GetLogEvents
s3:PutObject
Collega questo ruolo alla funzione Lambda che esporta i log in S3.
Configura Lambda per esportare i log in S3
Vai alla console Lambda e crea una nuova funzione.
import boto3 import gzip from io import BytesIO s3 = boto3.client('s3') logs = boto3.client('logs') def lambda_handler(event, context): log_group = event['logGroup'] log_stream = event['logStream'] log_events = logs.get_log_events( logGroupName=log_group, logStreamName=log_stream, startFromHead=True ) log_data = "\n".join([event['message'] for event in log_events['events']]) # Compress and upload to S3 compressed_data = gzip.compress(log_data.encode('utf-8')) s3.put_object( Bucket='your-s3-bucket-name', Key='logs/ec2-log.gz', Body=compressed_data ) ```
- Sostituisci
your-s3-bucket-name
con il nome effettivo del tuo bucket S3.
- Sostituisci
Collega il ruolo IAM alla funzione Lambda creata in precedenza.
Nella console CloudWatch, vai alla sezione Log.
Seleziona il gruppo di log, ad esempio
/ec2/system/logs
.Fai clic su Azioni > Crea filtro iscrizioni.
Imposta la destinazione sulla funzione Lambda creata in precedenza.
Configura un feed in Google SecOps per importare i log delle istanze AWS EC2
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Log delle istanze AWS EC2.
- Seleziona Amazon S3 come Tipo di origine.
- Seleziona Inistanza AWS EC2 come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- Regione: la regione in cui si trova il bucket Amazon S3.
- URI S3: l'URI del bucket.
s3://your-log-bucket-name/
- Sostituisci
your-log-bucket-name
con il nome effettivo del bucket.
- Sostituisci
- L'URI è una: seleziona Directory o Directory che include sottodirectory.
Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
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.
Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
Architecture |
entity.entity.asset.attribute.labels.key=instances_set_architecture , entity.entity.asset.attribute.labels.value |
Il valore viene preso direttamente dal campo Instances.Architecture nel log non elaborato. |
AmiLaunchIndex |
entity.entity.asset.attribute.labels.key=instances_set_ami_launch_index , entity.entity.asset.attribute.labels.value |
Il valore viene preso direttamente dal campo Instances.AmiLaunchIndex nel log non elaborato. |
BlockDeviceMapping.Ebs.AttachTime |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_ebs_attach_time , entity.entity.resource_ancestors.attribute.labels.value |
Il valore viene preso da Instances.BlockDeviceMapping.Ebs.AttachTime . |
BlockDeviceMapping.Ebs.DeleteOnTermination |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_ebs_delete_on_termination , entity.entity.resource_ancestors.attribute.labels.value |
Il valore viene preso da Instances.BlockDeviceMapping.Ebs.DeleteOnTermination . |
BlockDeviceMapping.Ebs.Status |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_ebs_volume_status , entity.entity.resource_ancestors.attribute.labels.value |
Il valore viene preso da Instances.BlockDeviceMapping.Ebs.Status . |
BlockDeviceMapping.Ebs.VolumeID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=VOLUME |
Il valore viene preso da Instances.BlockDeviceMapping.Ebs.VolumeID . |
BlockDeviceMapping.Name |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_block_device_mapping_device_name , entity.entity.resource_ancestors.attribute.labels.value |
Il valore viene preso da Instances.BlockDeviceMapping.Name . |
BootMode |
entity.entity.asset.attribute.labels.key=instances_set_boot_mode , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.BootMode . |
CapacityReservationID |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.CapacityReservationID . |
CapacityReservationSpecification.CapacityReservationPreference |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_specification_capacity_reservation_preference , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.CapacityReservationSpecification.CapacityReservationPreference . |
CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationID |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_specification_capacity_reservation_target_capacity_reservation_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationID . |
CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=Capacity Reservation Arn |
Il valore viene preso da Instances.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn . |
ClientToken |
entity.entity.asset.attribute.labels.key=instances_set_client_token , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.ClientToken . |
CPU.AmdSevSnp |
entity.entity.asset.attribute.labels.key=instances_set_cpu_options_amd_sev_snp , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.CPU.AmdSevSnp . |
CPU.CoreCount |
entity.entity.asset.hardware.cpu_number_cores |
Il valore viene preso da Instances.CPU.CoreCount . |
CPU.ThreadsPerCore |
entity.entity.asset.attribute.labels.key=instances_set_cpu_options_threads_per_core , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.CPU.ThreadsPerCore . |
CurrentInstanceBootMode |
entity.entity.asset.attribute.labels.key=instances_set_current_instance_boot_mode , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.CurrentInstanceBootMode . |
DNSName |
entity.entity.network.dns_domain |
Il valore viene preso da Instances.DNSName . |
EbsOptimized |
entity.entity.asset.attribute.labels.key=instances_set_ebs_optimized , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.EbsOptimized . |
ElasticGpuAssociationSet.ElasticGpuAssociationID |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_association_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.ElasticGpuAssociationSet.ElasticGpuAssociationID . |
ElasticGpuAssociationSet.ElasticGpuAssociationState |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_association_state , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.ElasticGpuAssociationSet.ElasticGpuAssociationState . |
ElasticGpuAssociationSet.ElasticGpuAssociationTime |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_association_time , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.ElasticGpuAssociationSet.ElasticGpuAssociationTime . |
ElasticGpuAssociationSet.ElasticGpuID |
entity.entity.asset.attribute.labels.key=instances_set_elastic_gpu_association_set_elastic_gpu_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.ElasticGpuAssociationSet.ElasticGpuID . |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorArn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=Elastic Interface Accelerator Arn |
Il valore viene preso da Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorArn . |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationID |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_elastic_inference_accelerator_association_set_elastic_inference_accelerator_association_id , entity.entity.resource_ancestors.attribute.labels.value |
Il valore viene preso da Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationID . |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationState |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_elastic_inference_accelerator_association_set_elastic_inference_accelerator_association_state , entity.entity.resource_ancestors.attribute.labels.value |
Il valore viene preso da Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationState . |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationTime |
entity.entity.resource_ancestors.attribute.labels.key=instances_set_elastic_inference_accelerator_association_set_elastic_inference_accelerator_association_time , entity.entity.resource_ancestors.attribute.labels.value |
Il valore viene preso da Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationTime . |
EnaSupport |
entity.entity.asset.attribute.labels.key=instances_set_ena_support , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.EnaSupport . |
EnclaveOptions.Enabled |
entity.entity.asset.attribute.labels.key=instances_set_enclave_options_enabled , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.EnclaveOptions.Enabled . |
GroupSet.GroupID |
entity.entity.group.product_object_id , entity.entity.group.attribute.labels.key=group_set_group_id , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_group_set_group_id , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_id , entity.entity.group.attribute.labels.value |
Il valore viene preso da GroupSet.GroupID . Il primo GroupID nell'array è mappato a entity.entity.group.product_object_id . I valori GroupID successivi vengono mappati come etichette. |
GroupSet.GroupName |
entity.entity.group.group_display_name , entity.entity.group.attribute.labels.key=group_set_group_name , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_group_set_group_name , entity.entity.group.attribute.labels.value , entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_name , entity.entity.group.attribute.labels.value |
Il valore viene preso da GroupSet.GroupName . Il primo GroupName nell'array è mappato a entity.entity.group.group_display_name . I valori GroupName successivi vengono mappati come etichette. |
HibernationOptions |
entity.entity.asset.attribute.labels.key=instances_set_hibernation_options , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.HibernationOptions . |
HibernationOptions.Configured |
entity.entity.asset.attribute.labels.key=instances_set_hibernation_options_configured , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.HibernationOptions.Configured . |
Hypervisor |
entity.entity.asset.attribute.labels.key=instances_set_hypervisor , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Hypervisor . |
IamInstanceProfile.Arn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=Instance Profile Arn |
Il valore viene preso da Instances.IamInstanceProfile.Arn . |
IamInstanceProfile.ID |
entity.entity.resource_ancestors.product_object_id |
Il valore viene preso da Instances.IamInstanceProfile.ID . |
ImageID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=IMAGE |
Il valore viene preso da Instances.ImageID . |
InstanceID |
entity.metadata.product_entity_id , entity.entity.asset.asset_id |
Il valore viene preso da Instances.InstanceID . |
InstanceLifecycle |
entity.entity.asset.attribute.labels.key=instances_set_instance_lifecycle , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.InstanceLifecycle . |
InstanceState.Code |
entity.entity.asset.attribute.labels.key=instances_set_instance_state_code , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.InstanceState.Code . |
InstanceState.Name |
entity.entity.asset.deployment_status |
Il valore è dedotto da Instances.InstanceState.Name . Se il valore è running , il campo UDM è impostato su ACTIVE . Se il valore è shutting-down o stopping , il campo UDM viene impostato su PENDING_DECOMMISSION . Se il valore è stopped o terminated , il campo UDM è impostato su DECOMMISSIONED . |
InstanceType |
entity.entity.asset.category |
Il valore viene preso da Instances.InstanceType . |
IPAddress |
entity.entity.asset.ip |
Il valore viene preso da Instances.IPAddress . |
Ipv6Address |
entity.entity.asset.ip |
Il valore viene preso da Instances.Ipv6Address . |
KernelID |
entity.entity.asset.attribute.labels.key=instances_set_kernel_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.KernelID . |
KeyName |
entity.entity.asset.attribute.labels.key=instances_set_key_name , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.KeyName . |
LaunchTime |
entity.metadata.creation_timestamp |
Il valore viene preso da Instances.LaunchTime . |
LicenseSet.LicenseConfigurationArn |
entity.entity.resource_ancestors.name , entity.entity.resource_ancestors.resource_subtype=License Configuration Arn |
Il valore viene preso da Instances.LicenseSet.LicenseConfigurationArn . |
MaintenanceOptions |
entity.entity.asset.attribute.labels.key=instances_set_maintenance_options_auto_recovery , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.MaintenanceOptions . |
MetadataOptions.HTTPEndpoint |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_endpoint , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.MetadataOptions.HTTPEndpoint . |
MetadataOptions.HTTPProtocolIpv6 |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_protocol_ipv6 , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.MetadataOptions.HTTPProtocolIpv6 . |
MetadataOptions.HTTPPutResponseHopLimit |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_put_response_hop_limit , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.MetadataOptions.HTTPPutResponseHopLimit . |
MetadataOptions.HTTPTokens |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_tokens , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.MetadataOptions.HTTPTokens . |
MetadataOptions.InstanceMetadataTags |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_instance_metadata_tags , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.MetadataOptions.InstanceMetadataTags . |
MetadataOptions.State |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_state , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.MetadataOptions.State . |
Monitoring.State |
entity.entity.asset.attribute.labels.key=instances_set_monitoring_state , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Monitoring.State . |
NetworkInterfaceSet.Association.CarrierIP |
entity.entity.asset.nat_ip |
Il valore viene preso da Instances.NetworkInterfaceSet.Association.CarrierIP . |
NetworkInterfaceSet.Association.CustomerOwnedIP |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_association_customer_owned_ip , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Association.CustomerOwnedIP . |
NetworkInterfaceSet.Association.IPOwnerID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_association_ip_owner_id , entity.entity.asset.attribute.labels.value , entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_association_ip_owner_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Association.IPOwnerID . |
NetworkInterfaceSet.Association.PublicDNSName |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_association_public_dns_name , entity.entity.asset.attribute.labels.value , entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_association_public_dns_name , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Association.PublicDNSName . |
NetworkInterfaceSet.Association.PublicIP |
entity.entity.asset.ip |
Il valore viene preso da Instances.NetworkInterfaceSet.Association.PublicIP . |
NetworkInterfaceSet.Attachment.AttachTime |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_attach_time , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Attachment.AttachTime . |
NetworkInterfaceSet.Attachment.AttachmentID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_attachment_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Attachment.AttachmentID . |
NetworkInterfaceSet.Attachment.DeleteOnTermination |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_delete_on_termination , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Attachment.DeleteOnTermination . |
NetworkInterfaceSet.Attachment.DeviceIndex |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_device_index , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Attachment.DeviceIndex . |
NetworkInterfaceSet.Attachment.NetworkCardIndex |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_network_card_index , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Attachment.NetworkCardIndex . |
NetworkInterfaceSet.Attachment.Status |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_attachment_status , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Attachment.Status . |
NetworkInterfaceSet.Description |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_description , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Description . |
NetworkInterfaceSet.GroupSet.GroupID |
entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_id , entity.entity.group.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.GroupSet.GroupID . |
NetworkInterfaceSet.GroupSet.GroupName |
entity.entity.group.attribute.labels.key=instances_set_network_interface_set_group_set_group_name , entity.entity.group.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.GroupSet.GroupName . |
NetworkInterfaceSet.InterfaceType |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_interface_type , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.InterfaceType . |
NetworkInterfaceSet.Ipv6AddressesSet.Ipv6Address |
entity.entity.asset.ip |
Il valore viene preso da Instances.NetworkInterfaceSet.Ipv6AddressesSet.Ipv6Address . |
NetworkInterfaceSet.Ipv6AddressesSet.IsPrimaryIpv6 |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_ipv6_addresses_set_is_primary_ipv6 , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Ipv6AddressesSet.IsPrimaryIpv6 . |
NetworkInterfaceSet.MacAddress |
entity.entity.asset.mac |
Il valore viene preso da Instances.NetworkInterfaceSet.MacAddress . |
NetworkInterfaceSet.NetworkInterfaceID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_network_interface_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.NetworkInterfaceID . |
NetworkInterfaceSet.OwnerID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_owner_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.OwnerID . |
NetworkInterfaceSet.PrivateDNSName |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_dns_name , entity.entity.asset.attribute.labels.value , entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_private_dns_name , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.PrivateDNSName . |
NetworkInterfaceSet.PrivateIPAddress |
entity.entity.asset.ip |
Il valore viene preso da Instances.NetworkInterfaceSet.PrivateIPAddress . |
NetworkInterfaceSet.PrivateIPAddressesSet.Primary |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_private_ip_addresses_set_primary , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.PrivateIPAddressesSet.Primary . |
NetworkInterfaceSet.PrivateIPAddressesSet.PrivateIPAddress |
entity.entity.asset.ip |
Il valore viene preso da Instances.NetworkInterfaceSet.PrivateIPAddressesSet.PrivateIPAddress . |
NetworkInterfaceSet.SourceDestCheck |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_source_dest_check , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.SourceDestCheck . |
NetworkInterfaceSet.Status |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_status , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.Status . |
NetworkInterfaceSet.SubnetID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_subnet_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.SubnetID . |
NetworkInterfaceSet.VpcID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_vpc_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.NetworkInterfaceSet.VpcID . |
OutpostArn |
entity.relations.entity.asset.product_object_id |
Il valore viene preso da Instances.OutpostArn . |
Placement.Affinity |
entity.entity.asset.attribute.labels.key=instances_set_placement_affinity , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Placement.Affinity . |
Placement.AvailabilityZone |
entity.entity.asset.attribute.cloud.availability_zone |
Il valore viene preso da Instances.Placement.AvailabilityZone . |
Placement.GroupID |
entity.entity.group.attribute.labels.key=instances_set_placement_group_id , entity.entity.group.attribute.labels.value |
Il valore viene preso da Instances.Placement.GroupID . |
Placement.GroupName |
entity.entity.group.attribute.labels.key=instances_set_placement_group_name , entity.entity.group.attribute.labels.value |
Il valore viene preso da Instances.Placement.GroupName . |
Placement.HostID |
entity.relations.entity.asset.asset_id |
Il valore viene preso da Instances.Placement.HostID . |
Placement.HostResourceGroupArn |
entity.relations.entity.asset.attribute.labels.key=instances_set_placement_host_resource_group_arn , entity.relations.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Placement.HostResourceGroupArn . |
Placement.PartitionNumber |
entity.entity.asset.attribute.labels.key=instances_set_placement_partition_number , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Placement.PartitionNumber . |
Placement.SpreadDomain |
entity.entity.asset.attribute.labels.key=instances_set_placement_spread_domain , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Placement.SpreadDomain . |
Placement.Tenancy |
entity.entity.asset.attribute.labels.key=instances_set_placement_tenancy , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Placement.Tenancy . |
PlatformDetails |
entity.entity.asset.attribute.labels.key=instances_set_platform_details , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.PlatformDetails . |
PrivateDNSName |
entity.entity.network.dns.questions.name |
Il valore viene preso da Instances.PrivateDNSName . |
PrivateDNSNameOptions.EnableResourceNameDnsAAAARecord |
entity.entity.network.dns.questions.type |
Se il valore è true , il campo UDM è impostato su 28. |
PrivateDNSNameOptions.EnableResourceNameDnsARecord |
entity.entity.network.dns.questions.type |
Se il valore è true , il campo UDM è impostato su 1. |
PrivateDNSNameOptions.HostnameType |
entity.entity.asset.attribute.labels.key=instances_set_private_dns_name_options_hostname_type , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.PrivateDNSNameOptions.HostnameType . |
PrivateIPAddress |
entity.entity.asset.ip |
Il valore viene preso da Instances.PrivateIPAddress . |
ProductCodes.ProductCode |
entity.entity.asset.attribute.labels.key=instances_set_product_codes_product_code , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.ProductCodes.ProductCode . |
ProductCodes.Type |
entity.entity.asset.attribute.labels.key=instances_set_product_codes_type , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.ProductCodes.Type . |
RamdiskID |
entity.entity.asset.attribute.labels.key=instances_set_ramdisk_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.RamdiskID . |
Reason |
entity.entity.asset.attribute.labels.key=instances_set_reason , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.Reason . |
ReservationID |
entity.additional.fields.key=reservation_id , entity.additional.fields.value.string_value |
Il valore viene preso da ReservationID . |
RequesterID |
entity.additional.fields.key=requester_id , entity.additional.fields.value.string_value |
Il valore viene preso da RequesterID . |
RootDeviceName |
entity.entity.asset.attribute.labels.key=instances_set_root_device_name , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.RootDeviceName . |
RootDeviceType |
entity.entity.asset.attribute.labels.key=instances_set_root_device_type , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.RootDeviceType . |
SourceDestCheck |
entity.entity.asset.attribute.labels.key=instances_set_source_dest_check , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.SourceDestCheck . |
SpotInstanceRequestID |
entity.entity.asset.attribute.labels.key=instances_set_spot_instance_request_id , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.SpotInstanceRequestID . |
SriovNetSupport |
entity.entity.asset.attribute.labels.key=instances_set_sriov_net_support , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.SriovNetSupport . |
StateReason |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_code , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.StateReason . |
StateReason.Code |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_code , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.StateReason.Code . |
StateReason.Message |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_message , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.StateReason.Message . |
SubnetID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=SUBNET |
Il valore viene preso da Instances.SubnetID . |
TagSet.Key |
entity.entity.asset.attribute.labels.key |
Il valore viene preso da Instances.TagSet.Key . |
TagSet.Value |
entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.TagSet.Value . |
TpmSupport |
entity.entity.asset.attribute.labels.key=instances_set_tpm_support , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.TpmSupport . |
UsageOperation |
entity.entity.asset.attribute.labels.key=instances_set_usage_operation , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.UsageOperation . |
UsageOperationUpdateTime |
entity.entity.asset.attribute.labels.key=instances_set_usage_operation_update_time , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.UsageOperationUpdateTime . |
VirtualizationType |
entity.entity.asset.attribute.labels.key=instances_set_virtualization_type , entity.entity.asset.attribute.labels.value |
Il valore viene preso da Instances.VirtualizationType . |
VpcID |
entity.entity.resource_ancestors.product_object_id , entity.entity.resource_ancestors.resource_type=VPC_NETWORK |
Il valore viene preso da Instances.VpcID . |
collection_time |
entity.metadata.collected_timestamp |
Il valore viene preso direttamente dal campo collection_time nel log non elaborato. Hardcoded a AMAZON_WEB_SERVICES . Hardcoded su AMAZON_WEB_SERVICES per i tipi di risorse IMAGE, VOLUME, SUBNET, VPC_NETWORK, Arn del profilo istanza, Arn della prenotazione della capacità, Arn di Elastic Interface Accelerator e Arn di configurazione della licenza. Hardcoded a SERVER . Hardcoded a Amazon EC2 . Hardcoded a AWS . Hardcoded su ASSET se Instances.Placement.HostID è presente e non vuoto. Hardcoded su EXECUTES se Instances.Placement.HostID è presente e non vuoto. Hardcoded in ASSET. |
Modifiche
2024-01-31
- È stato aggiunto il supporto del nuovo schema.
2023-12-14
- Parser appena creato.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.