Recopila registros de instancias EC2 de AWS
En este documento, se explica cómo configurar los registros de instancias de AWS EC2 en Google Security Operations para su supervisión y análisis. El analizador extrae datos de los registros JSON de reserva de instancias, reestructura y cambia el nombre de los campos para que se ajusten al UDM, controla varios tipos de datos y estructuras anidadas, incluidas las interfaces de red, los grupos y las etiquetas, y también genera relaciones y metadatos de activos. También manejo de errores y descarta los mensajes JSON con formato incorrecto.
Antes de comenzar
- Asegúrate de tener una instancia de Google SecOps.
- Asegúrate de tener acceso con privilegios a AWS.
Configura IAM y S3 de AWS
- Crea un bucket de Amazon S3 siguiendo esta guía del usuario: Cómo crear un bucket.
- Guarda el Nombre y la Región del bucket para usarlos más adelante.
- Crea un usuario siguiendo esta guía del usuario: Cómo crear un usuario de IAM.
- Selecciona el usuario creado.
- Selecciona la pestaña Credenciales de seguridad.
- Haz clic en Crear clave de acceso en la sección Claves de acceso.
- Selecciona Servicio de terceros como el Caso de uso.
- Haz clic en Siguiente.
- Opcional: Agrega una etiqueta de descripción.
- Haz clic en Crear clave de acceso.
- Haz clic en Descargar archivo CSV para guardar la clave de acceso y la clave de acceso secreta para usarlas más adelante.
- Haz clic en Listo.
- Selecciona la pestaña Permisos.
- Haz clic en Agregar permisos en la sección Políticas de permisos.
- Selecciona Agregar permisos.
- Selecciona Adjuntar políticas directamente.
- Busca y selecciona la política AmazonS3FullAccess.
- Haz clic en Siguiente.
- Haz clic en Agregar permisos.
Configura EC2 para enviar registros a CloudWatch Logs
Usa SSH para conectarte a tu instancia de EC2 y proporciona tu par de claves para la autenticación.
ssh -i your-key.pem ec2-user@your-ec2-public-ipInstala el agente de CloudWatch Logs:
- Para instalar el agente de CloudWatch Logs en Amazon Linux, usa el siguiente comando:
sudo yum install -y awslogs- Para instalar el agente de CloudWatch Logs en Ubuntu, usa el siguiente comando:
sudo apt-get install -y awslogsAbre el archivo de configuración de CloudWatch Logs:
sudo vi /etc/awslogs/awslogs.confCrea un script que recupere estos metadatos de la instancia de registro y los escriba en un archivo:
#!/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.logGuarda la secuencia de comandos como
/etc/init.d/metadata_script.shy ejecútala en el inicio de la instancia con crontab orc.local.Abre el archivo de configuración del agente de CloudWatch Logs:
sudo vi /etc/awslogs/awslogs.confAgrega lo siguiente al archivo de configuración:
[/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}Guarda la configuración y sal del editor.
Inicia el agente de CloudWatch Logs:
- En Amazon Linux:
sudo service awslogs start- En Ubuntu:
sudo service awslogs startVerifica que el agente esté en ejecución:
sudo service awslogs status
Configura los permisos de IAM para Lambda y S3
En la consola de IAM de AWS, crea un nuevo rol de IAM con los siguientes permisos:
logs:PutSubscriptionFilterlogs:DescribeLogGroupslogs:GetLogEventss3:PutObject
Adjunta este rol a tu función de Lambda que exportará los registros a S3.
Configura Lambda para exportar registros a S3
Ve a la consola de Lambda y crea una función nueva.
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 ) ```- Reemplaza
your-s3-bucket-namepor el nombre real de tu bucket de S3.
- Reemplaza
Adjunta el rol de IAM a la función de Lambda que creaste anteriormente.
En la consola de CloudWatch, ve a la sección Registros.
Selecciona el grupo de registros, por ejemplo,
/ec2/system/logs.Haz clic en Acciones > Crear filtro de suscripción.
Establece el destino en la función de Lambda que creaste antes.
Configura un feed en Google SecOps para transferir registros de instancias EC2 de AWS
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de instancias de AWS EC2.
- Selecciona Amazon S3 V2 como el Tipo de fuente.
- Selecciona Instancia de AWS EC2 como el Tipo de registro.
- Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
- URI de S3: Es el URI del bucket.
s3://your-log-bucket-name/- Reemplaza
your-log-bucket-namepor el nombre real del bucket.
- Reemplaza
Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días especificada. El valor predeterminado es de 180 días.
ID de clave de acceso: Es la clave de acceso del usuario con acceso al bucket de S3.
Clave de acceso secreta: Es la clave secreta del usuario con acceso al bucket de S3.
Espacio de nombres del recurso: Es el espacio de nombres del recurso.
Etiquetas de transmisión: Es la etiqueta que se aplicará a los eventos de este feed.
- URI de S3: Es el URI del bucket.
Haz clic en Siguiente.
Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
Architecture |
entity.entity.asset.attribute.labels.key=instances_set_architecture, entity.entity.asset.attribute.labels.value |
El valor se toma directamente del campo Instances.Architecture en el registro sin procesar. |
AmiLaunchIndex |
entity.entity.asset.attribute.labels.key=instances_set_ami_launch_index, entity.entity.asset.attribute.labels.value |
El valor se toma directamente del campo Instances.AmiLaunchIndex en el registro sin procesar. |
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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de Instances.BlockDeviceMapping.Ebs.Status. |
BlockDeviceMapping.Ebs.VolumeID |
entity.entity.resource_ancestors.product_object_id, entity.entity.resource_ancestors.resource_type=VOLUME |
El valor se toma de 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 |
El valor se toma de Instances.BlockDeviceMapping.Name. |
BootMode |
entity.entity.asset.attribute.labels.key=instances_set_boot_mode, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.BootMode. |
CapacityReservationID |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_id, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.CapacityReservationID. |
CapacityReservationSpecification.CapacityReservationPreference |
entity.entity.asset.attribute.labels.key=instances_set_capacity_reservation_specification_capacity_reservation_preference, entity.entity.asset.attribute.labels.value |
El valor se toma de 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 |
El valor se toma de Instances.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationID. |
CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn |
entity.entity.resource_ancestors.name, entity.entity.resource_ancestors.resource_subtype=Capacity Reservation Arn |
El valor se toma de Instances.CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationResourceGroupArn. |
ClientToken |
entity.entity.asset.attribute.labels.key=instances_set_client_token, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.ClientToken. |
CPU.AmdSevSnp |
entity.entity.asset.attribute.labels.key=instances_set_cpu_options_amd_sev_snp, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.CPU.AmdSevSnp. |
CPU.CoreCount |
entity.entity.asset.hardware.cpu_number_cores |
El valor se toma de Instances.CPU.CoreCount. |
CPU.ThreadsPerCore |
entity.entity.asset.attribute.labels.key=instances_set_cpu_options_threads_per_core, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.CPU.ThreadsPerCore. |
CurrentInstanceBootMode |
entity.entity.asset.attribute.labels.key=instances_set_current_instance_boot_mode, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.CurrentInstanceBootMode. |
DNSName |
entity.entity.network.dns_domain |
El valor se toma de Instances.DNSName. |
EbsOptimized |
entity.entity.asset.attribute.labels.key=instances_set_ebs_optimized, entity.entity.asset.attribute.labels.value |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de Instances.ElasticGpuAssociationSet.ElasticGpuID. |
ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorArn |
entity.entity.resource_ancestors.name, entity.entity.resource_ancestors.resource_subtype=Elastic Interface Accelerator Arn |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de Instances.ElasticInferenceAcceleratorAssociationSet.ElasticInferenceAcceleratorAssociationTime. |
EnaSupport |
entity.entity.asset.attribute.labels.key=instances_set_ena_support, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.EnaSupport. |
EnclaveOptions.Enabled |
entity.entity.asset.attribute.labels.key=instances_set_enclave_options_enabled, entity.entity.asset.attribute.labels.value |
El valor se toma de 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 |
El valor se toma de GroupSet.GroupID. El primer GroupID del array se asigna a entity.entity.group.product_object_id. Los valores de GroupID posteriores se asignan como etiquetas. |
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 |
El valor se toma de GroupSet.GroupName. El primer GroupName del array se asigna a entity.entity.group.group_display_name. Los valores de GroupName posteriores se asignan como etiquetas. |
HibernationOptions |
entity.entity.asset.attribute.labels.key=instances_set_hibernation_options, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.HibernationOptions. |
HibernationOptions.Configured |
entity.entity.asset.attribute.labels.key=instances_set_hibernation_options_configured, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.HibernationOptions.Configured. |
Hypervisor |
entity.entity.asset.attribute.labels.key=instances_set_hypervisor, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.Hypervisor. |
IamInstanceProfile.Arn |
entity.entity.resource_ancestors.name, entity.entity.resource_ancestors.resource_subtype=Instance Profile Arn |
El valor se toma de Instances.IamInstanceProfile.Arn. |
IamInstanceProfile.ID |
entity.entity.resource_ancestors.product_object_id |
El valor se toma de Instances.IamInstanceProfile.ID. |
ImageID |
entity.entity.resource_ancestors.product_object_id, entity.entity.resource_ancestors.resource_type=IMAGE |
El valor se toma de Instances.ImageID. |
InstanceID |
entity.metadata.product_entity_id, entity.entity.asset.asset_id |
El valor se toma de Instances.InstanceID. |
InstanceLifecycle |
entity.entity.asset.attribute.labels.key=instances_set_instance_lifecycle, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.InstanceLifecycle. |
InstanceState.Code |
entity.entity.asset.attribute.labels.key=instances_set_instance_state_code, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.InstanceState.Code. |
InstanceState.Name |
entity.entity.asset.deployment_status |
El valor se deriva de Instances.InstanceState.Name. Si el valor es running, el campo del UDM se establece en ACTIVE. Si el valor es shutting-down o stopping, el campo de UDM se establece en PENDING_DECOMMISSION. Si el valor es stopped o terminated, el campo de UDM se establece en DECOMMISSIONED. |
InstanceType |
entity.entity.asset.category |
El valor se toma de Instances.InstanceType. |
IPAddress |
entity.entity.asset.ip |
El valor se toma de Instances.IPAddress. |
Ipv6Address |
entity.entity.asset.ip |
El valor se toma de Instances.Ipv6Address. |
KernelID |
entity.entity.asset.attribute.labels.key=instances_set_kernel_id, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.KernelID. |
KeyName |
entity.entity.asset.attribute.labels.key=instances_set_key_name, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.KeyName. |
LaunchTime |
entity.metadata.creation_timestamp |
El valor se toma de Instances.LaunchTime. |
LicenseSet.LicenseConfigurationArn |
entity.entity.resource_ancestors.name, entity.entity.resource_ancestors.resource_subtype=License Configuration Arn |
El valor se toma de Instances.LicenseSet.LicenseConfigurationArn. |
MaintenanceOptions |
entity.entity.asset.attribute.labels.key=instances_set_maintenance_options_auto_recovery, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.MaintenanceOptions. |
MetadataOptions.HTTPEndpoint |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_endpoint, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.MetadataOptions.HTTPEndpoint. |
MetadataOptions.HTTPProtocolIpv6 |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_protocol_ipv6, entity.entity.asset.attribute.labels.value |
El valor se toma de 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 |
El valor se toma de Instances.MetadataOptions.HTTPPutResponseHopLimit. |
MetadataOptions.HTTPTokens |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_http_tokens, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.MetadataOptions.HTTPTokens. |
MetadataOptions.InstanceMetadataTags |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_instance_metadata_tags, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.MetadataOptions.InstanceMetadataTags. |
MetadataOptions.State |
entity.entity.asset.attribute.labels.key=instances_set_metadata_options_state, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.MetadataOptions.State. |
Monitoring.State |
entity.entity.asset.attribute.labels.key=instances_set_monitoring_state, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.Monitoring.State. |
NetworkInterfaceSet.Association.CarrierIP |
entity.entity.asset.nat_ip |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.Association.PublicDNSName. |
NetworkInterfaceSet.Association.PublicIP |
entity.entity.asset.ip |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.Attachment.Status. |
NetworkInterfaceSet.Description |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_description, entity.entity.asset.attribute.labels.value |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.InterfaceType. |
NetworkInterfaceSet.Ipv6AddressesSet.Ipv6Address |
entity.entity.asset.ip |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.Ipv6AddressesSet.IsPrimaryIpv6. |
NetworkInterfaceSet.MacAddress |
entity.entity.asset.mac |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.NetworkInterfaceID. |
NetworkInterfaceSet.OwnerID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_owner_id, entity.entity.asset.attribute.labels.value |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.PrivateDNSName. |
NetworkInterfaceSet.PrivateIPAddress |
entity.entity.asset.ip |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.PrivateIPAddressesSet.Primary. |
NetworkInterfaceSet.PrivateIPAddressesSet.PrivateIPAddress |
entity.entity.asset.ip |
El valor se toma de 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 |
El valor se toma de Instances.NetworkInterfaceSet.SourceDestCheck. |
NetworkInterfaceSet.Status |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_status, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.NetworkInterfaceSet.Status. |
NetworkInterfaceSet.SubnetID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_subnet_id, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.NetworkInterfaceSet.SubnetID. |
NetworkInterfaceSet.VpcID |
entity.entity.asset.attribute.labels.key=instances_set_network_interface_set_vpc_id, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.NetworkInterfaceSet.VpcID. |
OutpostArn |
entity.relations.entity.asset.product_object_id |
El valor se toma de Instances.OutpostArn. |
Placement.Affinity |
entity.entity.asset.attribute.labels.key=instances_set_placement_affinity, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.Placement.Affinity. |
Placement.AvailabilityZone |
entity.entity.asset.attribute.cloud.availability_zone |
El valor se toma de Instances.Placement.AvailabilityZone. |
Placement.GroupID |
entity.entity.group.attribute.labels.key=instances_set_placement_group_id, entity.entity.group.attribute.labels.value |
El valor se toma de Instances.Placement.GroupID. |
Placement.GroupName |
entity.entity.group.attribute.labels.key=instances_set_placement_group_name, entity.entity.group.attribute.labels.value |
El valor se toma de Instances.Placement.GroupName. |
Placement.HostID |
entity.relations.entity.asset.asset_id |
El valor se toma de 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 |
El valor se toma de Instances.Placement.HostResourceGroupArn. |
Placement.PartitionNumber |
entity.entity.asset.attribute.labels.key=instances_set_placement_partition_number, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.Placement.PartitionNumber. |
Placement.SpreadDomain |
entity.entity.asset.attribute.labels.key=instances_set_placement_spread_domain, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.Placement.SpreadDomain. |
Placement.Tenancy |
entity.entity.asset.attribute.labels.key=instances_set_placement_tenancy, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.Placement.Tenancy. |
PlatformDetails |
entity.entity.asset.attribute.labels.key=instances_set_platform_details, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.PlatformDetails. |
PrivateDNSName |
entity.entity.network.dns.questions.name |
El valor se toma de Instances.PrivateDNSName. |
PrivateDNSNameOptions.EnableResourceNameDnsAAAARecord |
entity.entity.network.dns.questions.type |
Si el valor es true, el campo del UDM se establece en 28. |
PrivateDNSNameOptions.EnableResourceNameDnsARecord |
entity.entity.network.dns.questions.type |
Si el valor es true, el campo de UDM se establece en 1. |
PrivateDNSNameOptions.HostnameType |
entity.entity.asset.attribute.labels.key=instances_set_private_dns_name_options_hostname_type, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.PrivateDNSNameOptions.HostnameType. |
PrivateIPAddress |
entity.entity.asset.ip |
El valor se toma de Instances.PrivateIPAddress. |
ProductCodes.ProductCode |
entity.entity.asset.attribute.labels.key=instances_set_product_codes_product_code, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.ProductCodes.ProductCode. |
ProductCodes.Type |
entity.entity.asset.attribute.labels.key=instances_set_product_codes_type, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.ProductCodes.Type. |
RamdiskID |
entity.entity.asset.attribute.labels.key=instances_set_ramdisk_id, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.RamdiskID. |
Reason |
entity.entity.asset.attribute.labels.key=instances_set_reason, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.Reason. |
ReservationID |
entity.additional.fields.key=reservation_id, entity.additional.fields.value.string_value |
El valor se toma de ReservationID. |
RequesterID |
entity.additional.fields.key=requester_id, entity.additional.fields.value.string_value |
El valor se toma de RequesterID. |
RootDeviceName |
entity.entity.asset.attribute.labels.key=instances_set_root_device_name, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.RootDeviceName. |
RootDeviceType |
entity.entity.asset.attribute.labels.key=instances_set_root_device_type, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.RootDeviceType. |
SourceDestCheck |
entity.entity.asset.attribute.labels.key=instances_set_source_dest_check, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.SourceDestCheck. |
SpotInstanceRequestID |
entity.entity.asset.attribute.labels.key=instances_set_spot_instance_request_id, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.SpotInstanceRequestID. |
SriovNetSupport |
entity.entity.asset.attribute.labels.key=instances_set_sriov_net_support, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.SriovNetSupport. |
StateReason |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_code, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.StateReason. |
StateReason.Code |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_code, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.StateReason.Code. |
StateReason.Message |
entity.entity.asset.attribute.labels.key=instances_set_state_reason_message, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.StateReason.Message. |
SubnetID |
entity.entity.resource_ancestors.product_object_id, entity.entity.resource_ancestors.resource_type=SUBNET |
El valor se toma de Instances.SubnetID. |
TagSet.Key |
entity.entity.asset.attribute.labels.key |
El valor se toma de Instances.TagSet.Key. |
TagSet.Value |
entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.TagSet.Value. |
TpmSupport |
entity.entity.asset.attribute.labels.key=instances_set_tpm_support, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.TpmSupport. |
UsageOperation |
entity.entity.asset.attribute.labels.key=instances_set_usage_operation, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.UsageOperation. |
UsageOperationUpdateTime |
entity.entity.asset.attribute.labels.key=instances_set_usage_operation_update_time, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.UsageOperationUpdateTime. |
VirtualizationType |
entity.entity.asset.attribute.labels.key=instances_set_virtualization_type, entity.entity.asset.attribute.labels.value |
El valor se toma de Instances.VirtualizationType. |
VpcID |
entity.entity.resource_ancestors.product_object_id, entity.entity.resource_ancestors.resource_type=VPC_NETWORK |
El valor se toma de Instances.VpcID. |
collection_time |
entity.metadata.collected_timestamp |
El valor se toma directamente del campo collection_time en el registro sin procesar. Se codificó como AMAZON_WEB_SERVICES. Se codifica como AMAZON_WEB_SERVICES para los tipos de recursos IMAGE, VOLUME, SUBNET, VPC_NETWORK, Instance Profile Arn, Capacity Reservation Arn, Elastic Interface Accelerator Arn y License Configuration Arn. Se codificó como SERVER. Se codificó como Amazon EC2. Se codificó como AWS. Se codifica como ASSET si Instances.Placement.HostID está presente y no está vacío. Se codifica como EXECUTES si Instances.Placement.HostID está presente y no está vacío. Se codifica como ASSET. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.