Recopila registros de instancias de AWS EC2

Compatible con:

En este documento, se explica cómo configurar los registros de instancias de AWS EC2 en Google Security Operations para la supervisión y el 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 a la UDM, controla varios tipos de datos y estructuras anidadas, incluidas interfaces de red, grupos y etiquetas, y también genera relaciones de activos y metadatos. También realiza el 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 AWS IAM y S3

  1. Crea un bucket de Amazon S3 siguiendo esta guía del usuario: Cómo crear un bucket.
  2. Guarda el Nombre y la Región del bucket para usarlos más adelante.
  3. Crea un usuario siguiendo esta guía: Cómo crear un usuario de IAM.
  4. Selecciona el Usuario creado.
  5. Selecciona la pestaña Credenciales de seguridad.
  6. Haz clic en Crear clave de acceso en la sección Claves de acceso.
  7. Selecciona Servicio de terceros como Caso de uso.
  8. Haz clic en Siguiente.
  9. Opcional: Agrega una etiqueta de descripción.
  10. Haz clic en Crear clave de acceso.
  11. Haz clic en Descargar archivo CSV para guardar la Clave de acceso y la Clave de acceso secreta para usarlas más tarde.
  12. Haz clic en Listo.
  13. Selecciona la pestaña Permisos.
  14. Haz clic en Agregar permisos en la sección Políticas de permisos.
  15. Selecciona Agregar permisos.
  16. Selecciona Adjuntar políticas directamente.
  17. Busca y selecciona la política AmazonS3FullAccess.
  18. Haz clic en Siguiente.
  19. Haz clic en Agregar permisos.

Configura EC2 para que envíe registros a los registros de CloudWatch

  1. 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-ip
    
  2. Instala 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 awslogs
    
  3. Abre el archivo de configuración de CloudWatch Logs:

    sudo vi /etc/awslogs/awslogs.conf
    
  4. Crea una secuencia de comandos 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.log
    
  5. Guarda la secuencia de comandos como /etc/init.d/metadata_script.sh y ejecútala al inicio de la instancia con crontab o rc.local.

  6. Abre el archivo de configuración del agente de CloudWatch Logs:

    sudo vi /etc/awslogs/awslogs.conf
    
  7. Agrega 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}
    
  8. Guarda la configuración y sal del editor.

  9. Inicia el agente de CloudWatch Logs:

    • En Amazon Linux:
    sudo service awslogs start
    
    • En Ubuntu:
    sudo service awslogs start
    
  10. Verifica que el agente esté en ejecución:

    sudo service awslogs status
    

Configura los permisos de IAM para Lambda y S3

  1. En la consola de IAM de AWS, crea un nuevo rol de IAM con los siguientes permisos:

    • logs:PutSubscriptionFilter
    • logs:DescribeLogGroups
    • logs:GetLogEvents
    • s3:PutObject
  2. Adjunta este rol a tu función de Lambda que exportará los registros a S3.

Configura Lambda para exportar registros a S3

  1. 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-name por el nombre real de tu bucket de S3.
  2. Adjunta el rol de IAM a la función de Lambda que creaste antes.

  3. En la consola de CloudWatch, ve a la sección Registros.

  4. Selecciona el grupo de registros, por ejemplo, /ec2/system/logs.

  5. Haz clic en Acciones > Crear filtro de suscripciones.

  6. Establece el destino en la función Lambda que creaste antes.

Configura un feed en Google SecOps para transferir registros de instancias de AWS EC2

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de instancias de AWS EC2.
  4. Selecciona Amazon S3 como el Tipo de fuente.
  5. Selecciona Instancia de AWS EC2 como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. Especifica valores para los siguientes parámetros de entrada:

    • Región: Es la región en la que se encuentra el bucket de Amazon S3.
    • URI de S3: Es el URI del bucket.
      • s3://your-log-bucket-name/
        • Reemplaza your-log-bucket-name por el nombre real del bucket.
    • El URI es un: Selecciona Directorio o Directorio que incluye subdirectorios.
    • Opciones de eliminación de fuentes: Selecciona la opción de eliminación según tus preferencias.

    • 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 transferencia: Es la etiqueta que se aplicará a los eventos de este feed.

  8. Haz clic en Siguiente.

  9. Revisa la configuración del nuevo 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 UDM se establece en ACTIVE. Si el valor es shutting-down o stopping, el campo UDM se establece en PENDING_DECOMMISSION. Si el valor es stopped o terminated, el campo 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 y 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 y 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 UDM se establece en 28.
PrivateDNSNameOptions.EnableResourceNameDnsARecord entity.entity.network.dns.questions.type Si el valor es true, el campo 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 codifica en AMAZON_WEB_SERVICES. Se codifica de forma fija en AMAZON_WEB_SERVICES para los tipos de recursos IMAGE, VOLUME, SUBNET, VPC_NETWORK, Arn de perfil de instancia, Arn de reserva de capacidad, Arn de acelerador de interfaz elástica y Arn de configuración de licencia. Se codifica en SERVER. Se codifica en Amazon EC2. Se codifica en AWS. Se codifica de forma fija en ASSET si Instances.Placement.HostID está presente y no está vacío. Se codifica de forma fija en EXECUTES si Instances.Placement.HostID está presente y no está vacío. Se codifica en ASSET.

Cambios

2024-01-31

  • Se agregó compatibilidad con el nuevo esquema.

2023-12-14

  • Es un analizador creado recientemente.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.