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
eventNamedans le champ. -
Vous pouvez inclure ou exclure la journalisation pour des ressources spécifiques en ajoutant un filtre sur le
resources.ARNchamp. 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 |
|---|---|---|---|
|
|
Oui |
|
Ce champ est configuré pour enregistrer |
|
|
Oui |
|
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. |
|
|
Non |
|
Il s'agit d'un champ facultatif utilisé pour inclure ou exclure des événements de données en fonction de la |
|
|
Non |
|
Il s'agit d'un fichier facultatif utilisé pour filtrer ou filtrer tout événement de données enregistré CloudTrail, tel que ou. 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 |
|
|
Non |
|
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 le 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 |
|
|
Non |
|
Vous pouvez l'utiliser pour inclure ou exclure des sources d'événements spécifiques. |
|
|
Non |
|
Le type d'événement à inclure ou à exclure. Par exemple, vous pouvez définir ce champ |
|
|
Non |
|
Incluez ou excluez des événements provenant d'une Console de gestion AWS session. Ce champ peut être défini sur |
|
|
Non |
|
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.
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.
Rubriques
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 :
-
Aucune de ces conditions relatives à l'opérateur DESELECT n'est remplie :
-
le
resources.ARNchampNotStartsWithla valeurarn:aws:s3:::amzn-s3-demo-bucket/deselect -
le
resources.ARNchampNotEndsWithla valeurobject5 -
le
resources.ARNchampNotEqualsla valeurarn:aws:s3:::amzn-s3-demo-bucket/object6
-
-
Au moins l'une des conditions de l'opérateur SELECT est remplie :
-
le
resources.ARNchampEqualsla valeurarn:aws:s3:::amzn-s3-demo-bucket/object1 -
le
resources.ARNchampStartsWithla valeurarn:aws:s3:::amzn-s3-demo-bucket/ -
le
resources.ARNchampEndsWithla valeurobject3
-
Sur la base de la logique d'évaluation :
-
Les événements de données pour
amzn-s3-demo-bucket/object1seront fournis car ils correspondent à la valeur deEqualsl'opérateur et ne correspondent à aucune des valeurs desNotEqualsopérateursNotStartsWithNotEndsWith, et. -
L'événement de données pour
amzn-s3-demo-bucket/object2sera transmis car il correspond à la valeur deStartsWithl'opérateur et ne correspond à aucune des valeurs desNotEqualsopérateursNotStartsWithNotEndsWith, et. -
Les événements de données pour
amzn-s3-demo-bucket1/object3seront fournis car ils correspondent à l'EndsWithopérateur et ne correspondent à aucune des valeurs desNotEqualsopérateursNotStartsWithNotEndsWith, et. -
Les événements de données pour ne
arn:aws:s3:::amzn-s3-demo-bucket/deselectObject4seront pas transmis car ils correspondent à la condition pour leNotStartsWithmême s'ils correspondent à la condition pour l'StartsWithopérateur. -
Les événements de données pour ne
arn:aws:s3:::amzn-s3-demo-bucket/object5seront pas transmis car ils correspondent à la condition pour leNotEndsWithmême s'ils correspondent à la condition pour l'StartsWithopérateur. -
Les événements de données pour le ne
arn:aws:s3:::amzn-s3-demo-bucket/object6seront 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.
Exemples :
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-nametrailName\ --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-nametrailName\ --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
resources.type etL'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-nametrailName\ --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)