# AWS - Enumération du Planificateur EventBridge

## Planificateur EventBridge

{{#include ../../../banners/hacktricks-training.md}}

## Planificateur EventBridge

**Amazon EventBridge Scheduler** est un planificateur entièrement géré et **sans serveur conçu pour créer, exécuter et gérer des tâches** à grande échelle. Il vous permet de planifier des millions de tâches à travers plus de 270 services AWS et plus de 6 000 opérations API, le tout à partir d'un service central. Avec une fiabilité intégrée et aucune infrastructure à gérer, le Planificateur EventBridge simplifie la planification, réduit les coûts de maintenance et s'adapte automatiquement à la demande. Vous pouvez configurer des expressions cron ou de taux pour des horaires récurrents, définir des invocations uniques et définir des fenêtres de livraison flexibles avec des options de réessai, garantissant que les tâches sont livrées de manière fiable en fonction de la disponibilité des cibles en aval.

Il y a une limite initiale de 1 000 000 d'horaires par région et par compte. Même la page officielle des quotas suggère : "Il est recommandé de supprimer les horaires uniques une fois qu'ils sont terminés."&#x20;

### Types d'Horaires

Types d'Horaires dans le Planificateur EventBridge :

1. **Horaires uniques** – Exécutez une tâche à un moment spécifique, par exemple, le 21 décembre à 7h UTC.
2. **Horaires basés sur le taux** – Définissez des tâches récurrentes en fonction d'une fréquence, par exemple, toutes les 2 heures.
3. **Horaires basés sur cron** – Définissez des tâches récurrentes en utilisant une expression cron, par exemple, tous les vendredis à 16h.

Deux Mécanismes pour Gérer les Événements Échoués :

1. **Politique de Réessai** – Définit le nombre de tentatives de réessai pour un événement échoué et combien de temps le garder non traité avant de le considérer comme un échec.
2. **File d'Attente de Lettres Mortes (DLQ)** – Une file d'attente Amazon SQS standard où les événements échoués sont livrés après que les réessais ont été épuisés. Les DLQ aident à résoudre les problèmes avec votre horaire ou sa cible en aval.

### Cibles

Il existe 2 types de cibles pour un planificateur [**templated (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-templated.html), qui sont couramment utilisés et qu'AWS a rendus plus faciles à configurer, et [**universal (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), qui peuvent être utilisés pour appeler n'importe quelle API AWS.

**Cibles templated** prennent en charge les services suivants :

- CodeBuild – StartBuild
- CodePipeline – StartPipelineExecution
- Amazon ECS – RunTask
- Parameters: EcsParameters
- EventBridge – PutEvents
- Parameters: EventBridgeParameters
- Amazon Inspector – StartAssessmentRun
- Kinesis – PutRecord
- Parameters: KinesisParameters
- Firehose – PutRecord
- Lambda – Invoke
- SageMaker – StartPipelineExecution
- Parameters: SageMakerPipelineParameters
- Amazon SNS – Publish
- Amazon SQS – SendMessage
- Parameters: SqsParameters
- Step Functions – StartExecution

### Énumération
```bash
# List all EventBridge Scheduler schedules
aws scheduler list-schedules

# List all EventBridge Scheduler schedule groups
aws scheduler list-schedule-groups

# Describe a specific schedule to retrieve more details
aws scheduler get-schedule --name <schedule_name>

# Describe a specific schedule group
aws scheduler get-schedule-group --name <group_name>

# List tags for a specific schedule (helpful in identifying any custom tags or permissions)
aws scheduler list-tags-for-resource --resource-arn <schedule_group_arn>
```
### Privesc

Dans la page suivante, vous pouvez vérifier comment **abuser des permissions de l'eventbridge scheduler pour escalader les privilèges** :

{{#ref}}
../aws-privilege-escalation/eventbridgescheduler-privesc.md
{{#endref}}

## Références

- [https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)

{{#include ../../../banners/hacktricks-training.md}}
