Collecter les journaux AWS CloudWatch

Compatible avec :

Ce document explique comment ingérer des journaux AWS CloudWatch dans Google Security Operations à l'aide d'Amazon S3 ou d'Amazon Kinesis Data Firehose. AWS CloudWatch est un service de surveillance et d'observabilité qui collecte des données opérationnelles sous forme de journaux, de métriques et d'événements. Cette intégration vous permet d'envoyer ces journaux à Google SecOps pour analyse et surveillance.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Accès privilégié à AWS

Configurer l'exportation des journaux CloudWatch à l'aide d'AWS S3

Ce processus d'exportation doit être effectué régulièrement pour que les derniers journaux CloudWatch soient ingérés dans S3.

Créer un bucket Amazon S3

Nous vous recommandons d'utiliser un bucket créé spécifiquement pour les journaux CloudWatch.

  1. Ouvrez la console Amazon S3.
  2. Si nécessaire, vous pouvez modifier la région.
    • Dans la barre de navigation, sélectionnez la région dans laquelle se trouvent vos journaux CloudWatch.
  3. Cliquez sur Créer un bucket.
    • Nom du bucket : saisissez un nom pertinent pour le bucket.
    • Région : sélectionnez la région dans laquelle résident vos données CloudWatch Logs.
    • Cliquez sur Créer.

Créez un utilisateur IAM avec un accès complet à Amazon S3 et CloudWatch Logs.

  1. Ouvrez la console IAM.
  2. Cliquez sur Utilisateurs > Créer un utilisateur.
  3. Saisissez un nom dans le champ Nom d'utilisateur (par exemple, CWExport).
  4. Sélectionnez Programmatic access (Accès programmatique) et AWS Management Console access (Accès à la console de gestion AWS).
  5. Sélectionnez Mot de passe généré automatiquement ou Mot de passe personnalisé.
  6. Cliquez sur Next: Permissions (Suivant : Autorisations).
  7. Sélectionnez Joindre directement des règles existantes.
  8. Recherchez et sélectionnez les règles AmazonS3FullAccess et CloudWatchLogsFullAccess pour l'utilisateur.
  9. Cliquez sur Next: Tags (Suivant : Tags).
  10. Cliquez sur Suivant : Relire.
  11. Cliquez sur Créer un utilisateur.

Configurer les autorisations sur le bucket Amazon S3

  1. Dans la console Amazon S3, sélectionnez le bucket que vous avez créé précédemment.
  2. Cliquez sur Autorisations > Règle du bucket.
  3. Dans l'éditeur de règles du bucket, ajoutez la règle suivante.

    {             
      "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" }
    
          }
    
      ]
    
    }
    
  4. Modifiez et mettez à jour les variables json suivantes :

    • Remplacez cw-exported-logs par le nom de votre bucket S3.
    • Remplacez random-string par une chaîne de caractères générée de manière aléatoire.
    • Veillez à spécifier le bon point de terminaison régional pour Principal.
  5. Cliquez sur Enregistrer.

Configurer l'exportation CloudWatch

  1. Connectez-vous en tant qu'utilisateur IAM que vous avez créé précédemment.
  2. Ouvrez la console CloudWatch.
  3. Dans le menu de navigation, sélectionnez Groupes de journaux.
  4. Sélectionnez le nom d'un groupe de journaux existant ou créez-en un.
  5. Sélectionnez Actions > Exporter les données vers Amazon S3.
  6. Sur l'écran Exporter des données vers Amazon S3, recherchez Définir l'exportation de données.
  7. Définissez la plage de dates des données à exporter à l'aide des champs De et À.

  8. Choisir un bucket S3 : sélectionnez le compte associé au bucket Amazon S3.

  9. Nom du bucket S3 : sélectionnez un bucket Amazon S3.

  10. Préfixe du bucket S3 : saisissez la chaîne générée de manière aléatoire que vous avez spécifiée dans la règle du bucket.

  11. Sélectionnez Exporter pour exporter vos données de journaux vers Amazon S3.

  12. Pour afficher l'état des données de journaux que vous avez exportées vers Amazon S3, sélectionnez Actions> Afficher toutes les exportations vers Amazon S3.

Configurer un flux dans Google SecOps pour ingérer les journaux AWS CloudWatch

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, AWS CloudWatch Logs).
  4. Sélectionnez Amazon S3 V2 comme type de source.
  5. Sélectionnez AWS CloudWatch comme type de journal.
  6. Cliquez sur Suivant.
  7. Spécifiez les valeurs des paramètres d'entrée suivants :

    • URI S3 : URI du bucket
    • s3://your-log-bucket-name/
      • Remplacez your-log-bucket-name par le nom réel du bucket.
    • Options de suppression de la source : sélectionnez l'option de suppression de votre choix.

    • Âge maximal des fichiers : 180 jours par défaut.

    • ID de clé d'accès : clé d'accès utilisateur ayant accès au bucket S3.

    • Clé d'accès secrète : clé secrète de l'utilisateur ayant accès au bucket S3.

    • Espace de noms de l'élément : espace de noms de l'élément.

    • Libellés d'ingestion : libellé à appliquer aux événements de ce flux.

  8. Cliquez sur Suivant.

  9. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Configurer l'exportation des journaux CloudWatch à l'aide d'AWS Data Firehose

Il n'est pas nécessaire d'effectuer régulièrement ce processus d'exportation après la configuration initiale.

Configurer un flux dans Google SecOps pour ingérer les journaux AWS CloudWatch

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur + Ajouter un flux.
  3. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, AWS CloudWatch Logs).
  4. Sélectionnez Amazon Data Firehose comme type de source.
  5. Sélectionnez AWS CloudWatch comme type de journal.
  6. Cliquez sur Suivant.
  7. Spécifiez les valeurs des paramètres d'entrée suivants :
    • Délimiteur de fractionnement : facultatif \n.
    • Espace de noms de l'élément : espace de noms de l'élément.
    • Libellés d'ingestion : libellé à appliquer aux événements de ce flux.
  8. Cliquez sur Suivant.
  9. Vérifiez la configuration du flux, puis cliquez sur Envoyer.
  10. Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
  11. Copiez et enregistrez la clé secrète, car vous ne pourrez plus afficher cette valeur.
  12. Accédez à l'onglet Détails.
  13. Copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison.
  14. Cliquez sur OK.

Créer une clé API pour le flux Amazon Data Firehose

  1. Accédez à la page Identifiants de la console Google Cloud.
  2. Cliquez sur Créer des identifiants, puis sélectionnez Clé API.
  3. Restreignez l'accès de la clé API à l'API Google SecOps.

Spécifier l'URL du point de terminaison

Pour spécifier le point de terminaison HTTPS et la clé d'accès dans Amazon Data Firehose, procédez comme suit :

  1. Ajoutez la clé API à l'URL du point de terminaison du flux et spécifiez cette URL comme URL du point de terminaison HTTP au format suivant :

    ENDPOINT_URL?key=API_KEY
    
    • Remplacez les éléments suivants :

      • ENDPOINT_URL : URL du point de terminaison du flux.
      • API_KEY : clé API pour s'authentifier auprès de Google SecOps.

Pour la clé d'accès, spécifiez la clé secrète que vous avez obtenue lorsque vous avez créé le flux Amazon Data Firehose.

Configurez Amazon Kinesis Data Firehose pour Google SecOps {:#configure-kinesis-secops}.

  1. Dans la console AWS, accédez à Kinesis > Data Firehose > Create delivery stream.
  2. Fournissez les informations de configuration suivantes :
    • Source : sélectionnez PUT direct ou autres sources.
    • Destination : sélectionnez Point de terminaison HTTP.
    • URL du point de terminaison HTTP : saisissez l'URL du point de terminaison HTTPS du flux de Google SecOps avec la clé API.
    • Méthode HTTP : sélectionnez POST.
  3. Sous Clé d'accès, saisissez les informations suivantes :
    • En-tête de clé secrète : <HEADER_NAME_FOR_SECRET> avec la valeur <YOUR_SECRET_KEY>
    • Conseils de mise en mémoire tampon : définissez Taille du tampon sur 1 Mio et Intervalle du tampon sur 60 secondes.
    • Compression : sélectionnez Désactivée.
    • Sauvegarde S3 : sélectionnez Désactivée.
    • Conservez les paramètres retry et logging sur default.
  4. Cliquez sur Créer un flux de diffusion.

Configurer les autorisations IAM et s'abonner au groupe de journaux

  1. Dans la console AWS, accédez à IAM > Stratégies > Créer une stratégie > JSON.
  2. Collez le JSON de la stratégie suivante, en remplaçant <region> et <account-id> par votre région AWS et votre ID de compte :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "firehose:PutRecord",
            "firehose:PutRecordBatch"
          ],
          "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops"
        }
      ]
    }
    
    1. Nommez la règle CWLtoFirehoseWrite, puis cliquez sur Créer une règle.
    2. Accédez à IAM > Rôles > Créer un rôle.
    3. Sélectionnez Règle de confiance personnalisée, puis collez :
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "logs.<your-region>.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  3. Associez la stratégie CWLtoFirehoseWrite au rôle.

  4. Nommez le rôle CWLtoFirehoseRole, puis cliquez sur Créer un rôle.

  5. Accédez à CloudWatch > Logs > Log groups (CloudWatch > Journaux > Groupes de journaux).

  6. Sélectionnez le groupe de journaux cible.

  7. Ouvrez l'onglet Filtres d'abonnement, puis cliquez sur Créer.

  8. Sélectionnez Créer un filtre d'abonnement Amazon Kinesis Data Firehose.

  9. Fournissez les informations de configuration suivantes :

    • Destination : sélectionnez le flux de diffusion cwlogs-to-secops.
    • Accorder l'autorisation : sélectionnez le rôle CWLtoFirehoseRole.
    • Nom du filtre : saisissez all-events.
    • Laissez le champ Modèle de filtre vide pour envoyer tous les événements.
  10. Cliquez sur Démarrer la diffusion.

Table de mappage UDM

Champ de journal Mappage UDM Logique
account principal.user.userid La valeur de account du journal brut est mappée au champ principal.user.userid.
account_id principal.user.userid La valeur de account_id du journal brut est mappée au champ principal.user.userid.
AlertId metadata.product_log_id La valeur de AlertId du journal brut est mappée au champ metadata.product_log_id.
arrivalTimestamp metadata.event_timestamp La valeur de arrivalTimestamp du journal brut est convertie en code temporel et mappée au champ metadata.event_timestamp.
attemptsMade additional.fields La valeur de attemptsMade du journal brut est convertie en chaîne et ajoutée en tant que paire clé-valeur à additional.fields avec la clé "Attempts Made" (Tentatives effectuées).
awsAccountId principal.asset_id La valeur de awsAccountId du journal brut est précédée de "ID de compte AWS : " et mappée au champ principal.asset_id.
billed_duration additional.fields La valeur billed_duration du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "billed_duration".
BytesIn network.received_bytes La valeur de BytesIn du journal brut est convertie en entier non signé et mappée au champ network.received_bytes.
cipher network.tls.cipher La valeur de cipher du journal brut est mappée au champ network.tls.cipher.
Ciphers network.tls.client.supported_ciphers La valeur de Ciphers du journal brut est divisée par des virgules et chaque valeur est ajoutée au tableau network.tls.client.supported_ciphers.
cloudwatchLog security_result.description La valeur de cloudwatchLog du journal brut est mappée au champ security_result.description.
CloudAccountId metadata.product_deployment_id La valeur de CloudAccountId du journal brut est mappée au champ metadata.product_deployment_id.
CloudType target.resource.attribute.cloud.environment La valeur de CloudType du journal brut détermine la valeur de target.resource.attribute.cloud.environment. Si CloudType est défini sur "gcp", la valeur est "GOOGLE_CLOUD_PLATFORM". Si CloudType est défini sur "aws", la valeur est "AMAZON_WEB_SERVICES". Si CloudType est défini sur "azure", la valeur est "MICROSOFT_AZURE".
Context.Execution.Id target.resource.attribute.labels La valeur de Context.Execution.Id du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "ID de contexte".
Context.Execution.Name target.resource.attribute.labels La valeur Context.Execution.Name du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "Nom du contexte".
Context.Execution.RoleArn target.resource.product_object_id La valeur de Context.Execution.RoleArn du journal brut est mappée au champ target.resource.product_object_id.
descr metadata.description La valeur de descr du journal brut, après suppression des espaces superflus, est mappée au champ metadata.description, sauf si elle est "-". Si descr est vide, la valeur de log est utilisée à la place.
destination.name target.location.country_or_region La valeur de destination.name du journal brut est mappée au champ target.location.country_or_region.
destination.properties.prefix target.resource.attribute.labels La valeur destination.properties.prefix du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "Destination properties prefix" (Préfixe des propriétés de destination).
detail.additionalEventData.configRuleArn security_result.rule_id La valeur de detail.additionalEventData.configRuleArn du journal brut est mappée au champ security_result.rule_id.
detail.additionalEventData.configRuleName security_result.rule_name La valeur de detail.additionalEventData.configRuleName du journal brut est mappée au champ security_result.rule_name.
detail.additionalEventData.managedRuleIdentifier additional.fields La valeur de detail.additionalEventData.managedRuleIdentifier du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "managedRuleIdentifier".
detail.additionalEventData.notificationJobType additional.fields La valeur de detail.additionalEventData.notificationJobType du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "notificationJobType".
detail.awsAccountId principal.asset_id La valeur de detail.awsAccountId du journal brut est précédée de "ID de compte AWS : " et mappée au champ principal.asset_id.
detail.awsRegion principal.location.name La valeur de detail.awsRegion du journal brut est mappée au champ principal.location.name.
detail.configRuleArn security_result.rule_id La valeur de detail.configRuleArn du journal brut est mappée au champ security_result.rule_id.
detail.configRuleName security_result.rule_name La valeur de detail.configRuleName du journal brut est mappée au champ security_result.rule_name.
detail.configurationItem.awsAccountId principal.user.userid La valeur de detail.configurationItem.awsAccountId du journal brut est mappée au champ principal.user.userid.
detail.configurationItem.awsRegion target.location.country_or_region La valeur de detail.configurationItem.awsRegion du journal brut est mappée au champ target.location.country_or_region.
detail.configurationItem.configuration.complianceType security_result.summary La valeur de detail.configurationItem.configuration.complianceType du journal brut est mappée au champ security_result.summary.
detail.configurationItem.configuration.targetResourceId target.resource.attribute.labels La valeur de detail.configurationItem.configuration.targetResourceId du journal brut est ajoutée en tant que paire clé/valeur à target.resource.attribute.labels avec la clé "configurationItem configuration targetResourceId".
detail.configurationItem.configuration.targetResourceType target.resource.attribute.labels La valeur de detail.configurationItem.configuration.targetResourceType du journal brut est ajoutée en tant que paire clé/valeur à target.resource.attribute.labels avec la clé "configurationItem configuration targetResourceType".
detail.configurationItem.configurationItemCaptureTime _target.asset.attribute.creation_time La valeur de detail.configurationItem.configurationItemCaptureTime du journal brut est convertie en code temporel et mappée au champ _target.asset.attribute.creation_time.
detail.configurationItem.configurationItemStatus target.resource.attribute.labels La valeur de detail.configurationItem.configurationItemStatus du journal brut est ajoutée en tant que paire clé/valeur à target.resource.attribute.labels avec la clé "configurationItem configurationItemStatus".
detail.configurationItem.configurationStateId target.resource.attribute.labels La valeur de detail.configurationItem.configurationStateId du journal brut est convertie en chaîne et ajoutée en tant que paire clé/valeur à target.resource.attribute.labels avec la clé "configurationItem configurationStateId".
detail.configurationItem.resourceId target.resource.id La valeur de detail.configurationItem.resourceId du journal brut est mappée au champ target.resource.id.
detail.configurationItem.resourceType target.resource.resource_subtype La valeur de detail.configurationItem.resourceType du journal brut est mappée au champ target.resource.resource_subtype.
detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn security_result.rule_id La valeur de detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn du journal brut est mappée au champ security_result.rule_id.
detail.eventCategory security_result.category_details La valeur de detail.eventCategory du journal brut est mappée au champ security_result.category_details.
detail.eventID metadata.product_log_id La valeur de detail.eventID du journal brut est mappée au champ metadata.product_log_id.
detail.eventName additional.fields La valeur de detail.eventName du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "Nom de l'événement".
detail.eventSource target.application La valeur de detail.eventSource du journal brut est mappée au champ target.application.
detail.eventType additional.fields La valeur de detail.eventType du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "Type d'événement".
detail.eventVersion metadata.product_version La valeur de detail.eventVersion du journal brut est mappée au champ metadata.product_version.
detail.managementEvent additional.fields La valeur de detail.managementEvent du journal brut est convertie en chaîne et ajoutée en tant que paire clé-valeur à additional.fields avec la clé "detail managementEvent".
detail.messageType target.resource.attribute.labels La valeur de detail.messageType du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "Message Type" (Type de message).
detail.newEvaluationResult.complianceType security_result.summary La valeur de detail.newEvaluationResult.complianceType du journal brut est mappée au champ security_result.summary.
detail.newEvaluationResult.configRuleInvokedTime additional.fields La valeur de detail.newEvaluationResult.configRuleInvokedTime du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "newEvaluationResult_configRuleInvokedTime".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName additional.fields La valeur de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "newEvaluationResult_configRuleName".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId additional.fields La valeur detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "newEvaluationResult_resourceId".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType additional.fields La valeur detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "newEvaluationResult_resourceType".
detail.newEvaluationResult.resultRecordedTime additional.fields La valeur de detail.newEvaluationResult.resultRecordedTime du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "newEvaluationResult_resultRecordedTime".
detail.oldEvaluationResult.configRuleInvokedTime additional.fields La valeur detail.oldEvaluationResult.configRuleInvokedTime du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "oldEvaluationResult_configRuleInvokedTime".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName additional.fields La valeur detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "oldEvaluationResult_configRuleName".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId additional.fields La valeur detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "oldEvaluationResult_resourceId".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType additional.fields La valeur de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "oldEvaluationResult_resourceType".
detail.oldEvaluationResult.resultRecordedTime additional.fields La valeur detail.oldEvaluationResult.resultRecordedTime du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "oldEvaluationResult_resultRecordedTime".
detail.readOnly additional.fields La valeur de detail.readOnly du journal brut est convertie en chaîne et ajoutée en tant que paire clé-valeur à additional.fields avec la clé "detail readOnly".
detail.recipientAccountId target.resource.attribute.labels La valeur de detail.recipientAccountId du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "Recipient Account Id" (ID du compte du destinataire).
detail.recordVersion metadata.product_version La valeur de detail.recordVersion du journal brut est mappée au champ metadata.product_version.
detail.requestID target.resource.attribute.labels La valeur de detail.requestID du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "ID de la demande détaillée".
detail.resourceType target.resource.resource_subtype La valeur de detail.resourceType du journal brut est mappée au champ target.resource.resource_subtype.
detail.s3Bucket about.resource.name La valeur de detail.s3Bucket du journal brut est mappée au champ about.resource.name.
detail.s3ObjectKey target.resource.attribute.labels La valeur de detail.s3ObjectKey du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "s3ObjectKey".
detail.userAgent network.http.user_agent La valeur de detail.userAgent du journal brut est mappée au champ network.http.user_agent.
detail.userIdentity.accessKeyId target.user.userid La valeur de detail.userIdentity.accessKeyId du journal brut est mappée au champ target.user.userid.
detail.userIdentity.accountId metadata.product_deployment_id La valeur de detail.userIdentity.accountId du journal brut est mappée au champ metadata.product_deployment_id.
detail.userIdentity.arn target.user.userid La valeur de detail.userIdentity.arn du journal brut est mappée au champ target.user.userid.
detail.userIdentity.principalId principal.user.product_object_id La valeur de detail.userIdentity.principalId du journal brut est mappée au champ principal.user.product_object_id.
detail.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels La valeur detail.userIdentity.sessionContext.attributes.mfaAuthenticated du journal brut est ajoutée en tant que paire clé-valeur à principal.user.attribute.labels avec la clé "mfaAuthenticated".
detail.userIdentity.sessionContext.sessionIssuer.userName target.user.user_display_name La valeur de detail.userIdentity.sessionContext.sessionIssuer.userName du journal brut est mappée au champ target.user.user_display_name.
detail.userIdentity.type principal.resource.type La valeur de detail.userIdentity.type du journal brut est mappée au champ principal.resource.type.
detail-type metadata.product_event_type La valeur de detail-type du journal brut est mappée au champ metadata.product_event_type.
device principal.asset.product_object_id La valeur de device du journal brut est mappée au champ principal.asset.product_object_id.
digestPublicKeyFingerprint target.file.sha1 La valeur de digestPublicKeyFingerprint du journal brut est mappée au champ target.file.sha1.
digestS3Bucket principal.resource.name La valeur de digestS3Bucket du journal brut est mappée au champ principal.resource.name.
digestS3Object principal.asset.asset_id La valeur de digestS3Object du journal brut est précédée de "S3 Object: " et mappée au champ principal.asset.asset_id.
digestSignatureAlgorithm network.tls.cipher La valeur de digestSignatureAlgorithm du journal brut est mappée au champ network.tls.cipher.
digestStartTime metadata.event_timestamp La valeur de digestStartTime du journal brut est convertie en code temporel et mappée au champ metadata.event_timestamp.
dimensions.VolumeId additional.fields La valeur dimensions.VolumeId du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "VolumeId".
duration additional.fields La valeur duration du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "duration".
errorCode security_result.rule_name La valeur de errorCode du journal brut est mappée au champ security_result.rule_name.
errorMessage security_result.summary La valeur de errorMessage du journal brut est mappée au champ security_result.summary.
executionId principal.process.pid La valeur de executionId du journal brut est mappée au champ principal.process.pid.
host principal.hostname, principal.ip La valeur de host du journal brut, dont les tirets sont remplacés par des points, est analysée en tant qu'adresse IP et mappée au champ principal.ip si l'opération réussit. Sinon, il est mappé au champ principal.hostname.
http_verb network.http.method La valeur de http_verb du journal brut est convertie en majuscules et mappée au champ network.http.method.
kubernetes.container_hash additional.fields La valeur kubernetes.container_hash du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "container_hash".
kubernetes.container_image additional.fields La valeur de kubernetes.container_image du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "container_image".
kubernetes.container_name additional.fields La valeur kubernetes.container_name du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "container_name".
kubernetes.docker_id principal.asset_id La valeur de kubernetes.docker_id du journal brut est précédée de "id: " et mappée au champ principal.asset_id.
kubernetes.host principal.hostname, principal.ip La valeur de kubernetes.host du journal brut, dont les tirets sont remplacés par des points, est analysée en tant qu'adresse IP et mappée au champ principal.ip si l'opération réussit. Sinon, il est mappé au champ principal.hostname.
kubernetes.namespace principal.namespace La valeur de kubernetes.namespace du journal brut est mappée au champ principal.namespace.
kubernetes.namespace_name principal.namespace La valeur de kubernetes.namespace_name du journal brut est mappée au champ principal.namespace.
kubernetes.pod_id principal.asset.asset_id La valeur de kubernetes.pod_id du journal brut est précédée de "pod_id: " et mappée au champ principal.asset.asset_id.
kubernetes.pod_name additional.fields La valeur de kubernetes.pod_name du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "nom du pod".
lambdaArn principal.hostname La valeur de lambdaArn du journal brut est mappée au champ principal.hostname.
level security_result.severity La valeur de level du journal brut détermine la valeur de security_result.severity. Si level est défini sur "Info", la valeur est "INFORMATIONAL". Si level est défini sur "Error", la valeur est "ERROR". Si level est défini sur "Warning" (Avertissement), la valeur est "MEDIUM" (MOYENNE).
log metadata.description La valeur de log du journal brut est mappée au champ metadata.description si descr est vide.
logFiles about Pour chaque élément du tableau logFiles du journal brut, un objet about est créé avec file.full_path défini sur s3Object, asset.hostname défini sur s3Bucket et file.sha256 défini sur hashValue.
log_processed.cause security_result.summary La valeur de log_processed.cause du journal brut est mappée au champ security_result.summary.
log_processed.ids intermediary.hostname Pour chaque élément du tableau log_processed.ids du journal brut, un objet intermediary est créé avec hostname défini sur la valeur de l'élément.
log_processed.level security_result.severity La valeur de log_processed.level du journal brut est mappée au champ security_result.severity.
log_processed.msg metadata.description La valeur de log_processed.msg du journal brut est mappée au champ metadata.description.
log_processed.ts metadata.event_timestamp La valeur de log_processed.ts du journal brut est convertie en code temporel et mappée au champ metadata.event_timestamp.
log_type metadata.log_type La valeur de log_type du journal brut est mappée au champ metadata.log_type. Il s'agit d'un champ personnalisé ajouté pour le contexte.
logevent.message security_result.description La valeur de logevent.message du journal brut est mappée au champ security_result.description. Il est également analysé à l'aide de grok pour extraire des champs supplémentaires.
logGroup security_result.about.resource.name La valeur de logGroup du journal brut est mappée au champ security_result.about.resource.name.
logStream security_result.about.resource.attribute.labels La valeur logStream du journal brut est ajoutée en tant que paire clé-valeur à security_result.about.resource.attribute.labels avec la clé "logStream".
memory_used additional.fields La valeur de memory_used du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "memory_used".
metric_name additional.fields La valeur metric_name du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "metric_name".
metric_stream_name additional.fields La valeur metric_stream_name du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "metric_stream_name".
namespace principal.namespace La valeur de namespace du journal brut est mappée au champ principal.namespace.
owner principal.user.userid La valeur de owner du journal brut est mappée au champ principal.user.userid.
parameters additional.fields La valeur de parameters du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "Parameters" (Paramètres).
Path principal.process.file.full_path La valeur de Path du journal brut est mappée au champ principal.process.file.full_path.
pid principal.process.pid La valeur de pid du journal brut est mappée au champ principal.process.pid.
PolicyName security_result.rule_name La valeur de PolicyName du journal brut est mappée au champ security_result.rule_name.
prin_host principal.hostname La valeur de prin_host du journal brut est mappée au champ principal.hostname.
principal_hostname principal.hostname La valeur de principal_hostname du journal brut est mappée au champ principal.hostname.
process principal.application La valeur de process du journal brut est mappée au champ principal.application.
rawData additional.fields La valeur de rawData du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "Données brutes".
Recommendation security_result.detection_fields La valeur Recommendation du journal brut est ajoutée en tant que paire clé-valeur à security_result.detection_fields avec la clé "Recommendation".
referral_url network.http.referral_url La valeur de referral_url du journal brut est mappée au champ network.http.referral_url.
region principal.location.name La valeur de region du journal brut est mappée au champ principal.location.name.
resp_code network.http.response_code La valeur de resp_code du journal brut est convertie en entier et mappée au champ network.http.response_code.
resource_url network.http.referral_url La valeur de resource_url du journal brut est mappée au champ network.http.referral_url.
ResourceType target.resource.resource_subtype La valeur de ResourceType du journal brut est mappée au champ target.resource.resource_subtype.
response_body additional.fields La valeur de response_body du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "Corps de la réponse".
Role target.resource.product_object_id La valeur de Role du journal brut est mappée au champ target.resource.product_object_id.
s3_bucket_path target.file.full_path La valeur de s3_bucket_path du journal brut est mappée au champ target.file.full_path.
sec_result.category security_result.category La valeur de sec_result.category est dérivée de la logique de l'analyseur. Si descr contient "authentication is required" (l'authentification est requise), la valeur est "AUTH_VIOLATION".
sec_result.description security_result.description La valeur de sec_result.description est dérivée de la logique de l'analyseur. Elle est définie sur la valeur de cloudwatchLog, le cas échéant.
sec_result.severity security_result.severity La valeur de sec_result.severity est dérivée de la logique de l'analyseur. Elle est définie en fonction de la valeur de severity ou level.
sec_result.summary security_result.summary La valeur de sec_result.summary est dérivée de la logique de l'analyseur. Elle est définie sur la valeur de log_processed.cause ou errorMessage, le cas échéant.
security_result security_result L'objet security_result est construit à partir de différents champs et de la logique de l'analyseur.
serverId additional.fields La valeur serverId du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "server_id".
severity security_result.severity La valeur de severity du journal brut, convertie en majuscules et normalisée, est mappée au champ security_result.severity.
Source principal.hostname La valeur de Source du journal brut est mappée au champ principal.hostname.
source principal.hostname La valeur de source du journal brut est mappée au champ principal.hostname.
SourceIP principal.ip La valeur de SourceIP du journal brut est mappée au champ principal.ip.
src_port principal.port Si src_port est défini sur "80", il est converti en entier et mappé au champ principal.port, et network.application_protocol est défini sur "HTTP".
stream additional.fields La valeur de stream du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "stream".
subscriptionFilters security_result.about.resource.attribute.labels Pour chaque élément du tableau subscriptionFilters du journal brut, une paire clé-valeur est ajoutée à security_result.about.resource.attribute.labels avec la clé "subscriptionFilter" et la valeur du tableau.
support_contact target.resource.attribute.labels La valeur de support_contact du journal brut est ajoutée en tant que paire clé-valeur à target.resource.attribute.labels avec la clé "Support Contact".
t_ip target.ip La valeur de t_ip du journal brut, après suppression des tirets, est analysée en tant qu'adresse IP et mappée au champ target.ip si l'opération réussit.
time metadata.event_timestamp La valeur de time du journal brut est convertie en code temporel et mappée au champ metadata.event_timestamp.
timestamp metadata.event_timestamp La valeur de timestamp du journal brut est convertie en code temporel à l'aide de différents formats et mappée au champ metadata.event_timestamp.
tls network.tls.version La valeur de tls du journal brut est mappée au champ network.tls.version.
transferDetails.serverId additional.fields La valeur transferDetails.serverId du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "server_id".
transferDetails.sessionId network.session_id La valeur de transferDetails.sessionId du journal brut est mappée au champ network.session_id.
transferDetails.username principal.user.user_display_name La valeur de transferDetails.username du journal brut est mappée au champ principal.user.user_display_name.
ts metadata.event_timestamp La valeur de ts du journal brut, combinée au fuseau horaire si disponible, est convertie en code temporel et mappée au champ metadata.event_timestamp.
type metadata.product_event_type La valeur de type du journal brut est mappée au champ metadata.product_event_type.
unit additional.fields La valeur unit du journal brut est ajoutée en tant que paire clé-valeur à additional.fields avec la clé "unit".
url target.url La valeur de url du journal brut est mappée au champ target.url.
url_back_to_product metadata.url_back_to_product La valeur de url_back_to_product du journal brut est mappée au champ metadata.url_back_to_product.
User principal.user.userid La valeur de User du journal brut est mappée au champ principal.user.userid.
user target.user.userid, metadata.event_type, extensions.auth.mechanism Si user est présent, metadata.event_type est défini sur "USER_LOGIN", extensions.auth.mechanism est défini sur "NETWORK" et la valeur de user est mappée sur target.user.userid.
value.count additional.fields La valeur de value.count du journal brut est convertie en chaîne et ajoutée en tant que paire clé-valeur à additional.fields avec la clé "count".
value.max additional.fields La valeur value.max du journal brut est convertie en chaîne et ajoutée en tant que paire clé-valeur à additional.fields avec la clé "max".
value.min additional.fields La valeur de value.min du journal brut est convertie en chaîne et ajoutée en tant que paire clé-valeur à additional.fields avec la clé "min".
value.sum additional.fields La valeur de value.sum du journal brut est convertie en chaîne et ajoutée en tant que paire clé-valeur à additional.fields avec la clé "sum".
workflowId additional.fields La valeur workflowId du journal brut est ajoutée en tant que paire clé/valeur à additional.fields avec la clé "workflowId".

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.