
# 攻撃モードを有効にする

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

`bot_protection.mode` と `credential_stuffing` の設定に関係なく、今から `duration_minutes`（15〜1,440 分）の間、環境を攻撃モードにします。その後、パスワードとワンタイムコードのすべての手順で、より厳しいボットチャレンジが求められます。パスキーとソーシャルサインインはチャレンジの対象外です。自動トリガーより先に攻撃に気づいたときに使用してください。

手動の期間がすでに開いている場合、終了時刻は「今 + `duration_minutes`」が現在の終了時刻より後のときにのみ、その時刻まで延長されます。短い時間を指定しても、期間が早く終わることはありません（終了するには [`deactivate`](deactivate-attack-mode.md) を使用してください）。期間を開くと `attack_mode_activated` イベントと管理監査レコード（`attack_mode.activated`）が書き込まれ、延長すると監査レコード `attack_mode.extended` が書き込まれます。操作主体はお客様の認証情報です。安全に再試行できるよう、`Idempotency-Key` ヘッダーを送信してください。

## リクエスト

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

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `duration_minutes` | integer | はい | 15〜1,440。 |

## レスポンス

`200 OK` と現在の状態が返ります。形式は [`GET /v1/attack-protection/attack-mode`](get-attack-mode.md) と同じです。

## エラー

すべてのエラーは、安定した `code` を含む `application/problem+json` 本文です。

| HTTP | `code` | 発生条件 |
|---|---|---|
| 400 | `malformed_request` | 本文が JSON オブジェクトではない場合です。 |
| 400 | `unknown_field` | 本文に `duration_minutes` 以外のフィールドがある場合です。 |
| 422 | `validation_failed` | `duration_minutes` がない、整数ではない、または 15〜1,440 の範囲外の場合です（`errors[].pointer` は `/duration_minutes`）。 |
| 401 | `unauthenticated` | API キーがない、無効、または失効している場合です。 |
| 403 | `insufficient_permissions` | キーに `attack-protection:write` 権限がない場合です。 |
| 429 | `rate_limited` | レート制限を超えた場合です。`Retry-After` に従ってください。 |
| 503 | `service_unavailable` | 依存サービスが一時的に利用できない場合です。後で再試行してください。 |

## 例

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