Utilisation de LookupEvents avec un kit AWS SDK ou une interface de ligne de commande - Exemples de code de kit AWS SDK

D’autres exemples de kits AWS SDK sont disponibles dans le référentiel GitHub AWS Doc SDK Examples.

Utilisation de LookupEvents avec un kit AWS SDK ou une interface de ligne de commande

Les exemples de code suivants illustrent comment utiliser LookupEvents.

C++
kit SDK pour C++
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

// Routine which looks up events captured by AWS CloudTrail. /*! \param clientConfig: Aws client configuration. \return bool: Function succeeded. */ bool AwsDoc::CloudTrail::lookupEvents( const Aws::Client::ClientConfiguration &clientConfig) { Aws::CloudTrail::CloudTrailClient cloudtrail(clientConfig); Aws::String nextToken; // Used for pagination. Aws::Vector<Aws::CloudTrail::Model::Event> allEvents; Aws::CloudTrail::Model::LookupEventsRequest request; size_t count = 0; do { if (!nextToken.empty()) { request.SetNextToken(nextToken); } Aws::CloudTrail::Model::LookupEventsOutcome outcome = cloudtrail.LookupEvents( request); if (outcome.IsSuccess()) { const Aws::Vector<Aws::CloudTrail::Model::Event> &events = outcome.GetResult().GetEvents(); count += events.size(); allEvents.insert(allEvents.end(), events.begin(), events.end()); nextToken = outcome.GetResult().GetNextToken(); } else { std::cerr << "Error: " << outcome.GetError().GetMessage() << std::endl; return false; } } while (!nextToken.empty() && count <= 50); // Limit to 50 events. std::cout << "Found " << allEvents.size() << " event(s)." << std::endl; for (auto &event: allEvents) { std::cout << "Event name: " << event.GetEventName() << std::endl; std::cout << "Event source: " << event.GetEventSource() << std::endl; std::cout << "Event id: " << event.GetEventId() << std::endl; std::cout << "Resources: " << std::endl; for (auto &resource: event.GetResources()) { std::cout << " " << resource.GetResourceName() << std::endl; } } return true; }
  • Pour plus de détails sur l’API, consultez LookupEvents dans la Référence des API du kit AWS SDK pour C++.

CLI
AWS CLI

Pour rechercher des événements pour un journal de suivi

La commande lookup-events suivante recherche les événements d’activité de l’API par attribut EventName :

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ConsoleLogin

Sortie :

{ "Events": [ { "EventId": "654ccbc0-ba0d-486a-9076-dbf7274677a7", "Username": "my-session-name", "EventTime": "2021-11-18T09:41:02-08:00", "CloudTrailEvent": "{\"eventVersion\":\"1.02\",\"userIdentity\":{\"type\":\"AssumedRole\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4:my-session-name\",\"arn\":\"arn:aws:sts::123456789012:assumed-role/my-role/my-session-name\",\"accountId\":\"123456789012\",\"sessionContext\":{\"attributes\":{\"mfaAuthenticated\":\"false\",\"creationDate\":\"2016-01-26T21:42:12Z\"},\"sessionIssuer\":{\"type\":\"Role\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4\",\"arn\":\"arn:aws:iam::123456789012:role/my-role\",\"accountId\":\"123456789012\",\"userName\":\"my-role\"}}},\"eventTime\":\"2016-01-26T21:42:12Z\",\"eventSource\":\"signin.amazonaws.com\",\"eventName\":\"ConsoleLogin\",\"awsRegion\":\"us-east-1\",\"sourceIPAddress\":\"72.21.198.70\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36\",\"requestParameters\":null,\"responseElements\":{\"ConsoleLogin\":\"Success\"},\"additionalEventData\":{\"MobileVersion\":\"No\",\"MFAUsed\":\"No\"},\"eventID\":\"654ccbc0-ba0d-486a-9076-dbf7274677a7\",\"eventType\":\"AwsConsoleSignIn\",\"recipientAccountId\":\"123456789012\"}", "EventName": "ConsoleLogin", "Resources": [] } ] }
  • Pour plus de détails sur l’API, consultez LookupEvents dans la Référence des commandes de l’AWS CLI.

PowerShell
Outils pour PowerShell V4

Exemple 1 : renvoie tous les événements qui se sont produits au cours des sept derniers jours. Par défaut, l’applet de commande effectue automatiquement plusieurs appels pour transmettre tous les événements, puis s’arrête lorsque le service indique qu’aucune autre donnée n’est disponible.

Find-CTEvent

Exemple 2 : renvoie tous les événements survenus au cours des sept derniers jours en spécifiant une région qui n’est pas la valeur par défaut du shell actuel.

Find-CTEvent -Region eu-central-1

Exemple 3 : renvoie tous les événements associés à l’appel d’API RunInstances.

Find-CTEvent -LookupAttribute @{ AttributeKey="EventName"; AttributeValue="RunInstances" }

Exemple 4 : renvoie les cinq premiers événements disponibles.

Find-CTEvent -MaxResult 5
  • Pour plus de détails sur l’API, consultez LookupEvents dans la Référence des applets de commande pour les Outils AWS pour PowerShell (V4).

Outils pour PowerShell V5

Exemple 1 : renvoie tous les événements qui se sont produits au cours des sept derniers jours. Par défaut, l’applet de commande effectue automatiquement plusieurs appels pour transmettre tous les événements, puis s’arrête lorsque le service indique qu’aucune autre donnée n’est disponible.

Find-CTEvent

Exemple 2 : renvoie tous les événements survenus au cours des sept derniers jours en spécifiant une région qui n’est pas la valeur par défaut du shell actuel.

Find-CTEvent -Region eu-central-1

Exemple 3 : renvoie tous les événements associés à l’appel d’API RunInstances.

Find-CTEvent -LookupAttribute @{ AttributeKey="EventName"; AttributeValue="RunInstances" }

Exemple 4 : renvoie les cinq premiers événements disponibles.

Find-CTEvent -MaxResult 5
  • Pour plus de détails sur l’API, consultez LookupEvents dans la Référence des applets de commande pour les Outils AWS pour PowerShell (V5).

Ruby
Kit SDK pour Ruby
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

require 'aws-sdk-cloudtrail' # v2: require 'aws-sdk' # @param [Object] client def lookup_events_example(client) resp = client.lookup_events puts "Found #{resp.events.count} events:" resp.events.each do |e| puts "Event name: #{e.event_name}" puts "Event ID: #{e.event_id}" puts "Event time: #{e.event_time}" puts 'Resources:' e.resources.each do |r| puts " Name: #{r.resource_name}" puts " Type: #{r.resource_type}" puts '' end end end
  • Pour plus de détails sur l’API, consultez LookupEvents dans la Référence des API du kit AWS SDK pour Ruby.