공격 모드 켜기

POST /v1/attack-protection/attack-mode:activate · 권한 attack-protection:write

bot_protection.mode와 credential_stuffing 값과 관계없이, 지금부터 duration_minutes(15~1,440분) 동안 환경을 공격 모드로 전환합니다. 이후 모든 비밀번호 및 일회용 코드 단계에서 더 강화된 봇 검증을 요구하며, 패스키와 소셜 로그인은 검증하지 않습니다. 자동 트리거보다 먼저 공격을 발견했을 때 사용하세요.

수동 기간이 이미 열려 있으면, 종료 시각이 지금 + duration_minutes보다 늦을 경우에만 그 시각으로 연장됩니다. 더 짧은 기간을 지정해도 기존 기간이 더 일찍 끝나지는 않습니다(끝내려면 deactivate를 사용하세요). 기간을 여는 경우 attack_mode_activated 이벤트와 관리 감사 기록(attack_mode.activated)이 기록되며, 연장하는 경우 attack_mode.extended 감사 기록이 남습니다. 행위자는 사용 중인 자격 증명입니다. 안전하게 재시도하려면 Idempotency-Key 헤더를 보내세요.

요청

{ "duration_minutes": 60 }
필드 타입 필수 설명
duration_minutes integer 예 15~1,440.

응답

200 OK와 현재 상태가 반환됩니다. 형식은 GET /v1/attack-protection/attack-mode와 같습니다.

오류

모든 오류는 안정적인 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 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하세요.

예제

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