
# Attivare la modalità attacco

`POST /v1/attack-protection/attack-mode:activate` · autorizzazione `attack-protection:write`

Porta l'ambiente in modalità attacco per `duration_minutes` (da 15 a 1.440) a partire da adesso, indipendentemente da `bot_protection.mode` e `credential_stuffing`. Ogni passaggio con password o codice monouso richiede quindi una verifica bot più severa; passkey e accesso social non vengono sottoposti a verifica. Usatelo quando individuate un attacco prima che lo faccia il trigger automatico.

Se il vostro periodo manuale è già aperto, la sua fine viene spostata a adesso più `duration_minutes`, se questo è più tardi. Una durata più breve non lo chiude prima (per questo usate [`deactivate`](deactivate-attack-mode.md)). L'apertura di un periodo scrive l'evento `attack_mode_activated` e un record di audit di gestione (`attack_mode.activated`); un'estensione scrive il record di audit `attack_mode.extended`. L'attore è la vostra credenziale. Inviate un'intestazione `Idempotency-Key` per ritentare in sicurezza.

## Richiesta

```json
{ "duration_minutes": 60 }
```

| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `duration_minutes` | integer | sì | Da 15 a 1.440. |

## Risposta

`200 OK` con lo stato corrente, così come lo restituisce [`GET /v1/attack-protection/attack-mode`](get-attack-mode.md).

## Errori

Ogni errore è un corpo `application/problem+json` con un `code` stabile.

| HTTP | `code` | Quando |
|---|---|---|
| 400 | `malformed_request` | Il corpo non è un oggetto JSON. |
| 400 | `unknown_field` | Il corpo contiene un campo diverso da `duration_minutes`. |
| 422 | `validation_failed` | `duration_minutes` manca, non è un intero o è fuori da 15 a 1.440 (`errors[].pointer` vale `/duration_minutes`). |
| 401 | `unauthenticated` | La chiave API è mancante, non valida o revocata. |
| 403 | `insufficient_permissions` | La chiave non ha l'autorizzazione `attack-protection:write`. |
| 429 | `rate_limited` | È stato superato il limite di frequenza; rispettate `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza è temporaneamente non disponibile; riprovate più tardi. |

## Esempio

```bash
curl -X POST https://api.eu.keenauth.com/v1/attack-protection/attack-mode:activate \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7b2f0c1e-attack-mode-1" \
  -d '{"duration_minutes": 60}'
```

CLI: `keenauth attack-protection attack-mode activate --duration-minutes 60`
