Coletar registros do AWS CloudWatch
Este documento explica como ingerir registros do AWS CloudWatch no Google Security Operations. O AWS CloudWatch é um serviço de monitoramento e observabilidade que coleta dados operacionais na forma de registros, métricas e eventos. Com essa integração, é possível enviar esses registros ao Google SecOps para análise e monitoramento.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Acesso privilegiado à AWS
Criar um bucket do Amazon S3
Recomendamos usar um bucket criado especificamente para registros do CloudWatch.
- Abra o console do Amazon S3.
- Se necessário, mude a Região.
- Na barra de navegação, selecione a região em que os registros do CloudWatch estão localizados.
- Clique em Criar bucket.
- Nome do bucket: insira um nome significativo para o bucket.
- Região: selecione a região em que seus dados do CloudWatch Logs estão localizados.
- Clique em Criar.
Criar um usuário do IAM com acesso total ao Amazon S3 e aos registros do CloudWatch
- Abra o console do IAM.
- Clique em Usuários > Adicionar usuário.
- Digite um nome de usuário (por exemplo, CWExport).
- Selecione Acesso programático e Acesso ao console de gerenciamento da AWS.
- Selecione Senha gerada automaticamente ou Senha personalizada.
- Clique em Próxima > Permissões.
- Escolha Anexar políticas atuais diretamente.
- Pesquise e selecione as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess para o usuário.
- Clique em Próxima > Tags.
- Clique em Próxima > Revisar.
- Clique em Criar usuário.
Configurar permissões no bucket do Amazon S3
- No console do Amazon S3, escolha o bucket que você criou anteriormente.
- Clique em Permissões > Política do bucket.
No Editor de políticas do bucket, adicione a seguinte 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" } } ] }
Mude e atualize as seguintes variáveis
json
:- Mude
cw-exported-logs
para o nome do seu bucket do S3. - Mude
random-string
para uma string de caracteres gerada aleatoriamente. - Especifique o endpoint da região correto para o principal.
- Mude
Clique em Salvar para definir a política que você acabou de adicionar como a política de acesso no bucket.
Como configurar a exportação do CloudWatch
- Faça login como o usuário do IAM que você criou anteriormente.
- Abra o console do CloudWatch.
- No menu de navegação, selecione Grupos de registros.
- Selecione o nome de um grupo de registros atual ou crie um novo.
- Escolha Ações > Exportar dados para o Amazon S3.
- Na tela Exportar dados para o Amazon S3, localize Definir exportação de dados.
Defina o período dos dados a serem exportados usando De e Até. A exportação só é realizada durante esse período. Se você estiver procurando um push contínuo, recomendamos usar uma ferramenta como o Firehose.
Escolher bucket do S3: selecione a conta associada ao bucket do Amazon S3.
Nome do bucket do S3: selecione um bucket do Amazon S3.
Prefixo do bucket do S3: insira a string gerada aleatoriamente que você especificou na política do bucket.
Escolha Exportar para exportar os dados de registro para o Amazon S3.
Para conferir o status dos dados de registro que você exportou para o Amazon S3, selecione Ações > Ver todas as exportações para o Amazon S3.
Configurar feeds
Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:
- Configurações do SIEM > Feeds > Adicionar novo
- Central de conteúdo > Pacotes de conteúdo > Começar
Como configurar o feed do AWS CloudWatch
- Clique no pacote Amazon Cloud Platform.
- No tipo de registro AWS CloudWatch, especifique os seguintes valores:
Especifique valores para os seguintes campos:
- Tipo de origem: Amazon SQS V2
- Nome da fila: o nome da fila do SQS de onde ler.
- URI do S3: o URI do bucket.
s3://your-log-bucket-name/
- Substitua
your-log-bucket-name
pelo nome real do seu bucket do S3.
- Substitua
Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
Idade máxima do arquivo: inclui arquivos modificados no último número de dias. O padrão é de 180 dias.
ID da chave de acesso à fila do SQS: uma chave de acesso à conta que é uma string alfanumérica de 20 caracteres.
Chave de acesso secreta da fila do SQS: uma chave de acesso da conta que é uma string alfanumérica de 40 caracteres.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
Clique em Criar feed.
Para mais informações sobre como configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
account |
principal.user.userid |
O valor de account do registro bruto é mapeado para o campo principal.user.userid . |
account_id |
principal.user.userid |
O valor de account_id do registro bruto é mapeado para o campo principal.user.userid . |
AlertId |
metadata.product_log_id |
O valor de AlertId do registro bruto é mapeado para o campo metadata.product_log_id . |
arrivalTimestamp |
metadata.event_timestamp |
O valor de arrivalTimestamp do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp . |
attemptsMade |
additional.fields |
O valor de attemptsMade do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "Attempts Made". |
awsAccountId |
principal.asset_id |
O valor de awsAccountId do registro bruto é precedido por "ID da conta da AWS: " e mapeado para o campo principal.asset_id . |
billed_duration |
additional.fields |
O valor de billed_duration do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "billed_duration". |
BytesIn |
network.received_bytes |
O valor de BytesIn do registro bruto é convertido em um número inteiro sem sinal e mapeado para o campo network.received_bytes . |
cipher |
network.tls.cipher |
O valor de cipher do registro bruto é mapeado para o campo network.tls.cipher . |
Ciphers |
network.tls.client.supported_ciphers |
O valor de Ciphers do registro bruto é dividido por vírgulas, e cada valor é adicionado à matriz network.tls.client.supported_ciphers . |
cloudwatchLog |
security_result.description |
O valor de cloudwatchLog do registro bruto é mapeado para o campo security_result.description . |
CloudAccountId |
metadata.product_deployment_id |
O valor de CloudAccountId do registro bruto é mapeado para o campo metadata.product_deployment_id . |
CloudType |
target.resource.attribute.cloud.environment |
O valor de CloudType do registro bruto determina o valor de target.resource.attribute.cloud.environment . Se CloudType for "Google Cloud", o valor será "GOOGLE_CLOUD_PLATFORM". Se CloudType for "aws", o valor será "AMAZON_WEB_SERVICES". Se CloudType for "azure", o valor será "MICROSOFT_AZURE". |
Context.Execution.Id |
target.resource.attribute.labels |
O valor de Context.Execution.Id do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Context Id". |
Context.Execution.Name |
target.resource.attribute.labels |
O valor de Context.Execution.Name do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Nome do contexto". |
Context.Execution.RoleArn |
target.resource.product_object_id |
O valor de Context.Execution.RoleArn do registro bruto é mapeado para o campo target.resource.product_object_id . |
descr |
metadata.description |
O valor de descr do registro bruto, depois de remover o espaço em branco extra, é mapeado para o campo metadata.description , a menos que seja "-". Se descr estiver vazio, o valor de log será usado. |
destination.name |
target.location.country_or_region |
O valor de destination.name do registro bruto é mapeado para o campo target.location.country_or_region . |
destination.properties.prefix |
target.resource.attribute.labels |
O valor de destination.properties.prefix do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Prefixo das propriedades de destino". |
detail.additionalEventData.configRuleArn |
security_result.rule_id |
O valor de detail.additionalEventData.configRuleArn do registro bruto é mapeado para o campo security_result.rule_id . |
detail.additionalEventData.configRuleName |
security_result.rule_name |
O valor de detail.additionalEventData.configRuleName do registro bruto é mapeado para o campo security_result.rule_name . |
detail.additionalEventData.managedRuleIdentifier |
additional.fields |
O valor de detail.additionalEventData.managedRuleIdentifier do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "managedRuleIdentifier". |
detail.additionalEventData.notificationJobType |
additional.fields |
O valor de detail.additionalEventData.notificationJobType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "notificationJobType". |
detail.awsAccountId |
principal.asset_id |
O valor de detail.awsAccountId do registro bruto é precedido por "ID da conta da AWS: " e mapeado para o campo principal.asset_id . |
detail.awsRegion |
principal.location.name |
O valor de detail.awsRegion do registro bruto é mapeado para o campo principal.location.name . |
detail.configRuleArn |
security_result.rule_id |
O valor de detail.configRuleArn do registro bruto é mapeado para o campo security_result.rule_id . |
detail.configRuleName |
security_result.rule_name |
O valor de detail.configRuleName do registro bruto é mapeado para o campo security_result.rule_name . |
detail.configurationItem.awsAccountId |
principal.user.userid |
O valor de detail.configurationItem.awsAccountId do registro bruto é mapeado para o campo principal.user.userid . |
detail.configurationItem.awsRegion |
target.location.country_or_region |
O valor de detail.configurationItem.awsRegion do registro bruto é mapeado para o campo target.location.country_or_region . |
detail.configurationItem.configuration.complianceType |
security_result.summary |
O valor de detail.configurationItem.configuration.complianceType do registro bruto é mapeado para o campo security_result.summary . |
detail.configurationItem.configuration.targetResourceId |
target.resource.attribute.labels |
O valor de detail.configurationItem.configuration.targetResourceId do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "configurationItem configuration targetResourceId". |
detail.configurationItem.configuration.targetResourceType |
target.resource.attribute.labels |
O valor de detail.configurationItem.configuration.targetResourceType do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "configurationItem configuration targetResourceType". |
detail.configurationItem.configurationItemCaptureTime |
_target.asset.attribute.creation_time |
O valor de detail.configurationItem.configurationItemCaptureTime do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo _target.asset.attribute.creation_time . |
detail.configurationItem.configurationItemStatus |
target.resource.attribute.labels |
O valor de detail.configurationItem.configurationItemStatus do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "configurationItem configurationItemStatus". |
detail.configurationItem.configurationStateId |
target.resource.attribute.labels |
O valor de detail.configurationItem.configurationStateId do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave configurationItem configurationStateId . |
detail.configurationItem.resourceId |
target.resource.id |
O valor de detail.configurationItem.resourceId do registro bruto é mapeado para o campo target.resource.id . |
detail.configurationItem.resourceType |
target.resource.resource_subtype |
O valor de detail.configurationItem.resourceType do registro bruto é mapeado para o campo target.resource.resource_subtype . |
detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn |
security_result.rule_id |
O valor de detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn do registro bruto é mapeado para o campo security_result.rule_id . |
detail.eventCategory |
security_result.category_details |
O valor de detail.eventCategory do registro bruto é mapeado para o campo security_result.category_details . |
detail.eventID |
metadata.product_log_id |
O valor de detail.eventID do registro bruto é mapeado para o campo metadata.product_log_id . |
detail.eventName |
additional.fields |
O valor de detail.eventName do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Nome do evento". |
detail.eventSource |
target.application |
O valor de detail.eventSource do registro bruto é mapeado para o campo target.application . |
detail.eventType |
additional.fields |
O valor de detail.eventType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Tipo de evento". |
detail.eventVersion |
metadata.product_version |
O valor de detail.eventVersion do registro bruto é mapeado para o campo metadata.product_version . |
detail.managementEvent |
additional.fields |
O valor de detail.managementEvent do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "detail managementEvent". |
detail.messageType |
target.resource.attribute.labels |
O valor de detail.messageType do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Message Type". |
detail.newEvaluationResult.complianceType |
security_result.summary |
O valor de detail.newEvaluationResult.complianceType do registro bruto é mapeado para o campo security_result.summary . |
detail.newEvaluationResult.configRuleInvokedTime |
additional.fields |
O valor de detail.newEvaluationResult.configRuleInvokedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_configRuleInvokedTime". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
O valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_configRuleName". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
O valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_resourceId". |
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
O valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_resourceType". |
detail.newEvaluationResult.resultRecordedTime |
additional.fields |
O valor de detail.newEvaluationResult.resultRecordedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_resultRecordedTime". |
detail.oldEvaluationResult.configRuleInvokedTime |
additional.fields |
O valor de detail.oldEvaluationResult.configRuleInvokedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_configRuleInvokedTime". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName |
additional.fields |
O valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave oldEvaluationResult_configRuleName . |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId |
additional.fields |
O valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_resourceId". |
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType |
additional.fields |
O valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_resourceType". |
detail.oldEvaluationResult.resultRecordedTime |
additional.fields |
O valor de detail.oldEvaluationResult.resultRecordedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_resultRecordedTime". |
detail.readOnly |
additional.fields |
O valor de detail.readOnly do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "detail readOnly". |
detail.recipientAccountId |
target.resource.attribute.labels |
O valor de detail.recipientAccountId do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Recipient Account Id". |
detail.recordVersion |
metadata.product_version |
O valor de detail.recordVersion do registro bruto é mapeado para o campo metadata.product_version . |
detail.requestID |
target.resource.attribute.labels |
O valor de detail.requestID do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "ID da solicitação de detalhes". |
detail.resourceType |
target.resource.resource_subtype |
O valor de detail.resourceType do registro bruto é mapeado para o campo target.resource.resource_subtype . |
detail.s3Bucket |
about.resource.name |
O valor de detail.s3Bucket do registro bruto é mapeado para o campo about.resource.name . |
detail.s3ObjectKey |
target.resource.attribute.labels |
O valor de detail.s3ObjectKey do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "s3ObjectKey". |
detail.userAgent |
network.http.user_agent |
O valor de detail.userAgent do registro bruto é mapeado para o campo network.http.user_agent . |
detail.userIdentity.accessKeyId |
target.user.userid |
O valor de detail.userIdentity.accessKeyId do registro bruto é mapeado para o campo target.user.userid . |
detail.userIdentity.accountId |
metadata.product_deployment_id |
O valor de detail.userIdentity.accountId do registro bruto é mapeado para o campo metadata.product_deployment_id . |
detail.userIdentity.arn |
target.user.userid |
O valor de detail.userIdentity.arn do registro bruto é mapeado para o campo target.user.userid . |
detail.userIdentity.principalId |
principal.user.product_object_id |
O valor de detail.userIdentity.principalId do registro bruto é mapeado para o campo principal.user.product_object_id . |
detail.userIdentity.sessionContext.attributes.mfaAuthenticated |
principal.user.attribute.labels |
O valor de detail.userIdentity.sessionContext.attributes.mfaAuthenticated do registro bruto é adicionado como um par de chave-valor ao principal.user.attribute.labels com a chave "mfaAuthenticated". |
detail.userIdentity.sessionContext.sessionIssuer.userName |
target.user.user_display_name |
O valor de detail.userIdentity.sessionContext.sessionIssuer.userName do registro bruto é mapeado para o campo target.user.user_display_name . |
detail.userIdentity.type |
principal.resource.type |
O valor de detail.userIdentity.type do registro bruto é mapeado para o campo principal.resource.type . |
detail-type |
metadata.product_event_type |
O valor de detail-type do registro bruto é mapeado para o campo metadata.product_event_type . |
device |
principal.asset.product_object_id |
O valor de device do registro bruto é mapeado para o campo principal.asset.product_object_id . |
digestPublicKeyFingerprint |
target.file.sha1 |
O valor de digestPublicKeyFingerprint do registro bruto é mapeado para o campo target.file.sha1 . |
digestS3Bucket |
principal.resource.name |
O valor de digestS3Bucket do registro bruto é mapeado para o campo principal.resource.name . |
digestS3Object |
principal.asset.asset_id |
O valor de digestS3Object do registro bruto é precedido por "S3 Object: " e mapeado para o campo principal.asset.asset_id . |
digestSignatureAlgorithm |
network.tls.cipher |
O valor de digestSignatureAlgorithm do registro bruto é mapeado para o campo network.tls.cipher . |
digestStartTime |
metadata.event_timestamp |
O valor de digestStartTime do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp . |
dimensions.VolumeId |
additional.fields |
O valor de dimensions.VolumeId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "VolumeId". |
duration |
additional.fields |
O valor de duration do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "duration". |
errorCode |
security_result.rule_name |
O valor de errorCode do registro bruto é mapeado para o campo security_result.rule_name . |
errorMessage |
security_result.summary |
O valor de errorMessage do registro bruto é mapeado para o campo security_result.summary . |
executionId |
principal.process.pid |
O valor de executionId do registro bruto é mapeado para o campo principal.process.pid . |
host |
principal.hostname , principal.ip |
O valor de host do registro bruto, com hífens substituídos por pontos, é analisado como um endereço IP e mapeado para o campo principal.ip se a operação for bem-sucedida. Caso contrário, ele será mapeado para o campo principal.hostname . |
http_verb |
network.http.method |
O valor de http_verb do registro bruto é convertido para maiúsculas e mapeado para o campo network.http.method . |
kubernetes.container_hash |
additional.fields |
O valor de kubernetes.container_hash do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "container_hash". |
kubernetes.container_image |
additional.fields |
O valor de kubernetes.container_image do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "container_image". |
kubernetes.container_name |
additional.fields |
O valor de kubernetes.container_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "container_name". |
kubernetes.docker_id |
principal.asset_id |
O valor de kubernetes.docker_id do registro bruto é precedido por "id: " e mapeado para o campo principal.asset_id . |
kubernetes.host |
principal.hostname , principal.ip |
O valor de kubernetes.host do registro bruto, com hífens substituídos por pontos, é analisado como um endereço IP e mapeado para o campo principal.ip se a operação for bem-sucedida. Caso contrário, ele será mapeado para o campo principal.hostname . |
kubernetes.namespace |
principal.namespace |
O valor de kubernetes.namespace do registro bruto é mapeado para o campo principal.namespace . |
kubernetes.namespace_name |
principal.namespace |
O valor de kubernetes.namespace_name do registro bruto é mapeado para o campo principal.namespace . |
kubernetes.pod_id |
principal.asset.asset_id |
O valor de kubernetes.pod_id do registro bruto é precedido por "pod_id: " e mapeado para o campo principal.asset.asset_id . |
kubernetes.pod_name |
additional.fields |
O valor de kubernetes.pod_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "nome do pod". |
lambdaArn |
principal.hostname |
O valor de lambdaArn do registro bruto é mapeado para o campo principal.hostname . |
level |
security_result.severity |
O valor de level do registro bruto determina o valor de security_result.severity . Se level for "Info", o valor será "INFORMATIONAL". Se level for "Error", o valor será "ERROR". Se level for "Warning", o valor será "MEDIUM". |
log |
metadata.description |
O valor de log do registro bruto é mapeado para o campo metadata.description se descr estiver vazio. |
logFiles |
about |
Para cada elemento na matriz logFiles do registro bruto, um objeto about é criado com file.full_path definido como s3Object , asset.hostname definido como s3Bucket e file.sha256 definido como hashValue . |
log_processed.cause |
security_result.summary |
O valor de log_processed.cause do registro bruto é mapeado para o campo security_result.summary . |
log_processed.ids |
intermediary.hostname |
Para cada elemento na matriz log_processed.ids do registro bruto, um objeto intermediary é criado com hostname definido como o valor do elemento. |
log_processed.level |
security_result.severity |
O valor de log_processed.level do registro bruto é mapeado para o campo security_result.severity . |
log_processed.msg |
metadata.description |
O valor de log_processed.msg do registro bruto é mapeado para o campo metadata.description . |
log_processed.ts |
metadata.event_timestamp |
O valor de log_processed.ts do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp . |
log_type |
metadata.log_type |
O valor de log_type do registro bruto é mapeado para o campo metadata.log_type . Este é um campo personalizado adicionado para contexto. |
logevent.message |
security_result.description |
O valor de logevent.message do registro bruto é mapeado para o campo security_result.description . Ele também é analisado usando grok para extrair outros campos. |
logGroup |
security_result.about.resource.name |
O valor de logGroup do registro bruto é mapeado para o campo security_result.about.resource.name . |
logStream |
security_result.about.resource.attribute.labels |
O valor de logStream do registro bruto é adicionado como um par de chave-valor ao security_result.about.resource.attribute.labels com a chave "logStream". |
memory_used |
additional.fields |
O valor de memory_used do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "memory_used". |
metric_name |
additional.fields |
O valor de metric_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "metric_name". |
metric_stream_name |
additional.fields |
O valor de metric_stream_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "metric_stream_name". |
namespace |
principal.namespace |
O valor de namespace do registro bruto é mapeado para o campo principal.namespace . |
owner |
principal.user.userid |
O valor de owner do registro bruto é mapeado para o campo principal.user.userid . |
parameters |
additional.fields |
O valor de parameters do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Parameters". |
Path |
principal.process.file.full_path |
O valor de Path do registro bruto é mapeado para o campo principal.process.file.full_path . |
pid |
principal.process.pid |
O valor de pid do registro bruto é mapeado para o campo principal.process.pid . |
PolicyName |
security_result.rule_name |
O valor de PolicyName do registro bruto é mapeado para o campo security_result.rule_name . |
prin_host |
principal.hostname |
O valor de prin_host do registro bruto é mapeado para o campo principal.hostname . |
principal_hostname |
principal.hostname |
O valor de principal_hostname do registro bruto é mapeado para o campo principal.hostname . |
process |
principal.application |
O valor de process do registro bruto é mapeado para o campo principal.application . |
rawData |
additional.fields |
O valor de rawData do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Dados brutos". |
Recommendation |
security_result.detection_fields |
O valor de Recommendation do registro bruto é adicionado como um par de chave-valor ao security_result.detection_fields com a chave "Recommendation". |
referral_url |
network.http.referral_url |
O valor de referral_url do registro bruto é mapeado para o campo network.http.referral_url . |
region |
principal.location.name |
O valor de region do registro bruto é mapeado para o campo principal.location.name . |
resp_code |
network.http.response_code |
O valor de resp_code do registro bruto é convertido em um número inteiro e mapeado para o campo network.http.response_code . |
resource_url |
network.http.referral_url |
O valor de resource_url do registro bruto é mapeado para o campo network.http.referral_url . |
ResourceType |
target.resource.resource_subtype |
O valor de ResourceType do registro bruto é mapeado para o campo target.resource.resource_subtype . |
response_body |
additional.fields |
O valor de response_body do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Corpo da resposta". |
Role |
target.resource.product_object_id |
O valor de Role do registro bruto é mapeado para o campo target.resource.product_object_id . |
s3_bucket_path |
target.file.full_path |
O valor de s3_bucket_path do registro bruto é mapeado para o campo target.file.full_path . |
sec_result.category |
security_result.category |
O valor de sec_result.category é derivado da lógica do analisador. Se descr contiver "autenticação é necessária", o valor será "AUTH_VIOLATION". |
sec_result.description |
security_result.description |
O valor de sec_result.description é derivado da lógica do analisador. Ele é definido como o valor de cloudwatchLog , se presente. |
sec_result.severity |
security_result.severity |
O valor de sec_result.severity é derivado da lógica do analisador. Ele é definido com base no valor de severity ou level . |
sec_result.summary |
security_result.summary |
O valor de sec_result.summary é derivado da lógica do analisador. Ele é definido como o valor de log_processed.cause ou errorMessage , se estiver presente. |
security_result |
security_result |
O objeto security_result é construído com base em vários campos e lógica de analisador. |
serverId |
additional.fields |
O valor de serverId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "server_id". |
severity |
security_result.severity |
O valor de severity do registro bruto, convertido para maiúsculas e normalizado, é mapeado para o campo security_result.severity . |
Source |
principal.hostname |
O valor de Source do registro bruto é mapeado para o campo principal.hostname . |
source |
principal.hostname |
O valor de source do registro bruto é mapeado para o campo principal.hostname . |
SourceIP |
principal.ip |
O valor de SourceIP do registro bruto é mapeado para o campo principal.ip . |
src_port |
principal.port |
Se src_port for "80", ele será convertido em um número inteiro e mapeado para o campo principal.port , e network.application_protocol será definido como "HTTP". |
stream |
additional.fields |
O valor de stream do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "stream". |
subscriptionFilters |
security_result.about.resource.attribute.labels |
Para cada elemento na matriz subscriptionFilters do registro bruto, um par de chave-valor é adicionado ao security_result.about.resource.attribute.labels com a chave "subscriptionFilter" e o valor da matriz. |
support_contact |
target.resource.attribute.labels |
O valor de support_contact do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Contato de suporte". |
t_ip |
target.ip |
O valor de t_ip do registro bruto, depois de remover os hífens, é analisado como um endereço IP e mapeado para o campo target.ip se for bem-sucedido. |
time |
metadata.event_timestamp |
O valor de time do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp . |
timestamp |
metadata.event_timestamp |
O valor de timestamp do registro bruto é convertido em um carimbo de data/hora usando vários formatos e mapeado para o campo metadata.event_timestamp . |
tls |
network.tls.version |
O valor de tls do registro bruto é mapeado para o campo network.tls.version . |
transferDetails.serverId |
additional.fields |
O valor de transferDetails.serverId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "server_id". |
transferDetails.sessionId |
network.session_id |
O valor de transferDetails.sessionId do registro bruto é mapeado para o campo network.session_id . |
transferDetails.username |
principal.user.user_display_name |
O valor de transferDetails.username do registro bruto é mapeado para o campo principal.user.user_display_name . |
ts |
metadata.event_timestamp |
O valor de ts do registro bruto, combinado com o fuso horário, se disponível, é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp . |
type |
metadata.product_event_type |
O valor de type do registro bruto é mapeado para o campo metadata.product_event_type . |
unit |
additional.fields |
O valor de unit do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "unit". |
url |
target.url |
O valor de url do registro bruto é mapeado para o campo target.url . |
url_back_to_product |
metadata.url_back_to_product |
O valor de url_back_to_product do registro bruto é mapeado para o campo metadata.url_back_to_product . |
User |
principal.user.userid |
O valor de User do registro bruto é mapeado para o campo principal.user.userid . |
user |
target.user.userid , metadata.event_type , extensions.auth.mechanism |
Se user estiver presente, metadata.event_type será definido como "USER_LOGIN", extensions.auth.mechanism será definido como "NETWORK", e o valor de user será mapeado para target.user.userid . |
value.count |
additional.fields |
O valor de value.count do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "count". |
value.max |
additional.fields |
O valor de value.max do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "max". |
value.min |
additional.fields |
O valor de value.min do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "min". |
value.sum |
additional.fields |
O valor de value.sum do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "sum". |
workflowId |
additional.fields |
O valor de workflowId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "workflowId". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.