Collecter les journaux AWS CloudWatch
Ce document explique comment ingérer des journaux AWS CloudWatch dans Google Security Operations à l'aide d'Amazon S3.
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 à partir des ressources et applications AWS. Cette intégration utilise Amazon Data Firehose pour diffuser en flux continu les données de journaux CloudWatch vers un bucket S3, que Google SecOps ingère ensuite à l'aide d'un flux Amazon S3 V2.
Avant de commencer
- Une instance Google SecOps
- Accès privilégié à la console AWS Management Console avec les autorisations de gestion suivantes :
- Journaux Amazon CloudWatch (groupes de journaux, filtres d'abonnement)
- Amazon Data Firehose (flux de diffusion)
- Amazon S3 (buckets)
- AWS IAM (rôles, stratégies, utilisateurs)
Configurer un bucket AWS S3
- Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur : Créer un bucket.
- Enregistrez le nom et la région du bucket pour référence ultérieure (par exemple,
cwlogs-to-secops).
Configurer le rôle IAM pour Amazon Data Firehose
Amazon Data Firehose nécessite un rôle IAM pour écrire des journaux dans votre bucket S3.
Créer la stratégie IAM
- Dans la console AWS, accédez à IAM > Stratégies > Créer une stratégie.
- Sélectionnez l'onglet JSON.
Collez la règle suivante (remplacez
cwlogs-to-secopspar le nom réel de votre 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:*" } ] }Cliquez sur Suivant.
Dans le champ Policy name (Nom de la règle), saisissez
FirehoseS3DeliveryPolicy.Cliquez sur Créer une règle.
Créer le rôle IAM
- Accédez à IAM > Rôles > Créer un rôle.
- Sélectionnez Règle d'approbation personnalisée.
Collez la stratégie de confiance suivante :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Cliquez sur Suivant.
Recherchez et sélectionnez FirehoseS3DeliveryPolicy.
Cliquez sur Suivant.
Dans le champ Nom du rôle, saisissez
FirehoseToS3Role.Cliquez sur Créer un rôle.
Créer le flux Amazon Data Firehose
- Ouvrez la console Kinesis à l'adresse https://console.aws.amazon.com/kinesis.
- Dans le volet de navigation, sélectionnez Amazon Data Firehose.
- Cliquez sur Créer un flux Firehose.
- Sous Choisir la source et la destination, indiquez la configuration suivante :
- Source : sélectionnez PUT direct.
- Destination : sélectionnez Amazon S3.
- Dans le champ Nom du flux Firehose, saisissez
cwlogs-to-secops. Sous Transformer les enregistrements, dans la section Décompresser les enregistrements sources à partir d'Amazon CloudWatch Logs :
- Sélectionnez Activer la décompression.
- Ne sélectionnez pas Activer l'extraction des messages.
Sous Paramètres de destination :
- Bucket S3 : sélectionnez le bucket S3
cwlogs-to-secops. - Préfixe du bucket S3 (facultatif) : saisissez
cloudwatch-logs/. - Préfixe de sortie des erreurs du bucket S3 (facultatif) : saisissez
firehose-errors/.
- Bucket S3 : sélectionnez le bucket S3
Sous Conseils concernant la mémoire tampon :
- Taille de la mémoire tampon :
5Mio (par défaut). - Intervalle du tampon :
300secondes (par défaut).
- Taille de la mémoire tampon :
Sous Paramètres avancés :
- Chiffrement côté serveur : facultatif. Activez cette option si le chiffrement est requis.
- Journalisation des erreurs : sélectionnez Activé (recommandé).
- Autorisations : sélectionnez Choisir un rôle IAM existant, puis sélectionnez
FirehoseToS3Role.
Cliquez sur Créer un flux Firehose.
Attendez que l'état du flux indique Actif.
Configurer le rôle IAM pour CloudWatch Logs
CloudWatch Logs nécessite un rôle IAM pour envoyer des données de journaux au flux Firehose.
Créer la stratégie IAM
- Accédez à IAM > Stratégies > Créer une stratégie.
- Sélectionnez l'onglet JSON.
Collez la stratégie suivante (remplacez
<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" } ] }Cliquez sur Suivant.
Dans le champ Policy name (Nom de la règle), saisissez
CWLtoFirehoseWritePolicy.Cliquez sur Créer une règle.
Créer le rôle IAM
- Accédez à IAM > Rôles > Créer un rôle.
- Sélectionnez Règle d'approbation personnalisée.
Collez la stratégie d'approbation suivante (remplacez
<region>par votre région AWS) :{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Cliquez sur Suivant.
Recherchez et sélectionnez CWLtoFirehoseWritePolicy.
Cliquez sur Suivant.
Dans le champ Nom du rôle, saisissez
CWLtoFirehoseRole.Cliquez sur Créer un rôle.
Créer un filtre d'abonnement CloudWatch Logs
- Dans la console AWS, accédez à CloudWatch > Journaux > Groupes de journaux.
- Sélectionnez le groupe de journaux cible que vous souhaitez diffuser en streaming vers Google SecOps.
- Sélectionnez l'onglet Filtres d'abonnement.
- Cliquez sur Créer > Créer un filtre d'abonnement Amazon Data Firehose.
- Fournissez les informations de configuration suivantes :
- Destination : sélectionnez le flux Firehose
cwlogs-to-secops. - Accorder l'autorisation : sélectionnez le rôle
CWLtoFirehoseRole. - Nom du filtre d'abonnement : saisissez un nom descriptif (par exemple,
secops-all-events). - Format du journal : sélectionnez Autre.
- Modèle de filtre d'abonnement : laissez ce champ vide pour envoyer tous les événements ou saisissez un modèle de filtre pour n'envoyer que certains événements.
- Destination : sélectionnez le flux Firehose
Cliquez sur Démarrer le streaming.
Configurer un utilisateur IAM pour Google SecOps
Google SecOps a besoin d'un utilisateur IAM ayant accès au bucket S3 pour ingérer les journaux fournis.
- Créez un utilisateur en suivant ce guide de l'utilisateur : Créer un utilisateur IAM.
- Sélectionnez l'utilisateur créé.
- Sélectionnez l'onglet Informations d'identification de sécurité.
- Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
- Sélectionnez Service tiers comme Cas d'utilisation.
- Cliquez sur Suivant.
- Facultatif : Ajoutez une balise de description.
- Cliquez sur Créer une clé d'accès.
- Cliquez sur Download .csv file (Télécharger le fichier .csv) pour enregistrer la clé d'accès et la clé d'accès secrète pour référence ultérieure.
- Cliquez sur OK.
- Sélectionnez l'onglet Autorisations.
- Cliquez sur Ajouter des autorisations dans la section Règles relatives aux autorisations.
- Sélectionnez Ajouter des autorisations.
- Sélectionnez Joindre directement des règles.
- Recherchez la règle AmazonS3FullAccess.
- Sélectionnez la règle.
- Cliquez sur Suivant.
- Cliquez sur Ajouter des autorisations.
Configurer un flux dans Google SecOps pour ingérer les journaux AWS CloudWatch
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Saisissez un nom unique pour le nom du flux.
- Sélectionnez Amazon S3 V2 comme type de source.
- Sélectionnez AWS CloudWatch comme type de journal.
- Cliquez sur Suivant, puis sur Envoyer.
- Indiquez les valeurs des champs suivants :
- URI S3 :
s3://cwlogs-to-secops/cloudwatch-logs/ - Option de suppression de la source : sélectionnez l'option de suppression de votre choix.
- Âge maximal des fichiers : incluez les fichiers modifiés au cours des derniers jours (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.
- URI S3 :
- Cliquez sur Suivant, puis sur Envoyer.
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 de 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 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". |
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 de 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 de 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 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 de 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 "Objet S3 : " 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 de 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, avec les tirets 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, avec les tirets 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 de 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 de 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". |
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é "Raw Data" (Données brutes). |
Recommendation |
security_result.detection_fields |
La valeur de 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 "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 s'il est 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.