Je souhaite suivre les appels d'API qui exécutent, arrêtent, démarrent et résilient mes instances Amazon Elastic Compute Cloud (Amazon EC2). Comment rechercher des appels d'API vers mes instances Amazon EC2 à l'aide d'AWS CloudTrail ?
Brève description
AWS CloudTrail vous permet d'identifier et de suivre quatre types d'appels d'API (types d'événements) effectués sur votre compte AWS :
Pour vérifier ces types d'appels d'API une fois qu'ils ont été effectués sur votre compte, vous pouvez utiliser l'une des méthodes suivantes.
Remarque : Vous pouvez consulter l'historique des événements associés à votre compte au cours des 90 derniers jours.
Résolution
Pour suivre les appels d'API à l'aide de l'historique des événements CloudTrail
1. Ouvrez la console CloudTrail.
2. Choisissez Historique des événements.
3. Dans Filtrer, sélectionnez Nom de l’événement dans la liste déroulante.
4. Dans Saisir le nom de l'événement, saisissez le type d'événement que vous souhaitez rechercher. Puis, choisissez le type d'événement.
5. Dans Période, saisissez la période souhaitée pour laquelle vous souhaitez suivre le type d'événement.
6. Sélectionnez Appliquer.
Pour plus d'informations, consultez les sections Affichage des événements avec l'historique des événements CloudTrail et Affichage des événements Cloudtrail dans la console CloudTrail.
Pour suivre les appels d'API à l'aide de requêtes Amazon Athena
Suivez les instructions de la section Comment puis-je créer automatiquement des tables dans Amazon Athena pour effectuer des recherches dans les journaux AWS CloudTrail ?
Voici des exemples de requêtes pour l'appel d'API RunInstances. Vous pouvez utiliser des requêtes similaires pour l’un des types d'événements pris en charge.
Important : Remplacez cloudtrail-logs par le nom de votre table Athena avant d'exécuter l'un des exemples de requête suivants.
Exemple de requête pour renvoyer toutes les informations sur les événements disponibles pour l'appel d'API RunInstances
SELECT *
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'
Exemple de requête pour renvoyer des informations sur les événements filtrés pour l'appel d'API RunInstances
SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'
Exemple de requête pour renvoyer des informations sur les événements pour les API qui se terminent par la chaîne « Instances » à partir d'un instant donné jusqu'à la date actuelle
Important : Remplacez '2021-07-01T00:00:01Z' par le moment auquel vous souhaitez renvoyer les informations relatives à l'événement.
SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE (eventName LIKE '%Instances') AND eventTime > '2021-07-01T00:00:01Z'
Pour suivre les appels d'API à l'aide des journaux Amazon CloudWatch archivés dans Amazon Simple Storage Service (Amazon S3)
Important : Pour journaliser les événements de journal dans un compartiment Amazon S3, vous devez d'abord créer un journal de suivi CloudWatch.
1. Accédez à vos fichiers journaux CloudTrail en suivant les instructions de la section Trouver vos fichiers journaux CloudTrail.
2. Téléchargez vos fichiers journaux en suivant les instructions de la section Téléchargement de vos fichiers journaux CloudTrail.
3. Recherchez dans les journaux les types d'événements que vous souhaitez suivre à l'aide de jq ou d'un autre processeur de ligne de commande JSON.
Exemple de procédure jq pour rechercher des types d'événements spécifiques dans les journaux CloudWatch téléchargés depuis Amazon S3
1. Ouvrez un terminal Bash. Puis, créez le répertoire suivant pour stocker les fichiers journaux :
$ mkdir cloudtrail-logs
4. Accédez au nouveau répertoire. Puis, téléchargez les journaux CloudTrail en exécutant la commande suivante :
Important : Remplacez l'exemple my_cloudtrail_bucket par votre compartiment Amazon S3.
$ cd cloudtrail-logs
$ aws s3 cp s3://my_cloudtrail_bucket/AWSLogs/012345678901/CloudTrail/eu-west-1/2019/08/07 ./ --recursive
5. Décompressez les fichiers journaux en exécutant la commande gzip suivante :
Important : Remplacez * par le nom du fichier que vous souhaitez décompresser.
$ gzip -d *
6. Exécutez une requête jq pour les types d'événements que vous souhaitez rechercher.
Exemple de requête jq pour renvoyer toutes les informations d'événement disponibles pour l'appel d'API RunInstances
cat * | jq '.Records[] | select(.eventName=="RunInstances")'
Exemple de requête jq pour renvoyer toutes les informations d'événement disponibles pour les appels d'API StopInstances et TerminateInstances
cat * | jq '.Records[] | select(.eventName=="StopInstances" or .eventName=="TerminateInstances" )'
Informations connexes
Comment puis-je utiliser CloudTrail pour examiner les appels et les actions d'API qui ont eu lieu dans mon compte AWS ?
Création de métriques à partir des événements de journal à l'aide de filtres
La console AWS Config affiche maintenant les événements d'API associés aux modifications de configuration