Recopila registros de AWS CloudWatch
En este documento, se explica cómo transferir registros de AWS CloudWatch a Google Security Operations. AWS CloudWatch es un servicio de supervisión y observabilidad que recopila datos operativos en forma de registros, métricas y eventos. Esta integración te permite enviar estos registros a Google SecOps para su análisis y supervisión.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso privilegiado a AWS
Crea un bucket de Amazon S3
Te recomendamos que uses un bucket creado específicamente para los registros de CloudWatch.
- Abre la consola de Amazon S3.
- Si es necesario, puedes cambiar la región.
- En la barra de navegación, selecciona la región en la que residen tus registros de CloudWatch.
- Haga clic en Crear bucket.
- Nombre del bucket: Ingresa un nombre significativo para el bucket.
- Región: Selecciona la región en la que residen tus datos de CloudWatch Logs.
- Haz clic en Crear.
Crea un usuario de IAM con acceso completo a los registros de Amazon S3 y CloudWatch
- Abre la consola de IAM.
- Haz clic en Usuarios > Agregar usuario.
- Ingresa un nombre de usuario (por ejemplo, CWExport).
- Selecciona Acceso programático y Acceso a la Consola de administración de AWS.
- Selecciona Contraseña generada automáticamente o Contraseña personalizada.
- Haz clic en Siguiente > Permisos.
- Elige Adjuntar las políticas existentes de forma directa.
- Busca y selecciona las políticas AmazonS3FullAccess y CloudWatchLogsFullAccess para el usuario.
- Haz clic en Siguiente > Etiquetas.
- Haz clic en Siguiente > Revisar.
- Haz clic en Crear usuario.
Configura los permisos en el bucket de Amazon S3
- En la consola de Amazon S3, elige el bucket que creaste anteriormente.
- Haz clic en Permisos > Política de bucket.
En el Editor de políticas de bucket, agrega la siguiente política:
{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::cw-exported-logs", "Principal": { "Service": "logs.us-east-1.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-east-1.amazonaws.com" } } ] }
Cambia y actualiza las siguientes variables de
json
:- Cambia
cw-exported-logs
por el nombre de tu bucket de S3. - Cambia
random-string
por una cadena de caracteres generada de forma aleatoria. - Especifica el extremo de región correcto para Principal.
- Cambia
Haz clic en Guardar para establecer la política que acabas de agregar como la política de acceso en tu bucket.
Cómo configurar la exportación de CloudWatch
- Accede como el usuario de IAM que creaste anteriormente.
- Abre la consola de CloudWatch.
- En el menú de navegación, selecciona Grupos de registros.
- Selecciona el nombre de un grupo de registros existente o crea uno nuevo.
- Elige Actions > Export data to Amazon S3.
- En la pantalla Export data to Amazon S3, busca Define data export.
Establece el intervalo de tiempo para los datos que se exportarán con Desde y Hasta.
Elegir bucket de S3: Selecciona la cuenta asociada al bucket de Amazon S3.
Nombre del bucket de S3: Selecciona un bucket de Amazon S3.
Prefijo del bucket de S3: Ingresa la cadena generada de forma aleatoria que especificaste en la política del bucket.
Elige Exportar para exportar tus datos de registro a Amazon S3.
Para ver el estado de los datos de registro que exportaste a Amazon S3, selecciona Acciones > Ver todas las exportaciones a Amazon S3.
Configura feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds
- Centro de contenido > Paquetes de contenido
Configura feeds desde Configuración del SIEM > Feeds
Para configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Cómo configurar feeds por producto.
Para configurar un solo feed, sigue estos pasos:
- Ve a SIEM Settings > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de AWS CloudWatch).
- Selecciona Amazon S3 como el Tipo de fuente.
- Selecciona AWS CloudWatch como el Tipo de registro.
- Haz clic en Siguiente.
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 de tu bucket de S3.
- Reemplaza
- El URI es un: Selecciona Directorio o Directorio que incluye subdirectorios, según la estructura de tu bucket.
Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.
ID de clave de acceso: Es la clave de acceso del usuario con permisos para leer desde el bucket de S3.
Clave de acceso secreta: Es la clave secreta del usuario con permisos para leer desde el bucket de S3.
Haz clic en Siguiente.
Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Configura feeds desde el Centro de contenido
Especifica valores para los siguientes campos:
- 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 de tu bucket de S3.
- Reemplaza
- El URI es un: Selecciona Directorio o Directorio que incluye subdirectorios, según la estructura de tu bucket.
- Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.
ID de clave de acceso: Es la clave de acceso del usuario con permisos para leer desde el bucket de S3.
Clave de acceso secreta: Es la clave secreta del usuario con permisos para leer desde el bucket de S3.
Opciones avanzadas
- Nombre del feed: Es un valor completado previamente que identifica el feed.
- Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
- Espacio de nombres del recurso: Espacio de nombres asociado al feed.
- Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
account |
principal.user.userid |
El valor de account del registro sin procesar se asigna al campo principal.user.userid . |
account_id |
principal.user.userid |
El valor de account_id del registro sin procesar se asigna al campo principal.user.userid . |
AlertId |
metadata.product_log_id |
El valor de AlertId del registro sin procesar se asigna al campo metadata.product_log_id . |
arrivalTimestamp |
metadata.event_timestamp |
El valor de arrivalTimestamp del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp . |
attemptsMade |
additional.fields |
El valor de attemptsMade del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor al additional.fields con la clave "Attempts Made". |
awsAccountId |
principal.asset_id |
El valor de awsAccountId del registro sin procesar se antepone con "ID de cuenta de AWS: " y se asigna al campo principal.asset_id . |
billed_duration |
additional.fields |
El valor de billed_duration del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "billed_duration". |
BytesIn |
network.received_bytes |
El valor de BytesIn del registro sin procesar se convierte en un número entero sin signo y se asigna al campo network.received_bytes . |
cipher |
network.tls.cipher |
El valor de cipher del registro sin procesar se asigna al campo network.tls.cipher . |
Ciphers |
network.tls.client.supported_ciphers |
El valor de Ciphers del registro sin procesar se divide por comas y cada valor se agrega al array network.tls.client.supported_ciphers . |
cloudwatchLog |
security_result.description |
El valor de cloudwatchLog del registro sin procesar se asigna al campo security_result.description . |
CloudAccountId |
metadata.product_deployment_id |
El valor de CloudAccountId del registro sin procesar se asigna al campo metadata.product_deployment_id . |
CloudType |
target.resource.attribute.cloud.environment |
El valor de CloudType del registro sin procesar determina el valor de target.resource.attribute.cloud.environment . Si CloudType es "gcp", el valor es "GOOGLE_CLOUD_PLATFORM". Si CloudType es "aws", el valor es "AMAZON_WEB_SERVICES". Si CloudType es "azure", el valor es "MICROSOFT_AZURE". |
Context.Execution.Id |
target.resource.attribute.labels |
El valor de Context.Execution.Id del registro sin procesar se agrega como un par clave-valor al target.resource.attribute.labels con la clave "ID de contexto". |
Context.Execution.Name |
target.resource.attribute.labels |
El valor de Context.Execution.Name del registro sin procesar se agrega como un par clave-valor al target.resource.attribute.labels con la clave "Context Name". |
Context.Execution.RoleArn |
target.resource.product_object_id |
El valor de Context.Execution.RoleArn del registro sin procesar se asigna al campo target.resource.product_object_id . |
descr |
metadata.description |
El valor de descr del registro sin procesar, después de quitar los espacios en blanco adicionales, se asigna al campo metadata.description , a menos que sea "-". Si descr está vacío, se usa el valor de log . |
destination.name |
target.location.country_or_region |
El valor de destination.name del registro sin procesar se asigna al campo target.location.country_or_region . |
destination.properties.prefix |
target.resource.attribute.labels |
El valor de destination.properties.prefix del registro sin procesar se agrega como un par clave-valor al objeto target.resource.attribute.labels con la clave "Prefijo de propiedades de destino". |
detail.additionalEventData.configRuleArn |
security_result.rule_id |
El valor de detail.additionalEventData.configRuleArn del registro sin procesar se asigna al campo security_result.rule_id . |
detail.additionalEventData.configRuleName |
security_result.rule_name |
El valor de detail.additionalEventData.configRuleName del registro sin procesar se asigna al campo security_result.rule_name . |
detail.additionalEventData.managedRuleIdentifier |
additional.fields |
El valor de detail.additionalEventData.managedRuleIdentifier del registro sin procesar se agrega como un par clave-valor al objeto additional.fields con la clave "managedRuleIdentifier". |
detail.additionalEventData.notificationJobType |
additional.fields |
El valor de detail.additionalEventData.notificationJobType del registro sin procesar se agrega como un par clave-valor al objeto additional.fields con la clave "notificationJobType". |
detail.awsAccountId |
principal.asset_id |
El valor de detail.awsAccountId del registro sin procesar se antepone con "ID de cuenta de AWS: " y se asigna al campo principal.asset_id . |
detail.awsRegion |
principal.location.name |
El valor de detail.awsRegion del registro sin procesar se asigna al campo principal.location.name . |
detail.configRuleArn |
security_result.rule_id |
El valor de detail.configRuleArn del registro sin procesar se asigna al campo security_result.rule_id . |
detail.configRuleName |
security_result.rule_name |
El valor de detail.configRuleName del registro sin procesar se asigna al campo security_result.rule_name . |
detail.configurationItem.awsAccountId |
principal.user.userid |
El valor de detail.configurationItem.awsAccountId del registro sin procesar se asigna al campo principal.user.userid . |
detail.configurationItem.awsRegion |
target.location.country_or_region |
El valor de detail.configurationItem.awsRegion del registro sin procesar se asigna al campo target.location.country_or_region . |
detail.configurationItem.configuration.complianceType |
security_result.summary |
El valor de detail.configurationItem.configuration.complianceType del registro sin procesar se asigna al campo security_result.summary . |
detail.configurationItem.configuration.targetResourceId |
target.resource.attribute.labels |
El valor de detail.configurationItem.configuration.targetResourceId del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "configurationItem configuration targetResourceId". |
detail.configurationItem.configuration.targetResourceType |
target.resource.attribute.labels |
El valor de detail.configurationItem.configuration.targetResourceType del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "configurationItem configuration targetResourceType". |
detail.configurationItem.configurationItemCaptureTime |
_target.asset.attribute.creation_time |
El valor de detail.configurationItem.configurationItemCaptureTime del registro sin procesar se convierte en una marca de tiempo y se asigna al campo _target.asset.attribute.creation_time . |
detail.configurationItem.configurationItemStatus |
target.resource.attribute.labels |
El valor de detail.configurationItem.configurationItemStatus del registro sin procesar se agrega como un par clave-valor al target.resource.attribute.labels con la clave "configurationItem configurationItemStatus". |
detail.configurationItem.configurationStateId |
target.resource.attribute.labels |
El valor de detail.configurationItem.configurationStateId del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor al target.resource.attribute.labels con la clave configurationItem configurationStateId . |
detail.configurationItem.resourceId |
target.resource.id |
El valor de detail.configurationItem.resourceId del registro sin procesar se asigna al campo target.resource.id . |
detail.configurationItem.resourceType |
target.resource.resource_subtype |
El valor de detail.configurationItem.resourceType del registro sin procesar se asigna al campo target.resource.resource_subtype . |
detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn |
security_result.rule_id |
El valor de detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn del registro sin procesar se asigna al campo security_result.rule_id . |
detail.eventCategory |
security_result.category_details |
El valor de detail.eventCategory del registro sin procesar se asigna al campo security_result.category_details . |
detail.eventID |
metadata.product_log_id |
El valor de detail.eventID del registro sin procesar se asigna al campo metadata.product_log_id . |
detail.eventName |
additional.fields |
El valor de detail.eventName del registro sin procesar se agrega como un par clave-valor al objeto additional.fields con la clave "Nombre del evento". |
detail.eventSource |
target.application |
El valor de detail.eventSource del registro sin procesar se asigna al campo target.application . |
detail.eventType |
additional.fields |
El valor de detail.eventType del registro sin procesar se agrega como un par clave-valor al objeto additional.fields con la clave "Tipo de evento". |
detail.eventVersion |
metadata.product_version |
El valor de detail.eventVersion del registro sin procesar se asigna al campo metadata.product_version . |
detail.managementEvent |
additional.fields |
El valor de detail.managementEvent del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor al objeto additional.fields con la clave "detail managementEvent". |
detail.messageType |
target.resource.attribute.labels |
El valor de detail.messageType del registro sin procesar se agrega como un par clave-valor al objeto target.resource.attribute.labels con la clave "Tipo de mensaje". |
detail.newEvaluationResult.complianceType |
security_result.summary |
El valor de detail.newEvaluationResult.complianceType del registro sin procesar se asigna al campo security_result.summary . |
detail.newEvaluationResult.configRuleInvokedTime |
additional.fields |
El valor de detail.newEvaluationResult.configRuleInvokedTime del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "newEvaluationResult_configRuleInvokedTime". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
El valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "newEvaluationResult_configRuleName". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
El valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "newEvaluationResult_resourceId". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
El valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "newEvaluationResult_resourceType". |
detail.newEvaluationResult.resultRecordedTime |
additional.fields |
El valor de detail.newEvaluationResult.resultRecordedTime del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "newEvaluationResult_resultRecordedTime". |
detail.oldEvaluationResult.configRuleInvokedTime |
additional.fields |
El valor de detail.oldEvaluationResult.configRuleInvokedTime del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "oldEvaluationResult_configRuleInvokedTime". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
El valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave oldEvaluationResult_configRuleName . |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
El valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "oldEvaluationResult_resourceId". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
El valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "oldEvaluationResult_resourceType". |
detail.oldEvaluationResult.resultRecordedTime |
additional.fields |
El valor de detail.oldEvaluationResult.resultRecordedTime del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "oldEvaluationResult_resultRecordedTime". |
detail.readOnly |
additional.fields |
El valor de detail.readOnly del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor al objeto additional.fields con la clave "detail readOnly". |
detail.recipientAccountId |
target.resource.attribute.labels |
El valor de detail.recipientAccountId del registro sin procesar se agrega como un par clave-valor al objeto target.resource.attribute.labels con la clave "ID de cuenta del destinatario". |
detail.recordVersion |
metadata.product_version |
El valor de detail.recordVersion del registro sin procesar se asigna al campo metadata.product_version . |
detail.requestID |
target.resource.attribute.labels |
El valor de detail.requestID del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "ID de solicitud de detalle". |
detail.resourceType |
target.resource.resource_subtype |
El valor de detail.resourceType del registro sin procesar se asigna al campo target.resource.resource_subtype . |
detail.s3Bucket |
about.resource.name |
El valor de detail.s3Bucket del registro sin procesar se asigna al campo about.resource.name . |
detail.s3ObjectKey |
target.resource.attribute.labels |
El valor de detail.s3ObjectKey del registro sin procesar se agrega como un par clave-valor al objeto target.resource.attribute.labels con la clave "s3ObjectKey". |
detail.userAgent |
network.http.user_agent |
El valor de detail.userAgent del registro sin procesar se asigna al campo network.http.user_agent . |
detail.userIdentity.accessKeyId |
target.user.userid |
El valor de detail.userIdentity.accessKeyId del registro sin procesar se asigna al campo target.user.userid . |
detail.userIdentity.accountId |
metadata.product_deployment_id |
El valor de detail.userIdentity.accountId del registro sin procesar se asigna al campo metadata.product_deployment_id . |
detail.userIdentity.arn |
target.user.userid |
El valor de detail.userIdentity.arn del registro sin procesar se asigna al campo target.user.userid . |
detail.userIdentity.principalId |
principal.user.product_object_id |
El valor de detail.userIdentity.principalId del registro sin procesar se asigna al campo principal.user.product_object_id . |
detail.userIdentity.sessionContext.attributes.mfaAuthenticated |
principal.user.attribute.labels |
El valor de detail.userIdentity.sessionContext.attributes.mfaAuthenticated del registro sin procesar se agrega como un par clave-valor al objeto principal.user.attribute.labels con la clave "mfaAuthenticated". |
detail.userIdentity.sessionContext.sessionIssuer.userName |
target.user.user_display_name |
El valor de detail.userIdentity.sessionContext.sessionIssuer.userName del registro sin procesar se asigna al campo target.user.user_display_name . |
detail.userIdentity.type |
principal.resource.type |
El valor de detail.userIdentity.type del registro sin procesar se asigna al campo principal.resource.type . |
detail-type |
metadata.product_event_type |
El valor de detail-type del registro sin procesar se asigna al campo metadata.product_event_type . |
device |
principal.asset.product_object_id |
El valor de device del registro sin procesar se asigna al campo principal.asset.product_object_id . |
digestPublicKeyFingerprint |
target.file.sha1 |
El valor de digestPublicKeyFingerprint del registro sin procesar se asigna al campo target.file.sha1 . |
digestS3Bucket |
principal.resource.name |
El valor de digestS3Bucket del registro sin procesar se asigna al campo principal.resource.name . |
digestS3Object |
principal.asset.asset_id |
El valor de digestS3Object del registro sin procesar se antepone con "Objeto S3: " y se asigna al campo principal.asset.asset_id . |
digestSignatureAlgorithm |
network.tls.cipher |
El valor de digestSignatureAlgorithm del registro sin procesar se asigna al campo network.tls.cipher . |
digestStartTime |
metadata.event_timestamp |
El valor de digestStartTime del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp . |
dimensions.VolumeId |
additional.fields |
El valor de dimensions.VolumeId del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "VolumeId". |
duration |
additional.fields |
El valor de duration del registro sin procesar se agrega como un par clave-valor al objeto additional.fields con la clave "duration". |
errorCode |
security_result.rule_name |
El valor de errorCode del registro sin procesar se asigna al campo security_result.rule_name . |
errorMessage |
security_result.summary |
El valor de errorMessage del registro sin procesar se asigna al campo security_result.summary . |
executionId |
principal.process.pid |
El valor de executionId del registro sin procesar se asigna al campo principal.process.pid . |
host |
principal.hostname , principal.ip |
El valor de host del registro sin procesar, con guiones reemplazados por puntos, se analiza como una dirección IP y se asigna al campo principal.ip si se realiza correctamente. De lo contrario, se asigna al campo principal.hostname . |
http_verb |
network.http.method |
El valor de http_verb del registro sin procesar se convierte a mayúsculas y se asigna al campo network.http.method . |
kubernetes.container_hash |
additional.fields |
El valor de kubernetes.container_hash del registro sin procesar se agrega como un par clave-valor al objeto additional.fields con la clave "container_hash". |
kubernetes.container_image |
additional.fields |
El valor de kubernetes.container_image del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "container_image". |
kubernetes.container_name |
additional.fields |
El valor de kubernetes.container_name del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "container_name". |
kubernetes.docker_id |
principal.asset_id |
El valor de kubernetes.docker_id del registro sin procesar se antepone con "id: " y se asigna al campo principal.asset_id . |
kubernetes.host |
principal.hostname , principal.ip |
El valor de kubernetes.host del registro sin procesar, con guiones reemplazados por puntos, se analiza como una dirección IP y se asigna al campo principal.ip si se realiza correctamente. De lo contrario, se asigna al campo principal.hostname . |
kubernetes.namespace |
principal.namespace |
El valor de kubernetes.namespace del registro sin procesar se asigna al campo principal.namespace . |
kubernetes.namespace_name |
principal.namespace |
El valor de kubernetes.namespace_name del registro sin procesar se asigna al campo principal.namespace . |
kubernetes.pod_id |
principal.asset.asset_id |
El valor de kubernetes.pod_id del registro sin procesar se antepone con "pod_id: " y se asigna al campo principal.asset.asset_id . |
kubernetes.pod_name |
additional.fields |
El valor de kubernetes.pod_name del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "pod name". |
lambdaArn |
principal.hostname |
El valor de lambdaArn del registro sin procesar se asigna al campo principal.hostname . |
level |
security_result.severity |
El valor de level del registro sin procesar determina el valor de security_result.severity . Si level es "Info", el valor es "INFORMATIONAL". Si level es "Error", el valor es "ERROR". Si level es "Warning", el valor es "MEDIUM". |
log |
metadata.description |
El valor de log del registro sin procesar se asigna al campo metadata.description si descr está vacío. |
logFiles |
about |
Para cada elemento del array logFiles del registro sin procesar, se crea un objeto about con file.full_path establecido en s3Object , asset.hostname establecido en s3Bucket y file.sha256 establecido en hashValue . |
log_processed.cause |
security_result.summary |
El valor de log_processed.cause del registro sin procesar se asigna al campo security_result.summary . |
log_processed.ids |
intermediary.hostname |
Para cada elemento del array log_processed.ids del registro sin procesar, se crea un objeto intermediary con hostname establecido en el valor del elemento. |
log_processed.level |
security_result.severity |
El valor de log_processed.level del registro sin procesar se asigna al campo security_result.severity . |
log_processed.msg |
metadata.description |
El valor de log_processed.msg del registro sin procesar se asigna al campo metadata.description . |
log_processed.ts |
metadata.event_timestamp |
El valor de log_processed.ts del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp . |
log_type |
metadata.log_type |
El valor de log_type del registro sin procesar se asigna al campo metadata.log_type . Este es un campo personalizado que se agregó para brindar contexto. |
logevent.message |
security_result.description |
El valor de logevent.message del registro sin procesar se asigna al campo security_result.description . También se analiza con grok para extraer campos adicionales. |
logGroup |
security_result.about.resource.name |
El valor de logGroup del registro sin procesar se asigna al campo security_result.about.resource.name . |
logStream |
security_result.about.resource.attribute.labels |
El valor de logStream del registro sin procesar se agrega como un par clave-valor al objeto security_result.about.resource.attribute.labels con la clave "logStream". |
memory_used |
additional.fields |
El valor de memory_used del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "memory_used". |
metric_name |
additional.fields |
El valor de metric_name del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "metric_name". |
metric_stream_name |
additional.fields |
El valor de metric_stream_name del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "metric_stream_name". |
namespace |
principal.namespace |
El valor de namespace del registro sin procesar se asigna al campo principal.namespace . |
owner |
principal.user.userid |
El valor de owner del registro sin procesar se asigna al campo principal.user.userid . |
parameters |
additional.fields |
El valor de parameters del registro sin procesar se agrega como un par clave-valor al objeto additional.fields con la clave "Parameters". |
Path |
principal.process.file.full_path |
El valor de Path del registro sin procesar se asigna al campo principal.process.file.full_path . |
pid |
principal.process.pid |
El valor de pid del registro sin procesar se asigna al campo principal.process.pid . |
PolicyName |
security_result.rule_name |
El valor de PolicyName del registro sin procesar se asigna al campo security_result.rule_name . |
prin_host |
principal.hostname |
El valor de prin_host del registro sin procesar se asigna al campo principal.hostname . |
principal_hostname |
principal.hostname |
El valor de principal_hostname del registro sin procesar se asigna al campo principal.hostname . |
process |
principal.application |
El valor de process del registro sin procesar se asigna al campo principal.application . |
rawData |
additional.fields |
El valor de rawData del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "Datos sin procesar". |
Recommendation |
security_result.detection_fields |
El valor de Recommendation del registro sin procesar se agrega como un par clave-valor al security_result.detection_fields con la clave "Recommendation". |
referral_url |
network.http.referral_url |
El valor de referral_url del registro sin procesar se asigna al campo network.http.referral_url . |
region |
principal.location.name |
El valor de region del registro sin procesar se asigna al campo principal.location.name . |
resp_code |
network.http.response_code |
El valor de resp_code del registro sin procesar se convierte en un número entero y se asigna al campo network.http.response_code . |
resource_url |
network.http.referral_url |
El valor de resource_url del registro sin procesar se asigna al campo network.http.referral_url . |
ResourceType |
target.resource.resource_subtype |
El valor de ResourceType del registro sin procesar se asigna al campo target.resource.resource_subtype . |
response_body |
additional.fields |
El valor de response_body del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "Cuerpo de la respuesta". |
Role |
target.resource.product_object_id |
El valor de Role del registro sin procesar se asigna al campo target.resource.product_object_id . |
s3_bucket_path |
target.file.full_path |
El valor de s3_bucket_path del registro sin procesar se asigna al campo target.file.full_path . |
sec_result.category |
security_result.category |
El valor de sec_result.category se deriva de la lógica del analizador. Si descr contiene "se requiere autenticación", el valor es "AUTH_VIOLATION". |
sec_result.description |
security_result.description |
El valor de sec_result.description se deriva de la lógica del analizador. Se establece en el valor de cloudwatchLog si está presente. |
sec_result.severity |
security_result.severity |
El valor de sec_result.severity se deriva de la lógica del analizador. Se establece según el valor de severity o level . |
sec_result.summary |
security_result.summary |
El valor de sec_result.summary se deriva de la lógica del analizador. Se establece en el valor de log_processed.cause o errorMessage si está presente. |
security_result |
security_result |
El objeto security_result se construye a partir de varios campos y lógica del analizador. |
serverId |
additional.fields |
El valor de serverId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "server_id". |
severity |
security_result.severity |
El valor de severity del registro sin procesar, convertido a mayúsculas y normalizado, se asigna al campo security_result.severity . |
Source |
principal.hostname |
El valor de Source del registro sin procesar se asigna al campo principal.hostname . |
source |
principal.hostname |
El valor de source del registro sin procesar se asigna al campo principal.hostname . |
SourceIP |
principal.ip |
El valor de SourceIP del registro sin procesar se asigna al campo principal.ip . |
src_port |
principal.port |
Si src_port es "80", se convierte en un número entero y se asigna al campo principal.port , y network.application_protocol se establece en "HTTP". |
stream |
additional.fields |
El valor de stream del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "stream". |
subscriptionFilters |
security_result.about.resource.attribute.labels |
Para cada elemento del array subscriptionFilters del registro sin procesar, se agrega un par clave-valor a security_result.about.resource.attribute.labels con la clave "subscriptionFilter" y el valor del array. |
support_contact |
target.resource.attribute.labels |
El valor de support_contact del registro sin procesar se agrega como un par clave-valor al target.resource.attribute.labels con la clave "Contacto de asistencia". |
t_ip |
target.ip |
El valor de t_ip del registro sin procesar, después de quitar los guiones, se analiza como una dirección IP y se asigna al campo target.ip si la operación se realiza correctamente. |
time |
metadata.event_timestamp |
El valor de time del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp . |
timestamp |
metadata.event_timestamp |
El valor de timestamp del registro sin procesar se convierte en una marca de tiempo con varios formatos y se asigna al campo metadata.event_timestamp . |
tls |
network.tls.version |
El valor de tls del registro sin procesar se asigna al campo network.tls.version . |
transferDetails.serverId |
additional.fields |
El valor de transferDetails.serverId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "server_id". |
transferDetails.sessionId |
network.session_id |
El valor de transferDetails.sessionId del registro sin procesar se asigna al campo network.session_id . |
transferDetails.username |
principal.user.user_display_name |
El valor de transferDetails.username del registro sin procesar se asigna al campo principal.user.user_display_name . |
ts |
metadata.event_timestamp |
El valor de ts del registro sin procesar, combinado con la zona horaria si está disponible, se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp . |
type |
metadata.product_event_type |
El valor de type del registro sin procesar se asigna al campo metadata.product_event_type . |
unit |
additional.fields |
El valor de unit del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "unit". |
url |
target.url |
El valor de url del registro sin procesar se asigna al campo target.url . |
url_back_to_product |
metadata.url_back_to_product |
El valor de url_back_to_product del registro sin procesar se asigna al campo metadata.url_back_to_product . |
User |
principal.user.userid |
El valor de User del registro sin procesar se asigna al campo principal.user.userid . |
user |
target.user.userid , metadata.event_type , extensions.auth.mechanism |
Si user está presente, metadata.event_type se establece en "USER_LOGIN", extensions.auth.mechanism se establece en "NETWORK" y el valor de user se asigna a target.user.userid . |
value.count |
additional.fields |
El valor de value.count del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor al additional.fields con la clave "count". |
value.max |
additional.fields |
El valor de value.max del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor al objeto additional.fields con la clave "max". |
value.min |
additional.fields |
El valor de value.min del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "min". |
value.sum |
additional.fields |
El valor de value.sum del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor al objeto additional.fields con la clave "sum". |
workflowId |
additional.fields |
El valor de workflowId del registro sin procesar se agrega como un par clave-valor al additional.fields con la clave "workflowId". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.