# AWS - EventBridge Scheduler Enum

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

## EventBridge Scheduler

**Amazon EventBridge Scheduler** è un scheduler completamente gestito e **serverless progettato per creare, eseguire e gestire attività** su larga scala. Ti consente di pianificare milioni di attività su oltre 270 servizi AWS e oltre 6.000 operazioni API, tutto da un servizio centrale. Con affidabilità integrata e senza infrastruttura da gestire, EventBridge Scheduler semplifica la pianificazione, riduce i costi di manutenzione e si scala automaticamente per soddisfare la domanda. Puoi configurare espressioni cron o di frequenza per pianificazioni ricorrenti, impostare invocazioni una tantum e definire finestre di consegna flessibili con opzioni di ripetizione, garantendo che le attività vengano consegnate in modo affidabile in base alla disponibilità degli obiettivi downstream.

C'è un limite iniziale di 1.000.000 pianificazioni per regione per account. Anche la pagina ufficiale delle quote suggerisce: "Si consiglia di eliminare le pianificazioni una tantum una volta completate."

### Tipi di Pianificazioni

Tipi di Pianificazioni in EventBridge Scheduler:

1. **Pianificazioni una tantum** – Esegui un'attività a un orario specifico, ad esempio, 21 dicembre alle 7 AM UTC.
2. **Pianificazioni basate su frequenza** – Imposta attività ricorrenti in base a una frequenza, ad esempio, ogni 2 ore.
3. **Pianificazioni basate su cron** – Imposta attività ricorrenti utilizzando un'espressione cron, ad esempio, ogni venerdì alle 4 PM.

Due meccanismi per gestire eventi non riusciti:

1. **Politica di Ripetizione** – Definisce il numero di tentativi di ripetizione per un evento non riuscito e per quanto tempo mantenerlo non elaborato prima di considerarlo un fallimento.
2. **Coda di Messaggi Non Elaborati (DLQ)** – Una coda standard Amazon SQS in cui gli eventi non riusciti vengono consegnati dopo che i tentativi sono esauriti. Le DLQ aiutano nella risoluzione dei problemi con la tua pianificazione o il suo obiettivo downstream.

### Obiettivi

Ci sono 2 tipi di obiettivi per uno scheduler [**templated (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-templated.html), che sono comunemente usati e AWS li ha resi più facili da configurare, e [**universal (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), che possono essere utilizzati per chiamare qualsiasi API AWS.

**Obiettivi templated** supportano i seguenti servizi:

- 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

### Enumerazione
```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

Nella pagina seguente, puoi controllare come **abusare dei permessi del programmatore di eventbridge per escalare i privilegi**:

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

## Riferimenti

- [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}}
