View a markdown version of this page

Processeurs de transformation - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Processeurs de transformation

Les processeurs de transformation modifient la structure des événements du journal en ajoutant, copiant, déplaçant ou supprimant des champs.

processeur add_entries

Ajoute des paires clé-valeur statiques pour enregistrer les événements. Il est possible d'ajouter au maximum un add_entries processeur à un pipeline.

Configuration

Configurez le processeur add_entries avec les paramètres suivants :

processor: - add_entries: entries: - key: "environment" value: "production" overwrite_if_key_exists: false
Parameters
entries (obligatoire)

Tableau de paires clé-valeur à ajouter à chaque événement de journal.

entries[].key (obligatoire)

Le nom du champ à ajouter au journal des événements. Supporte les champs imbriqués en utilisant la notation par points.

entries[].value (obligatoire)

La valeur statique à attribuer à la clé.

entries[].overwrite_if_key_exists (facultatif)

Indicateur booléen qui détermine le comportement lorsque la clé existe déjà. La valeur par défaut est false.

when (facultatif)

Processor-level expression conditionnelle. Lorsque cette option est spécifiée, l'intégralité du processeur est ignorée si l'expression est évaluée à False. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

entries[].when (facultatif)

Entry-level expression conditionnelle. Lorsqu'elle est spécifiée, seule cette entrée est ignorée si l'expression est évaluée à False. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

entries[].when_else (facultatif)

Entrée de secours qui ne s'exécute que lorsqu'aucune des autres when conditions du même processeur ne correspond. La valeur de l'expression identifie les when conditions à prendre en compte. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

processeur copy_values

Copie les valeurs d'un champ vers un autre. Il est possible d'ajouter au maximum un copy_values processeur à un pipeline.

Configuration

Configurez le processeur copy_values avec les paramètres suivants :

processor: - copy_values: entries: - from_key: "user_id" to_key: "backup_user" overwrite_if_to_key_exists: false
Parameters
entries (obligatoire)

Tableau des opérations de copie à effectuer sur chaque événement de journal.

entries[].from_key (obligatoire)

Le nom du champ à partir duquel copier la valeur. Utilise la notation par points pour les champs imbriqués.

entries[].to_key (obligatoire)

Le nom du champ dans lequel copier la valeur. Créera des structures imbriquées si vous utilisez la notation par points.

entries[].overwrite_if_to_key_exists (facultatif)

Drapeau booléen contrôlant le comportement lorsque le champ cible existe déjà. La valeur par défaut est false.

when (facultatif)

Processor-level expression conditionnelle. Lorsque cette option est spécifiée, l'intégralité du processeur est ignorée si l'expression est évaluée à False. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

entries[].when (facultatif)

Entry-level expression conditionnelle. Lorsqu'elle est spécifiée, seule cette entrée est ignorée si l'expression est évaluée à False. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

entries[].when_else (facultatif)

Entrée de secours qui ne s'exécute que lorsqu'aucune des autres when conditions du même processeur ne correspond. La valeur de l'expression identifie les when conditions à prendre en compte. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

processeur delete_entries

Supprime les champs spécifiés des événements du journal.

Configuration

Configurez le processeur delete_entries avec les paramètres suivants :

processor: - delete_entries: with_keys: ["temp_field", "debug_info"]
Parameters
with_keys (obligatoire)

Tableau de noms de champs à supprimer de chaque événement de journal. Supporte la suppression de champs imbriqués à l'aide de la notation par points.

when (facultatif)

Expression conditionnelle qui détermine si ce processeur s'exécute. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

processeur move_keys

Déplace les champs d'un emplacement à un autre.

Configuration

Configurez le processeur move_keys avec les paramètres suivants :

processor: - move_keys: entries: - from_key: "old_field" to_key: "new_field" overwrite_if_to_key_exists: true
Parameters
entries (obligatoire)

Tableau des opérations de déménagement. Maximum de 5 entrées.

entries[].from_key (obligatoire)

Nom du champ source. 128 caractères maximum.

entries[].to_key (obligatoire)

Nom du champ cible. 128 caractères maximum.

entries[].overwrite_if_to_key_exists (facultatif)

S'il faut remplacer le champ cible existant.

when (facultatif)

Processor-level expression conditionnelle. Lorsque cette option est spécifiée, l'intégralité du processeur est ignorée si l'expression est évaluée à False. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

entries[].when (facultatif)

Entry-level expression conditionnelle. Lorsqu'elle est spécifiée, seule cette entrée est ignorée si l'expression est évaluée à False. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

entries[].when_else (facultatif)

Entrée de secours qui ne s'exécute que lorsqu'aucune des autres when conditions du même processeur ne correspond. La valeur de l'expression identifie les when conditions à prendre en compte. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

aplatir le processeur

Aplatit les structures d'objets imbriqués.

Configuration

Configurez le processeur aplatir avec les paramètres suivants :

processor: - flatten: source: "metadata" target: "flattened" remove_processed_fields: true exclude_keys: ["sensitive_data"]
Parameters
source (obligatoire)

Champ contenant un objet imbriqué à aplatir.

target (obligatoire)

Préfixe du champ cible pour les clés aplaties.

remove_processed_fields (facultatif)

S'il faut supprimer le champ imbriqué d'origine après l'aplatissement.

exclude_keys (facultatif)

Tableau de clés à exclure de l'aplatissement. Maximum de 20 touches, chacune contenant 128 caractères maximum.

when (facultatif)

Expression conditionnelle qui détermine si ce processeur s'exécute. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

processeur de recherche

Enrichie les événements du journal avec les données d'une table de recherche CloudWatch des journaux. Le processeur compare les champs de vos événements de journal aux champs de la table de recherche et ajoute des champs spécifiés à vos événements de journal. Utilisez ce processeur pour des scénarios d'enrichissement des données tels que le mappage des identifiants utilisateur avec les détails de l'utilisateur, des codes produits avec des informations sur les produits ou des codes d'erreur avec des descriptions d'erreurs. Il est possible d'ajouter au maximum un lookup processeur à un pipeline.

Note

Si une table de recherche est utilisée dans un pipeline, vous devez fournir un rôle d'exécution avec logs:GetLookupTable des autorisations sur la table. Pour de plus amples informations, veuillez consulter CloudWatch pipelines, politiques et autorisations IAM.

Configuration

Configurez le processeur de recherche avec les paramètres suivants :

processor: - lookup: lookup_table: "arn:aws:logs:us-east-1:123456789012:lookup-table:my_lookup_table" match_keys: - log_key: "src_ip" lookup_key: "ip_address" entries: - source: "hostname" target: "src_hostname" overwrite_if_exists: true
Parameters
lookup_table (obligatoire)

L'ARN de la table de recherche CloudWatch Logs à utiliser pour l'enrichissement. La longueur maximale est de 2 048 caractères.

match_keys (obligatoire)

Tableau de paires de clés qui définissent comment faire correspondre les champs des événements du journal aux champs de la table de recherche. Minimum 1, maximum 5 touches de correspondance. Lorsque plusieurs clés de correspondance sont spécifiées, une ligne de la table de recherche doit correspondre à toutes les clés pour produire un résultat (logique AND).

match_keys[].log_key (obligatoire)

Le nom du champ dans le journal des événements à comparer. 128 caractères maximum.

match_keys[].lookup_key (obligatoire)

Le nom de colonne de la table de recherche à comparer. 128 caractères maximum.

entries (obligatoire)

Tableau de champs à ajouter au journal des événements à partir de la ligne de la table de recherche correspondante. Minimum 1, maximum 10 entrées.

entries[].source (obligatoire)

Le nom de la colonne dans la table de recherche à partir de laquelle récupérer la valeur. 128 caractères maximum.

entries[].target (facultatif)

Le nom du champ à ajouter au journal des événements. S'il n'est pas spécifié, le nom de source colonne est utilisé comme nom de champ. 128 caractères maximum.

entries[].overwrite_if_exists (facultatif)

Indicateur booléen qui détermine le comportement lorsque le champ cible existe déjà dans l'événement de journal. La valeur par défaut est false.

when (facultatif)

Expression conditionnelle qui détermine si ce processeur s'exécute. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

Exemple

Imaginons une table de recherche nommée network_assets avec les lignes suivantes :

ip_address hostname owner location
10.0.1.12 serveur web-01 team-alpha us-east-1
10,0,2,45 serveur db-03 bêta par équipe us-west-2
10,0,3,78 cache-node-07 team-alpha eu-west-1

Compte tenu de l'événement de journal suivant :

{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "10.0.2.45", "action": "connection_opened", "bytes": 2048 }

Et la configuration de processeur suivante :

processor: - lookup: lookup_table: "arn:aws:logs:us-east-1:123456789012:lookup-table:network_assets" match_keys: - log_key: "src_ip" lookup_key: "ip_address" entries: - source: "hostname" target: "src_hostname" - source: "owner" - source: "location" target: "src_region" overwrite_if_exists: false

Le processeur produit l'événement de journal enrichi suivant :

{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "10.0.2.45", "action": "connection_opened", "bytes": 2048, "src_hostname": "db-server-03", "owner": "team-beta", "src_region": "us-west-2" }
Autorisations IAM

Lorsqu'un pipeline utilise le processeur de recherche, le rôle d'exécution du pipeline doit inclure logs:GetLookupTable l'autorisation pour la table référencée. L'exemple de déclaration de politique suivant accorde cette autorisation :

{ "Effect": "Allow", "Action": "logs:GetLookupTable", "Resource": "arn:aws:logs:<region>:<account-id>:lookup-table:<table-name>" }

processeur GeoIP

Le processeur GeoIP enrichit les événements du journal avec des données de localisation géographique basées sur les adresses IP. Le processeur utilise des MaxMind bases de données pour convertir les adresses IP en informations géographiques telles que la ville, le pays, le continent, les coordonnées et les détails du numéro de système autonome (ASN). Utilisez ce processeur pour l'analyse du trafic réseau, l'enrichissement de la localisation des utilisateurs et les scénarios d'investigation de sécurité.

Configuration

Configurez le processeur GeoIP avec les paramètres suivants :

processor: - geoip: entries: - source: "client_ip" target: "client_geo" include_fields: - "city_name" - "country_name" - "country_iso_code" - "continent_name" - "latitude" - "longitude" when: '.client_ip != "127.0.0.1"'
Parameters
entries (obligatoire)

Tableau d'objets d'entrée qui définissent les champs IP à enrichir avec des données géographiques. Minimum 1, maximum 10 entrées.

entries[].source (obligatoire)

Le nom du champ dans le journal des événements qui contient l'adresse IP à rechercher. Doit faire référence à une adresse IPv4 ou IPv6 valide. 128 caractères maximum.

entries[].target (obligatoire)

Nom du champ dans lequel le processeur écrit les données d'enrichissement géographique dans le journal des événements. 128 caractères maximum.

entries[].include_fields (obligatoire)

Tableau de champs géographiques à inclure dans le résultat de l'enrichissement. Minimum 1, maximum 12 champs. Les champs suivants sont disponibles :

  • continent_code— code du Two-letter continent (par exemple, « NA »).

  • continent_name— Nom du continent (par exemple, « Amérique du Nord »).

  • country_name— Nom du pays (par exemple, « États-Unis »).

  • country_iso_code— Code de pays ISO 3166-1 alpha-2 (par exemple, « États-Unis »).

  • city_name— Nom de la ville (par exemple, « Seattle »).

  • postal_code— Code postal associé à la localisation de l'adresse IP.

  • time_zone— Nom du fuseau horaire IANA (par exemple, « America/Los _Angeles »).

  • latitude— Coordonnées de latitude de l'emplacement de l'adresse IP.

  • longitude— Coordonnées de longitude de l'emplacement de l'adresse IP.

  • network— Notation CIDR du réseau associé à l'adresse IP.

  • asn— Numéro de système autonome associé à l'adresse IP.

  • asn_organization— Nom de l'organisation associé au numéro du système autonome.

entries[].when (facultatif)

Expression conditionnelle qui détermine si cette entrée s'exécute. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

when (facultatif)

Top-level expression conditionnelle qui détermine si ce processeur s'exécute. La longueur maximale est de 256 caractères. Consultez Syntaxe d'expression pour le traitement conditionnel.

Exemple

L'exemple suivant montre un exemple d'événement de journal avec des champs d'adresse IP :

{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "203.0.113.50", "dst_ip": "198.51.100.25", "action": "ALLOW", "bytes": 4096 }

La configuration de processeur suivante fait correspondre les champs IP source et de destination aux cibles d'enrichissement géographique :

processor: - geoip: entries: - source: "src_ip" target: "src_geo" include_fields: - "city_name" - "country_name" - "country_iso_code" - "latitude" - "longitude" - "asn" - "asn_organization" - source: "dst_ip" target: "dst_geo" include_fields: - "country_name" - "country_iso_code"

Le processeur produit l'événement de journal enrichi suivant :

{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "203.0.113.50", "dst_ip": "198.51.100.25", "action": "ALLOW", "bytes": 4096, "src_geo": { "city_name": "Seattle", "country_name": "United States", "country_iso_code": "US", "latitude": 47.6062, "longitude": -122.3321, "asn": 16509, "asn_organization": "Amazon.com, Inc." }, "dst_geo": { "country_name": "Germany", "country_iso_code": "DE" } }