View a markdown version of this page

Filtrer les événements liés aux données à l'aide de sélecteurs d'événements avancés - AWS CloudTrail

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.

Filtrer les événements liés aux données à l'aide de sélecteurs d'événements avancés

Cette section explique comment utiliser des sélecteurs d'événements avancés pour créer des sélecteurs précis pour l'enregistrement des événements de données, ce qui peut vous aider à contrôler les coûts en enregistrant uniquement les événements de données spécifiques qui vous intéressent.

Par exemple :

  • Vous pouvez inclure ou exclure des appels d'API spécifiques en ajoutant un filtre eventName dans le champ.

  • Vous pouvez inclure ou exclure la journalisation pour des ressources spécifiques en ajoutant un filtre sur le resources.ARN champ. Par exemple, si vous consignez des événements de données S3, vous pourriez exclure la journalisation du compartiment S3 de votre parcours.

  • Vous pouvez choisir d'enregistrer uniquement les événements en écriture seule ou en lecture seule en ajoutant un filtre sur le champ. readOnly

Le tableau suivant décrit les champs pris en charge pour le filtrage des événements liés aux données. Pour obtenir la liste des champs pris en charge pour chaque type d' CloudTrail événement, consultez AdvancedEventSelector la référence de l'AWS CloudTrail API.

Champ Obligatoire Opérateurs valides Description

eventCategory

Oui

Equals

Ce champ est configuré pour enregistrer Data les événements liés aux données.

resources.type

Oui

Equals

Ce champ est utilisé pour sélectionner le type de ressource pour lequel vous souhaitez enregistrer les événements liés aux données. Le tableau des événements liés aux données indique les valeurs possibles.

readOnly

Non

Equals

Il s'agit d'un champ facultatif utilisé pour inclure ou exclure des événements de données en fonction de la readOnly valeur. La valeur des true journaux ne lit que les événements. La valeur des false journaux enregistre uniquement les événements. Si vous n'ajoutez pas ce champ, CloudTrail enregistre les événements de lecture et d'écriture.

eventName

Non

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

Il s'agit d'un fichier facultatif utilisé pour filtrer ou filtrer tout événement de données enregistré CloudTrail, tel que ou. PutBucket GetSnapshotBlock

Si vous utilisez le AWS CLI, vous pouvez spécifier plusieurs valeurs en les séparant par une virgule.

Si vous utilisez la console, vous pouvez spécifier plusieurs valeurs en créant une condition pour chacune d'entre elles que eventName vous souhaitez filtrer.

resources.ARN

Non

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

Il s'agit d'un champ facultatif utilisé pour exclure ou inclure des événements de données pour une ressource spécifique en fournissant leresources.ARN. Vous pouvez utiliser n'importe quel opérateur avecresources.ARN, mais si vous utilisez Equals ouNotEquals, la valeur doit correspondre exactement à l'ARN d'une ressource valide pour la ressource que resources.type vous avez spécifiée. Pour journaliser tous les événements de données pour tous les objets d'un compartiment S3 spécifique, utilisez l'opérateur StartsWith et n'incluez que l'ARN du compartiment comme valeur correspondante.

Si vous utilisez le AWS CLI, vous pouvez spécifier plusieurs valeurs en les séparant par une virgule.

Si vous utilisez la console, vous pouvez spécifier plusieurs valeurs en créant une condition pour chacune d'entre elles que resources.ARN vous souhaitez filtrer.

eventSource

Non

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

Vous pouvez l'utiliser pour inclure ou exclure des sources d'événements spécifiques. eventSourceIl s'agit généralement d'une forme abrégée du nom du service sans espaces plus.amazonaws.com. Par exemple, vous pouvez configurer eventSource Equals pour ec2.amazonaws.com enregistrer uniquement les événements de données Amazon EC2.

eventType

Non

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

Le type d'événement à inclure ou à exclure. Par exemple, vous pouvez définir ce champ NotEquals AwsServiceEvent pour exclure Service AWS des événements.

sessionCredentialFromConsole

Non

Equals

NotEquals

Incluez ou excluez des événements provenant d'une Console de gestion AWS session. Ce champ peut être défini sur Equals ou NotEquals avec une valeur detrue.

userIdentity.arn

Non

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

Incluez ou excluez des événements pour les actions entreprises par des identités IAM spécifiques. Pour de plus amples informations, veuillez consulter Élément CloudTrail userIdentity.

Pour enregistrer les événements de données à l'aide de la CloudTrail console, vous choisissez l'option Événements de données, puis vous sélectionnez le type de ressource qui vous intéresse lorsque vous créez ou mettez à jour un magasin de données de sentiers ou d'événements. Le tableau des événements liés aux données indique les types de ressources que vous pouvez sélectionner sur la CloudTrail console.

Sélection du type de ressource de rubrique SNS sur la console.

Pour enregistrer les événements de données à l'aide de AWS CLI, configurez le --advanced-event-selector paramètre de manière à définir la valeur Data et la resources.type valeur égales à la valeur du type de ressource pour lequel vous souhaitez enregistrer les événements de données. eventCategory Le tableau des événements liés aux données répertorie les types de ressources disponibles.

Par exemple, si vous souhaitez enregistrer les événements de données pour tous les pools Cognito Identity, vous devez configurer le --advanced-event-selectors paramètre comme suit :

--advanced-event-selectors '[ { "Name": "Log Cognito data events on Identity pools", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Cognito::IdentityPool"] } ] } ]'

L'exemple précédent enregistre tous les événements de données Cognito sur les pools d'identités. Vous pouvez affiner davantage les sélecteurs d'événements avancés pour filtrer les resources.ARN champs eventNamereadOnly, et pour enregistrer des événements intéressants spécifiques ou exclure des événements qui ne présentent pas d'intérêt.

Vous pouvez configurer des sélecteurs d'événements avancés pour filtrer les événements de données en fonction de plusieurs champs. Par exemple, vous pouvez configurer des sélecteurs d'événements avancés pour enregistrer tous les appels Amazon S3 PutObject et DeleteObject API, mais exclure la journalisation des événements pour un compartiment S3 spécifique, comme illustré dans l'exemple suivant. Remplacez amzn-s3-demo-bucket par le nom de votre compartiment.

--advanced-event-selectors '[ { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["PutObject","DeleteObject"] }, { "Field": "resources.ARN", "NotStartsWith": ["arn:aws:s3:::amzn-s3-demo-bucket/"] } ] } ]'

Vous pouvez également inclure plusieurs conditions pour un champ. Pour plus d'informations sur la manière dont plusieurs conditions sont évaluées, consultezComment CloudTrail évaluer plusieurs conditions pour un champ.

Vous pouvez utiliser des sélecteurs d'événements avancés pour enregistrer à la fois les événements de gestion et les événements liés aux données. Pour enregistrer les événements de données pour plusieurs types de ressources, ajoutez une instruction de sélection de champ pour chaque type de ressource pour lequel vous souhaitez enregistrer les événements de données.

Note

Les sentiers peuvent utiliser des sélecteurs d'événements de base ou des sélecteurs d'événements avancés, mais pas les deux. Si vous appliquez des sélecteurs d’événements avancés à un journal de suivi, tous les sélecteurs d’événements de base existants sont remplacés.

Les sélecteurs ne prennent pas en charge l'utilisation de caractères génériques tels que. * Pour faire correspondre plusieurs valeurs à une seule condition, vous pouvez utiliserStartsWith, EndsWithNotStartsWith, ou NotEndsWith pour faire correspondre explicitement le début ou la fin du champ d'événement.

Comment CloudTrail évaluer plusieurs conditions pour un champ

Pour les sélecteurs d'événements avancés, CloudTrail évalue plusieurs conditions pour un champ comme suit :

  • Les opérateurs DESELECT sont codés par ET. Si l'une des conditions de l'opérateur DESELECT est remplie, l'événement n'est pas diffusé. Voici les opérateurs DESELECT valides pour les sélecteurs d'événements avancés :

    • NotEndsWith

    • NotEquals

    • NotStartsWith

  • Les opérateurs SELECT sont classés OR ensemble. Voici les opérateurs SELECT valides pour les sélecteurs d'événements avancés :

    • EndsWith

    • Equals

    • StartsWith

  • Les combinaisons des opérateurs SELECT et DESELECT suivent les règles ci-dessus et les deux groupes sont classés ET ensemble.

Exemple montrant plusieurs conditions pour le champ Resources.arn

L'exemple d'instruction de sélection d'événements suivant collecte des événements de données pour le type de AWS::S3::Object ressource et applique plusieurs conditions sur le resources.ARN terrain.

{ "Name": "S3Select", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:s3:::amzn-s3-demo-bucket/object1" ], "StartsWith": [ "arn:aws:s3:::amzn-s3-demo-bucket/" ], "EndsWith": [ "object3" ], "NotStartsWith": [ "arn:aws:s3:::amzn-s3-demo-bucket/deselect" ], "NotEndsWith": [ "object5" ], "NotEquals": [ "arn:aws:s3:::amzn-s3-demo-bucket/object6" ] } ] }

Dans l'exemple précédent, les événements de données Amazon S3 pour la AWS::S3::Object ressource seront fournis si :

  1. Aucune de ces conditions relatives à l'opérateur DESELECT n'est remplie :

    • le resources.ARN champ NotStartsWith la valeur arn:aws:s3:::amzn-s3-demo-bucket/deselect

    • le resources.ARN champ NotEndsWith la valeur object5

    • le resources.ARN champ NotEquals la valeur arn:aws:s3:::amzn-s3-demo-bucket/object6

  2. Au moins l'une des conditions de l'opérateur SELECT est remplie :

    • le resources.ARN champ Equals la valeur arn:aws:s3:::amzn-s3-demo-bucket/object1

    • le resources.ARN champ StartsWith la valeur arn:aws:s3:::amzn-s3-demo-bucket/

    • le resources.ARN champ EndsWith la valeur object3

Sur la base de la logique d'évaluation :

  1. Les événements de données pour amzn-s3-demo-bucket/object1 seront fournis car ils correspondent à la valeur de Equals l'opérateur et ne correspondent à aucune des valeurs des NotEquals opérateurs NotStartsWithNotEndsWith, et.

  2. L'événement de données pour amzn-s3-demo-bucket/object2 sera transmis car il correspond à la valeur de StartsWith l'opérateur et ne correspond à aucune des valeurs des NotEquals opérateurs NotStartsWithNotEndsWith, et.

  3. Les événements de données pour amzn-s3-demo-bucket1/object3 seront fournis car ils correspondent à l'EndsWithopérateur et ne correspondent à aucune des valeurs des NotEquals opérateurs NotStartsWithNotEndsWith, et.

  4. Les événements de données pour ne arn:aws:s3:::amzn-s3-demo-bucket/deselectObject4 seront pas transmis car ils correspondent à la condition pour le NotStartsWith même s'ils correspondent à la condition pour l'StartsWithopérateur.

  5. Les événements de données pour ne arn:aws:s3:::amzn-s3-demo-bucket/object5 seront pas transmis car ils correspondent à la condition pour le NotEndsWith même s'ils correspondent à la condition pour l'StartsWithopérateur.

  6. Les événements de données pour le ne arn:aws:s3:::amzn-s3-demo-bucket/object6 seront pas transmis car ils correspondent à la condition pour l'NotEqualsopérateur même s'ils correspondent à la condition pour l'StartsWithopérateur.

AWS CLI exemples de filtrage des événements liés aux données

Cette section fournit des AWS CLI exemples montrant comment filtrer les événements de données sur différents champs. Pour obtenir des AWS CLI exemples supplémentaires, consultez Enregistrez les événements liés aux données des sentiers à l'aide de sélecteurs d'événements avancés etEnregistrement des événements de données pour les magasins de données d'événements avec AWS CLI.

Pour plus d'informations sur la façon de consigner les événements liés aux données à l'aide de la console, consultezEnregistrement des événements liés aux données à l'aide du Console de gestion AWS.

Exemple 1 : Filtrage sur le champ EventName

Dans le premier exemple, les --advanced-event-selectors for a trail sont configurés pour enregistrer uniquement les appels d'DeleteObjectAPI GetObjectPutObject,, et pour les objets Amazon S3 dans des compartiments à usage général.

aws cloudtrail put-event-selectors \ --trail-name trailName \ --advanced-event-selectors '[ { "Name": "Log GetObject, PutObject and DeleteObject S3 data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["GetObject","PutObject","DeleteObject"] } ] } ]'

L'exemple suivant crée un nouveau magasin de données d'événements qui enregistre les événements de données pour les API EBS Direct mais exclut les appels ListChangedBlocks d'API. Vous pouvez utiliser cette update-event-data-store commande pour mettre à jour un magasin de données d'événements existant.

aws cloudtrail create-event-data-store \ --name "eventDataStoreName" --advanced-event-selectors '[ { "Name": "Log all EBS Direct API data events except ListChangedBlocks", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::EC2::Snapshot"] }, { "Field": "eventName", "NotEquals": ["ListChangedBlocks"] } ] } ]'

Exemple 2 : Filtrage sur les champs Resources.arn et user Identity.arn

L'exemple suivant montre comment inclure tous les événements de données pour tous les objets Amazon S3 dans un compartiment S3 à usage général spécifique, tout en excluant les événements générés par le bucket-scanner-roleuserIdentity. La valeur des événements S3 pour le champ resources.type est AWS::S3::Object. Les valeurs ARN des objets S3 et des compartiments S3 étant légèrement différentes, vous devez ajouter l'StartsWithopérateur forresources.ARN.

aws cloudtrail put-event-selectors \ --trail-name trailName \ --advanced-event-selectors \ '[ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "resources.ARN", "StartsWith": ["arn:partition:s3:::amzn-s3-demo-bucket/"] }, { "Field": "userIdentity.arn", "NotStartsWith": ["arn:aws:sts::123456789012:assumed-role/bucket-scanner-role"]} ] } ]'

Exemple 3 : Filtrage des champs resources.type et EventName pour exclure des objets individuels supprimés par un événement Amazon S3 DeleteObjects

L'exemple suivant montre comment inclure tous les événements de données pour tous les objets Amazon S3 dans un compartiment Amazon S3 à usage général spécifique, tout en excluant les objets individuels supprimés par l'DeleteObjectopération. La valeur des événements S3 pour le champ resources.type est AWS::S3::Object. La valeur du nom de l'événement estDeleteObject.

aws cloudtrail put-event-selectors \ --trail-name trailName \ --advanced-event-selectors \ { "Name": "Exclude Events for DeleteObject operation", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "eventName", "NotEquals": [ "DeleteObject" ] } ] }, { "Name": "Exclude DeleteObject Events for individual objects deleted by DeleteObjects Operation", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "eventName", "Equals": [ "DeleteObject" ] }, { "Field": "eventType", "NotEquals": [ "AwsServiceEvent" ] } ] } ] (edited)