Recolha registos do AWS CloudWatch
Este documento explica como carregar registos do AWS CloudWatch para o Google Security Operations. O AWS CloudWatch é um serviço de monitorização e observabilidade que recolhe dados operacionais sob a forma de registos, métricas e eventos. Esta integração permite-lhe enviar estes registos para o Google SecOps para análise e monitorização.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps
- Acesso privilegiado ao AWS
Crie um contentor do Amazon S3
Recomendamos que use um contentor criado especificamente para registos do CloudWatch.
- Abra a consola do Amazon S3.
- Se necessário, pode alterar a Região.
- Na barra de navegação, selecione a região onde residem os seus registos do CloudWatch.
- Clique em Criar contentor.
- Nome do contentor: introduza um nome significativo para o contentor.
- Região: selecione a região onde residem os seus dados do CloudWatch Logs.
- Clique em Criar.
Crie um utilizador do IAM com acesso total ao Amazon S3 e aos registos do CloudWatch
- Abra a consola do IAM.
- Clique em Utilizadores > Adicionar utilizador.
- Introduza um nome de utilizador (por exemplo, CWExport).
- Selecione Acesso programático e Acesso à AWS Management Console.
- Selecione Palavra-passe gerada automaticamente ou Palavra-passe personalizada.
- Clique em Seguinte > Autorizações.
- Escolha Anexar políticas existentes diretamente.
- Pesquise e selecione as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess para o utilizador.
- Clique em Seguinte > Etiquetas.
- Clique em Seguinte > Rever.
- Clique em Criar utilizador.
Configure autorizações no contentor do Amazon S3
- Na consola do Amazon S3, escolha o contentor que criou anteriormente.
- Clique em Autorizações > Política do contentor.
No Editor de políticas de contentores, 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" } } ] }
Altere e atualize as seguintes variáveis
json
:- Altere
cw-exported-logs
para o nome do seu contentor do S3. - Altere
random-string
para uma string de carateres gerada aleatoriamente. - Especifique o ponto final da região correto para Principal.
- Altere
Clique em Guardar para definir a política que acabou de adicionar como a política de acesso no seu contentor.
Como configurar a exportação do CloudWatch
- Inicie sessão como o utilizador do IAM que criou anteriormente.
- Abra a consola do CloudWatch.
- No menu de navegação, selecione Grupos de registos.
- Selecione o nome de um grupo de registos existente ou crie um novo grupo de registos.
- Escolha Ações > Exportar dados para o Amazon S3.
- No ecrã Exporte dados para o Amazon S3, localize Definir exportação de dados.
Defina o intervalo de tempo dos dados a exportar através das opções De e Para. A exportação só é realizada durante este período. Se procura um envio contínuo, recomendamos que use uma ferramenta como o Firehose.
Escolher contentor do S3: selecione a conta associada ao contentor do Amazon S3.
Nome do contentor do S3: selecione um contentor do Amazon S3.
Prefixo do contentor do S3: introduza a string gerada aleatoriamente que especificou na política do contentor.
Escolha Exportar para exportar os dados de registo para o Amazon S3.
Para ver o estado dos dados de registo que exportou para o Amazon S3, selecione Ações > Ver todas as exportações para o Amazon S3.
Configure feeds
Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:
- Definições do SIEM > Feeds > Adicionar novo
- Content Hub > Pacotes de conteúdo > Começar
Como configurar o feed do AWS CloudWatch
- Clique no pacote Amazon Cloud Platform.
- No tipo de registo 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 SQS a partir da qual ler
- URI do S3: o URI do contentor.
s3://your-log-bucket-name/
- Substitua
your-log-bucket-name
pelo nome real do seu contentor do S3.
- Substitua
Opções de eliminação de origens: selecione a opção de eliminação de acordo com as suas preferências de carregamento.
Idade máxima do ficheiro: inclua ficheiros modificados no último número de dias. A predefinição é 180 dias.
ID da chave de acesso à fila SQS: uma chave de acesso à conta que é uma string alfanumérica de 20 carateres.
Chave de acesso secreta da fila SQS: uma chave de acesso à conta que é uma string alfanumérica de 40 carateres.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Espaço de nomes do recurso: espaço de nomes associado ao feed.
- Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
Clique em Criar feed.
Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.
Tabela de mapeamento do UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
account |
principal.user.userid |
O valor de account do registo não processado é mapeado para o campo principal.user.userid . |
account_id |
principal.user.userid |
O valor de account_id do registo não processado é mapeado para o campo principal.user.userid . |
AlertId |
metadata.product_log_id |
O valor de AlertId do registo não processado é mapeado para o campo metadata.product_log_id . |
arrivalTimestamp |
metadata.event_timestamp |
O valor de arrivalTimestamp do registo não processado é convertido numa indicação de tempo e mapeado para o campo metadata.event_timestamp . |
attemptsMade |
additional.fields |
O valor de attemptsMade do registo não processado é convertido numa string e adicionado como um par de chave-valor ao additional.fields com a chave "Tentativas feitas". |
awsAccountId |
principal.asset_id |
O valor de awsAccountId do registo não processado tem o prefixo "ID da conta da AWS: " e é mapeado para o campo principal.asset_id . |
billed_duration |
additional.fields |
O valor de billed_duration do registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "billed_duration". |
BytesIn |
network.received_bytes |
O valor de BytesIn do registo não processado é convertido num número inteiro sem sinal e mapeado para o campo network.received_bytes . |
cipher |
network.tls.cipher |
O valor de cipher do registo não processado é mapeado para o campo network.tls.cipher . |
Ciphers |
network.tls.client.supported_ciphers |
O valor de Ciphers do registo não processado é dividido por vírgulas e cada valor é adicionado à matriz network.tls.client.supported_ciphers . |
cloudwatchLog |
security_result.description |
O valor de cloudwatchLog do registo não processado é mapeado para o campo security_result.description . |
CloudAccountId |
metadata.product_deployment_id |
O valor de CloudAccountId do registo não processado é mapeado para o campo metadata.product_deployment_id . |
CloudType |
target.resource.attribute.cloud.environment |
O valor de CloudType do registo não processado determina o valor de target.resource.attribute.cloud.environment . Se CloudType for "Google Cloud", o valor é "GOOGLE_CLOUD_PLATFORM". Se CloudType for "aws", o valor é "AMAZON_WEB_SERVICES". Se CloudType for "azure", o valor é "MICROSOFT_AZURE". |
Context.Execution.Id |
target.resource.attribute.labels |
O valor de Context.Execution.Id do registo não processado é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "ID do contexto". |
Context.Execution.Name |
target.resource.attribute.labels |
O valor de Context.Execution.Name do registo não processado é 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 registo não processado é mapeado para o campo target.resource.product_object_id . |
descr |
metadata.description |
O valor de descr do registo não processado, após a remoção dos espaços em branco adicionais, é mapeado para o campo metadata.description , a menos que seja "-". Se descr estiver vazio, é usado o valor de log . |
destination.name |
target.location.country_or_region |
O valor de destination.name do registo não processado é mapeado para o campo target.location.country_or_region . |
destination.properties.prefix |
target.resource.attribute.labels |
O valor de destination.properties.prefix do registo não processado é 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 registo não processado é mapeado para o campo security_result.rule_id . |
detail.additionalEventData.configRuleName |
security_result.rule_name |
O valor de detail.additionalEventData.configRuleName do registo não processado é mapeado para o campo security_result.rule_name . |
detail.additionalEventData.managedRuleIdentifier |
additional.fields |
O valor de detail.additionalEventData.managedRuleIdentifier do registo não processado é 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 registo não processado é 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 registo não processado tem o prefixo "ID da conta da AWS: " e é mapeado para o campo principal.asset_id . |
detail.awsRegion |
principal.location.name |
O valor de detail.awsRegion do registo não processado é mapeado para o campo principal.location.name . |
detail.configRuleArn |
security_result.rule_id |
O valor de detail.configRuleArn do registo não processado é mapeado para o campo security_result.rule_id . |
detail.configRuleName |
security_result.rule_name |
O valor de detail.configRuleName do registo não processado é mapeado para o campo security_result.rule_name . |
detail.configurationItem.awsAccountId |
principal.user.userid |
O valor de detail.configurationItem.awsAccountId do registo não processado é mapeado para o campo principal.user.userid . |
detail.configurationItem.awsRegion |
target.location.country_or_region |
O valor de detail.configurationItem.awsRegion do registo não processado é mapeado para o campo target.location.country_or_region . |
detail.configurationItem.configuration.complianceType |
security_result.summary |
O valor de detail.configurationItem.configuration.complianceType do registo não processado é mapeado para o campo security_result.summary . |
detail.configurationItem.configuration.targetResourceId |
target.resource.attribute.labels |
O valor de detail.configurationItem.configuration.targetResourceId do registo não processado é 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 registo não processado é 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 registo não processado é convertido numa indicação de tempo e mapeado para o campo _target.asset.attribute.creation_time . |
detail.configurationItem.configurationItemStatus |
target.resource.attribute.labels |
O valor de detail.configurationItem.configurationItemStatus do registo não processado é 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 registo não processado é convertido numa 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 registo não processado é mapeado para o campo target.resource.id . |
detail.configurationItem.resourceType |
target.resource.resource_subtype |
O valor de detail.configurationItem.resourceType do registo não processado é 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 registo não processado é mapeado para o campo security_result.rule_id . |
detail.eventCategory |
security_result.category_details |
O valor de detail.eventCategory do registo não processado é mapeado para o campo security_result.category_details . |
detail.eventID |
metadata.product_log_id |
O valor de detail.eventID do registo não processado é mapeado para o campo metadata.product_log_id . |
detail.eventName |
additional.fields |
O valor de detail.eventName do registo não processado é 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 registo não processado é mapeado para o campo target.application . |
detail.eventType |
additional.fields |
O valor de detail.eventType do registo não processado é 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 registo não processado é mapeado para o campo metadata.product_version . |
detail.managementEvent |
additional.fields |
O valor de detail.managementEvent do registo não processado é convertido numa 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 registo não processado é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Tipo de mensagem". |
detail.newEvaluationResult.complianceType |
security_result.summary |
O valor de detail.newEvaluationResult.complianceType do registo não processado é mapeado para o campo security_result.summary . |
detail.newEvaluationResult.configRuleInvokedTime |
additional.fields |
O valor de detail.newEvaluationResult.configRuleInvokedTime do registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é convertido numa 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 registo não processado é 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 registo não processado é mapeado para o campo metadata.product_version . |
detail.requestID |
target.resource.attribute.labels |
O valor de detail.requestID do registo não processado é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "ID do pedido de detalhes". |
detail.resourceType |
target.resource.resource_subtype |
O valor de detail.resourceType do registo não processado é mapeado para o campo target.resource.resource_subtype . |
detail.s3Bucket |
about.resource.name |
O valor de detail.s3Bucket do registo não processado é mapeado para o campo about.resource.name . |
detail.s3ObjectKey |
target.resource.attribute.labels |
O valor de detail.s3ObjectKey do registo não processado é 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 registo não processado é mapeado para o campo network.http.user_agent . |
detail.userIdentity.accessKeyId |
target.user.userid |
O valor de detail.userIdentity.accessKeyId do registo não processado é mapeado para o campo target.user.userid . |
detail.userIdentity.accountId |
metadata.product_deployment_id |
O valor de detail.userIdentity.accountId do registo não processado é mapeado para o campo metadata.product_deployment_id . |
detail.userIdentity.arn |
target.user.userid |
O valor de detail.userIdentity.arn do registo não processado é mapeado para o campo target.user.userid . |
detail.userIdentity.principalId |
principal.user.product_object_id |
O valor de detail.userIdentity.principalId do registo não processado é 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 registo não processado é 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 registo não processado é mapeado para o campo target.user.user_display_name . |
detail.userIdentity.type |
principal.resource.type |
O valor de detail.userIdentity.type do registo não processado é mapeado para o campo principal.resource.type . |
detail-type |
metadata.product_event_type |
O valor de detail-type do registo não processado é mapeado para o campo metadata.product_event_type . |
device |
principal.asset.product_object_id |
O valor de device do registo não processado é mapeado para o campo principal.asset.product_object_id . |
digestPublicKeyFingerprint |
target.file.sha1 |
O valor de digestPublicKeyFingerprint do registo não processado é mapeado para o campo target.file.sha1 . |
digestS3Bucket |
principal.resource.name |
O valor de digestS3Bucket do registo não processado é mapeado para o campo principal.resource.name . |
digestS3Object |
principal.asset.asset_id |
O valor de digestS3Object do registo não processado é precedido de "S3 Object: " e mapeado para o campo principal.asset.asset_id . |
digestSignatureAlgorithm |
network.tls.cipher |
O valor de digestSignatureAlgorithm do registo não processado é mapeado para o campo network.tls.cipher . |
digestStartTime |
metadata.event_timestamp |
O valor de digestStartTime do registo não processado é convertido numa indicação de tempo e mapeado para o campo metadata.event_timestamp . |
dimensions.VolumeId |
additional.fields |
O valor de dimensions.VolumeId do registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "VolumeId". |
duration |
additional.fields |
O valor de duration do registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "duration". |
errorCode |
security_result.rule_name |
O valor de errorCode do registo não processado é mapeado para o campo security_result.rule_name . |
errorMessage |
security_result.summary |
O valor de errorMessage do registo não processado é mapeado para o campo security_result.summary . |
executionId |
principal.process.pid |
O valor de executionId do registo não processado é mapeado para o campo principal.process.pid . |
host |
principal.hostname , principal.ip |
O valor de host do registo não processado, com os hífenes substituídos por pontos, é analisado como um endereço IP e mapeado para o campo principal.ip se for bem-sucedido. Caso contrário, é mapeado para o campo principal.hostname . |
http_verb |
network.http.method |
O valor de http_verb do registo não processado é convertido em maiúsculas e mapeado para o campo network.http.method . |
kubernetes.container_hash |
additional.fields |
O valor de kubernetes.container_hash do registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado tem "id: " adicionado no início e é mapeado para o campo principal.asset_id . |
kubernetes.host |
principal.hostname , principal.ip |
O valor de kubernetes.host do registo não processado, com os hífenes substituídos por pontos, é analisado como um endereço IP e mapeado para o campo principal.ip se for bem-sucedido. Caso contrário, é mapeado para o campo principal.hostname . |
kubernetes.namespace |
principal.namespace |
O valor de kubernetes.namespace do registo não processado é mapeado para o campo principal.namespace . |
kubernetes.namespace_name |
principal.namespace |
O valor de kubernetes.namespace_name do registo não processado é mapeado para o campo principal.namespace . |
kubernetes.pod_id |
principal.asset.asset_id |
O valor de kubernetes.pod_id do registo não processado tem o prefixo "pod_id: " e é mapeado para o campo principal.asset.asset_id . |
kubernetes.pod_name |
additional.fields |
O valor de kubernetes.pod_name do registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "nome do podcast". |
lambdaArn |
principal.hostname |
O valor de lambdaArn do registo não processado é mapeado para o campo principal.hostname . |
level |
security_result.severity |
O valor de level do registo não processado determina o valor de security_result.severity . Se level for "Info", o valor é "INFORMATIONAL". Se level for "Error", o valor é "ERROR". Se level for "Warning", o valor é "MEDIUM". |
log |
metadata.description |
O valor de log do registo não processado é mapeado para o campo metadata.description se descr estiver vazio. |
logFiles |
about |
Para cada elemento na matriz logFiles do registo não processado, é criado um objeto about 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 registo não processado é mapeado para o campo security_result.summary . |
log_processed.ids |
intermediary.hostname |
Para cada elemento na matriz log_processed.ids do registo não processado, é criado um objeto intermediary com hostname definido como o valor do elemento. |
log_processed.level |
security_result.severity |
O valor de log_processed.level do registo não processado é mapeado para o campo security_result.severity . |
log_processed.msg |
metadata.description |
O valor de log_processed.msg do registo não processado é mapeado para o campo metadata.description . |
log_processed.ts |
metadata.event_timestamp |
O valor de log_processed.ts do registo não processado é convertido numa indicação de tempo e mapeado para o campo metadata.event_timestamp . |
log_type |
metadata.log_type |
O valor de log_type do registo não processado é 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 registo não processado é mapeado para o campo security_result.description . Também é analisado através do grok para extrair campos adicionais. |
logGroup |
security_result.about.resource.name |
O valor de logGroup do registo não processado é mapeado para o campo security_result.about.resource.name . |
logStream |
security_result.about.resource.attribute.labels |
O valor de logStream do registo não processado é 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 registo não processado é 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 registo não processado é 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 registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "metric_stream_name". |
namespace |
principal.namespace |
O valor de namespace do registo não processado é mapeado para o campo principal.namespace . |
owner |
principal.user.userid |
O valor de owner do registo não processado é mapeado para o campo principal.user.userid . |
parameters |
additional.fields |
O valor de parameters do registo não processado é 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 registo não processado é mapeado para o campo principal.process.file.full_path . |
pid |
principal.process.pid |
O valor de pid do registo não processado é mapeado para o campo principal.process.pid . |
PolicyName |
security_result.rule_name |
O valor de PolicyName do registo não processado é mapeado para o campo security_result.rule_name . |
prin_host |
principal.hostname |
O valor de prin_host do registo não processado é mapeado para o campo principal.hostname . |
principal_hostname |
principal.hostname |
O valor de principal_hostname do registo não processado é mapeado para o campo principal.hostname . |
process |
principal.application |
O valor de process do registo não processado é mapeado para o campo principal.application . |
rawData |
additional.fields |
O valor de rawData do registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "Dados não processados". |
Recommendation |
security_result.detection_fields |
O valor de Recommendation do registo não processado é 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 registo não processado é mapeado para o campo network.http.referral_url . |
region |
principal.location.name |
O valor de region do registo não processado é mapeado para o campo principal.location.name . |
resp_code |
network.http.response_code |
O valor de resp_code do registo não processado é convertido num número inteiro e mapeado para o campo network.http.response_code . |
resource_url |
network.http.referral_url |
O valor de resource_url do registo não processado é mapeado para o campo network.http.referral_url . |
ResourceType |
target.resource.resource_subtype |
O valor de ResourceType do registo não processado é mapeado para o campo target.resource.resource_subtype . |
response_body |
additional.fields |
O valor de response_body do registo não processado é 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 registo não processado é mapeado para o campo target.resource.product_object_id . |
s3_bucket_path |
target.file.full_path |
O valor de s3_bucket_path do registo não processado é 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 "authentication is required", o valor é "AUTH_VIOLATION". |
sec_result.description |
security_result.description |
O valor de sec_result.description é derivado da lógica do analisador. É definido como o valor de cloudwatchLog , se estiver presente. |
sec_result.severity |
security_result.severity |
O valor de sec_result.severity é derivado da lógica do analisador. É 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. Está definido para o valor de log_processed.cause ou errorMessage , se estiver presente. |
security_result |
security_result |
O objeto security_result é construído a partir de vários campos e lógica de análise. |
serverId |
additional.fields |
O valor de serverId do registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "server_id". |
severity |
security_result.severity |
O valor de severity do registo não processado, convertido em maiúsculas e normalizado, é mapeado para o campo security_result.severity . |
Source |
principal.hostname |
O valor de Source do registo não processado é mapeado para o campo principal.hostname . |
source |
principal.hostname |
O valor de source do registo não processado é mapeado para o campo principal.hostname . |
SourceIP |
principal.ip |
O valor de SourceIP do registo não processado é mapeado para o campo principal.ip . |
src_port |
principal.port |
Se src_port for "80", é convertido num número inteiro e mapeado para o campo principal.port , e network.application_protocol é definido como "HTTP". |
stream |
additional.fields |
O valor de stream do registo não processado é 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 registo não processado, é adicionado um par de chave-valor 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 registo não processado é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Contacto de apoio técnico". |
t_ip |
target.ip |
O valor de t_ip do registo não processado, após a remoção dos 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 registo não processado é convertido numa indicação de tempo e mapeado para o campo metadata.event_timestamp . |
timestamp |
metadata.event_timestamp |
O valor de timestamp do registo não processado é convertido numa data/hora através de vários formatos e mapeado para o campo metadata.event_timestamp . |
tls |
network.tls.version |
O valor de tls do registo não processado é mapeado para o campo network.tls.version . |
transferDetails.serverId |
additional.fields |
O valor de transferDetails.serverId do registo não processado é 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 registo não processado é mapeado para o campo network.session_id . |
transferDetails.username |
principal.user.user_display_name |
O valor de transferDetails.username do registo não processado é mapeado para o campo principal.user.user_display_name . |
ts |
metadata.event_timestamp |
O valor de ts do registo não processado, combinado com o fuso horário, se disponível, é convertido numa data/hora e mapeado para o campo metadata.event_timestamp . |
type |
metadata.product_event_type |
O valor de type do registo não processado é mapeado para o campo metadata.product_event_type . |
unit |
additional.fields |
O valor de unit do registo não processado é adicionado como um par de chave-valor ao additional.fields com a chave "unit". |
url |
target.url |
O valor de url do registo não processado é mapeado para o campo target.url . |
url_back_to_product |
metadata.url_back_to_product |
O valor de url_back_to_product do registo não processado é mapeado para o campo metadata.url_back_to_product . |
User |
principal.user.userid |
O valor de User do registo não processado é mapeado para o campo principal.user.userid . |
user |
target.user.userid , metadata.event_type , extensions.auth.mechanism |
Se user estiver presente, metadata.event_type é definido como "USER_LOGIN", extensions.auth.mechanism é definido como "NETWORK" e o valor de user é mapeado para target.user.userid . |
value.count |
additional.fields |
O valor de value.count do registo não processado é convertido numa 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 registo não processado é convertido numa 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 registo não processado é convertido numa 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 registo não processado é convertido numa string e adicionado como um par de chave-valor ao additional.fields com a chave "sum". |
workflowId |
additional.fields |
O valor de workflowId do registo não processado é 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 da Google SecOps.