AWS CloudWatch est un service qui vous permet de :

  • Surveiller les performances : Collecter et suivre des métriques pour les ressources AWS.
  • Définir des alarmes : Configurer des alarmes pour réagir aux changements dans les métriques.
  • Visualiser des logs : Collecter, surveiller et analyser les logs d'application et de système.
  • Réagir automatiquement : Utiliser des actions automatiques pour réagir aux alarmes, comme le redimensionnement automatique des instances EC2.

Exemples de Ligne de Commande

Pour interagir avec AWS CloudWatch via la ligne de commande, vous pouvez utiliser l'AWS Command Line Interface (CLI). Voici quelques exemples de commandes avancées pour créer, gérer et surveiller des ressources avec CloudWatch.

Prérequis

Avant de commencer, assurez-vous que l'AWS CLI est installé et configuré sur votre machine. Vous pouvez configurer l'AWS CLI avec la commande suivante :

aws configure

Vous devrez fournir votre clé d'accès AWS, votre clé secrète, la région par défaut et le format de sortie.

Créer une Alarme

Pour créer une alarme CloudWatch :

aws cloudwatch put-metric-alarm --alarm-name my-cpu-alarm --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --evaluation-periods 2 --alarm-actions arn:aws:sns:us-east-1:123456789012:my-sns-topic

Lister les Alarmes

Pour lister toutes les alarmes CloudWatch :

aws cloudwatch describe-alarms

Supprimer une Alarme

Pour supprimer une alarme CloudWatch :

aws cloudwatch delete-alarms --alarm-names my-cpu-alarm

Créer un Groupe de Logs

Pour créer un groupe de logs CloudWatch :

aws logs create-log-group --log-group-name my-log-group

Créer un Flux de Logs

Pour créer un flux de logs dans un groupe de logs :

aws logs create-log-stream --log-group-name my-log-group --log-stream-name my-log-stream

Publier des Événements de Log

Pour publier des événements de log dans un flux de logs :

aws logs put-log-events --log-group-name my-log-group --log-stream-name my-log-stream --log-events file://log-events.json

Le fichier log-events.json pourrait ressembler à ceci :

[
  {
    "timestamp": 1609459200000,
    "message": "This is a log message."
  }
]

Lister les Groupes de Logs

Pour lister tous les groupes de logs CloudWatch :

aws logs describe-log-groups

Lister les Flux de Logs

Pour lister tous les flux de logs dans un groupe de logs :

aws logs describe-log-streams --log-group-name my-log-group

Récupérer des Événements de Log

Pour récupérer des événements de log à partir d'un flux de logs :

aws logs get-log-events --log-group-name my-log-group --log-stream-name my-log-stream

Créer une Règle d'Événement

Pour créer une règle d'événement CloudWatch :

aws events put-rule --name my-event-rule --event-pattern file://event-pattern.json

Le fichier event-pattern.json pourrait ressembler à ceci :

{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification"],
  "detail": {
    "state": ["stopped"]
  }
}

Ajouter une Cible à une Règle d'Événement

Pour ajouter une cible à une règle d'événement :

aws events put-targets --rule my-event-rule --targets file://targets.json

Le fichier targets.json pourrait ressembler à ceci :

[
  {
    "Id": "my-target-id",
    "Arn": "arn:aws:sns:us-east-1:123456789012:my-sns-topic"
  }
]

Lister les Règles d'Événement

Pour lister toutes les règles d'événement CloudWatch :

aws events list-rules

Supprimer une Règle d'Événement

Pour supprimer une règle d'événement CloudWatch :

aws events delete-rule --name my-event-rule

Conclusion

AWS CloudWatch est un service puissant pour surveiller et gérer les ressources AWS. En utilisant l'AWS CLI, vous pouvez automatiser et simplifier la création, la gestion et la surveillance des ressources avec CloudWatch. Ces exemples de commandes vous donnent un bon point de départ pour commencer à utiliser AWS CloudWatch via la ligne de commande.


Mise en garde concernant l'utilisation des outils de cybersécurité

L'utilisation des outils de cybersécurité présentés sur ce site est soumise à des considérations légales et éthiques importantes. Avant d'utiliser ces outils, nous vous encourageons à prendre en compte les points suivants :

- Cadre légal : L'utilisation de certains outils de cybersécurité peut être réglementée par la loi dans votre pays ou région. Il est de votre responsabilité de vous informer sur les lois en vigueur concernant la cybersécurité, la protection des données et la vie privée. L'utilisation non autorisée de ces outils peut entraîner des poursuites judiciaires et des sanctions pénales.

- Consentement : Assurez-vous d'obtenir le consentement explicite des parties concernées avant d'utiliser des outils qui pourraient intercepter, surveiller ou analyser des données. Le respect de la vie privée des individus est primordial.

- Utilisation éthique : Les outils de cybersécurité doivent être utilisés de manière éthique et responsable. Ils ne doivent pas être employés à des fins malveillantes, telles que le piratage, le vol de données ou toute autre activité illégale.

- Responsabilité : En utilisant ces outils, vous reconnaissez que vous le faites à vos propres risques. Nous ne saurions être tenus responsables des conséquences résultant de l'utilisation de ces outils, y compris, mais sans s'y limiter, les dommages matériels, les pertes de données ou les poursuites judiciaires.

- Formation et expertise : Il est recommandé de suivre une formation adéquate et de posséder les compétences nécessaires avant d'utiliser des outils de cybersécurité. Une mauvaise utilisation peut entraîner des résultats indésirables et des risques pour la sécurité.

En utilisant ce site et les outils qui y sont présentés, vous acceptez de respecter ces conditions et de vous conformer à toutes les lois applicables.

Formateur

Bertrand LECLERCQ

Consultant DevSecOps & Data Engineer


Avec 25 ans d'expérience dans le développement logiciel et une certification en Data Engineering de l'École des Mines Paris - PSL, je suis passionné par la cybersécurité, le big data et le DevOps. J'aime partager mes connaissances et aider la communauté à renforcer sa posture de sécurité.

J'ai créé une base de vulnérabilités librement accessible et je me forme en continu sur des plateformes comme TryHackMe. Mon objectif ? Démocratiser la cybersécurité et permettre à chacun de mieux comprendre les enjeux.

J'ai une solide expertise dans la conception et le déploiement de solutions sécurisées, ainsi qu'une expérience éprouvée dans la gestion de projets complexes. Maîtrisant un large éventail de technologies (Python, Go, Java, Docker, Kubernetes, etc.), je suis convaincu que la sécurité doit être intégrée dès le début du cycle de développement.

Le projet NoHackMe vous permet d'effectuer une veille Cyber, vous permet de découvrir le monde de la Cybersécurité ainsi qu'une section formation Cyber

Soutenez No Hack Me sur Tipeee