Coletar registros do AWS CloudWatch

Compatível com:

Este documento explica como ingerir registros do AWS CloudWatch no Google Security Operations usando o Amazon S3.

O AWS CloudWatch é um serviço de monitoramento e observabilidade que coleta dados operacionais na forma de registros, métricas e eventos de recursos e aplicativos da AWS. Essa integração usa o Amazon Data Firehose para transmitir dados de registros do CloudWatch para um bucket do S3, que o Google SecOps ingere usando um feed do Amazon S3 V2.

Antes de começar

  • Uma instância do Google SecOps
  • Acesso privilegiado ao AWS Management Console com permissões para gerenciar:
    • Amazon CloudWatch Logs (grupos de registros, filtros de assinatura)
    • Amazon Data Firehose (fluxos de entrega)
    • Amazon S3 (buckets)
    • IAM da AWS (papéis, políticas, usuários)

Configurar o bucket da AWS S3

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket.
  2. Salve o Nome e a Região do bucket para referência futura (por exemplo, cwlogs-to-secops).

Configurar a função do IAM para o Amazon Data Firehose

O Amazon Data Firehose exige uma função do IAM para gravar registros no bucket do S3.

Criar a política do IAM

  1. No console da AWS, acesse IAM > Políticas > Criar política.
  2. Selecione a guia JSON.
  3. Cole a seguinte política (substitua cwlogs-to-secops pelo nome real do bucket):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "S3Delivery",
                "Effect": "Allow",
                "Action": [
                    "s3:AbortMultipartUpload",
                    "s3:GetBucketLocation",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:ListBucketMultipartUploads",
                    "s3:PutObject"
                ],
                "Resource": [
                    "arn:aws:s3:::cwlogs-to-secops",
                    "arn:aws:s3:::cwlogs-to-secops/*"
                ]
            },
            {
                "Sid": "CloudWatchLogging",
                "Effect": "Allow",
                "Action": [
                    "logs:PutLogEvents"
                ],
                "Resource": "arn:aws:logs:*:*:log-group:/aws/kinesisfirehose/cwlogs-to-secops:log-stream:*"
            }
        ]
    }
    
  4. Clique em Próxima.

  5. No campo Nome da política, digite FirehoseS3DeliveryPolicy.

  6. Clique em Criar política.

Criar o papel do IAM

  1. Acesse IAM > Papéis > Criar papel.
  2. Selecione Política de confiança personalizada.
  3. Cole a seguinte política de confiança:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "firehose.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  4. Clique em Próxima.

  5. Pesquise e selecione FirehoseS3DeliveryPolicy.

  6. Clique em Próxima.

  7. No campo Nome da função, insira FirehoseToS3Role.

  8. Clique em Criar papel.

Criar o fluxo do Amazon Data Firehose

  1. Abra o console do Kinesis em https://console.aws.amazon.com/kinesis.
  2. No painel de navegação, selecione Amazon Data Firehose.
  3. Clique em Criar stream do Firehose.
  4. Em Escolher origem e destino, forneça a seguinte configuração:
    • Origem: selecione PUT direto.
    • Destino: selecione Amazon S3.
  5. No campo Nome do fluxo do Firehose, insira cwlogs-to-secops.
  6. Em Transformar registros, na seção Descompactar registros de origem do Amazon CloudWatch Logs:

    1. Selecione Ativar a descompactação.
    2. Não selecione Ativar a extração de mensagens.
  7. Em Configurações de destino:

    • Bucket do S3: selecione o bucket do S3 cwlogs-to-secops.
    • Prefixo do bucket do S3 (opcional): insira cloudwatch-logs/.
    • Prefixo de saída de erro do bucket do S3 (opcional): insira firehose-errors/.
  8. Em Dicas de buffer:

    • Tamanho do buffer: 5 MiB (padrão).
    • Intervalo do buffer: 300 segundos (padrão).
  9. Em Configurações avançadas:

    • Criptografia no servidor: opcional. Ative se a criptografia for necessária.
    • Registro de erros: selecione Ativado (recomendado).
    • Permissões: selecione Escolher papel do IAM atual e FirehoseToS3Role.
  10. Clique em Criar stream do Firehose.

  11. Aguarde até que o Status do fluxo seja Ativo.

Configurar o papel do IAM para o CloudWatch Logs

O CloudWatch Logs exige uma função do IAM para enviar dados de registros ao fluxo do Firehose.

Criar a política do IAM

  1. Acesse IAM > Políticas > Criar política.
  2. Selecione a guia JSON.
  3. Cole a seguinte política (substitua <region> e <account-id> pela sua região da AWS e ID da conta):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "firehose:PutRecord",
                    "firehose:PutRecordBatch"
                ],
                "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops"
            }
        ]
    }
    
  4. Clique em Próxima.

  5. No campo Nome da política, digite CWLtoFirehoseWritePolicy.

  6. Clique em Criar política.

Criar o papel do IAM

  1. Acesse IAM > Papéis > Criar papel.
  2. Selecione Política de confiança personalizada.
  3. Cole a seguinte política de confiança (substitua <region> pela sua região da AWS):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "logs.<region>.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  4. Clique em Próxima.

  5. Pesquise e selecione CWLtoFirehoseWritePolicy.

  6. Clique em Próxima.

  7. No campo Nome da função, insira CWLtoFirehoseRole.

  8. Clique em Criar papel.

Criar um filtro de assinatura do CloudWatch Logs

  1. No console da AWS, acesse CloudWatch > Registros > Grupos de registros.
  2. Selecione o grupo de registros de destino que você quer transmitir para o Google SecOps.
  3. Selecione a guia Filtros de assinatura.
  4. Clique em Criar > Criar filtro de assinatura do Amazon Data Firehose.
  5. Informe os seguintes detalhes de configuração:
    • Destino: selecione o fluxo do Firehose cwlogs-to-secops.
    • Conceder permissão: selecione a função CWLtoFirehoseRole.
    • Nome do filtro de assinatura: insira um nome descritivo, por exemplo, secops-all-events.
    • Formato do registro: selecione Outro.
    • Padrão de filtro de assinatura: deixe em branco para enviar todos os eventos ou insira um padrão de filtro para enviar apenas eventos específicos.
  6. Clique em Iniciar streaming.

Configurar o usuário do IAM para o Google SecOps

O Google SecOps precisa de um usuário do IAM com acesso ao bucket do S3 para ingerir os registros entregues.

  1. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  2. Selecione o usuário criado.
  3. Selecione a guia Credenciais de segurança.
  4. Clique em Criar chave de acesso na seção Chaves de acesso.
  5. Selecione Serviço de terceiros como Caso de uso.
  6. Clique em Próxima.
  7. Opcional: adicione uma tag de descrição.
  8. Clique em Criar chave de acesso.
  9. Clique em Baixar arquivo .csv para salvar a chave de acesso e a chave de acesso secreta para referência futura.
  10. Clique em Concluído.
  11. Selecione a guia Permissões.
  12. Clique em Adicionar permissões na seção Políticas de permissões.
  13. Selecione Adicionar permissões.
  14. Selecione Anexar políticas diretamente.
  15. Pesquise a política AmazonS3FullAccess.
  16. Selecione a política.
  17. Clique em Próxima.
  18. Clique em Adicionar permissões

Configurar um feed no Google SecOps para ingerir registros do Amazon CloudWatch

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. Insira um nome exclusivo para o Nome do feed.
  5. Selecione Amazon S3 V2 como o Tipo de origem.
  6. Selecione AWS CloudWatch como o Tipo de registro.
  7. Clique em Próxima e em Enviar.
  8. Especifique valores para os seguintes campos:
    • URI do S3: s3://cwlogs-to-secops/cloudwatch-logs/
    • Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência.
    • Idade máxima do arquivo: inclui arquivos modificados nos últimos dias (o padrão é 180 dias).
    • ID da chave de acesso: chave de acesso do usuário com acesso ao bucket do S3.
    • Chave de acesso secreta: chave secreta do usuário com acesso ao bucket do S3.
    • Namespace do recurso: o namespace do recurso.
    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed.
  9. Clique em Próxima e em Enviar.

Tabela de mapeamento do 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 "gcp", 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 presente.
security_result security_result O objeto security_result é construído com vários campos e lógica de análise.
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.