감사 내보내기 생성

POST /v1/audit-exports · 권한 audit-exports:write

일치하는 감사 레코드를 서명된 패키지에 기록하는 작업을 큐에 넣습니다. 이 패키지는 KeenAuth를 신뢰하지 않고도 검증할 수 있습니다. 작업은 202 Accepted와 함께 반환됩니다. 감사 내보내기 조회로 작업을 확인하고 감사 내보내기 다운로드로 파일을 가져오십시오.

API 키(비밀 키 또는 제한된 키)만 내보내기를 생성할 수 있습니다. 작업에는 키가 requested_by로 기록됩니다. 환경은 키에서 결정됩니다.

요청

Idempotency-Key는 필수입니다(16~64자, A-Z a-z 0-9 _ -). 같은 키와 같은 본문으로 요청하면 Idempotent-Replayed: true와 함께 첫 번째 작업이 반환됩니다. 같은 키에 다른 본문을 보내면 422 idempotency_key_reuse로 실패합니다. SDK와 CLI가 이 헤더를 자동으로 설정합니다.

필터는 감사 이벤트 목록과 같습니다. 생략한 필드는 필터링에 사용되지 않습니다. 차이점은 다음과 같습니다:

필드 유형 설명
stream string admin(기본값) 또는 application.
from RFC 3339 하한(포함). 기본값은 보존 기간의 시작입니다. 92일 제한은 없으며, 패키지에는 최대 5천만 줄(자리 표시자 포함)이 들어갑니다.
to RFC 3339 상한(제외). 기본값은 현재 시각이며, 미래 시각일 수 없습니다.
action, category, actor_type, actor_id, target_type, target_id, org_id, outcome, request_id, correlation_id, agent_only 목록 필터와 같습니다. 목록의 client 필터는 여기서 사용할 수 없으며, client 필드를 보내면 400 unknown_field로 실패합니다.
include_ip boolean 생성 후 13개월 이내의 레코드에 전체 IP 주소와 사용자 에이전트를 추가합니다. audit-events:read_ip 권한도 필요합니다. 기본값은 false입니다.
{
  "stream": "admin",
  "from": "2026-07-01T00:00:00Z",
  "to": "2026-10-01T00:00:00Z",
  "action": "user."
}

환경별로 동시에 실행되는 작업은 최대 3개입니다(개발 및 스테이징 환경에서는 1개).

응답

202 Accepted와 status가 queued인 작업이 반환됩니다. filter에는 from과 to의 기본값이 채워진 적용 필터가 표시됩니다. recorded_before는 스냅숏 상한으로, 이 시각 이전에 저장된 레코드만 패키지에 포함됩니다.

{
  "id": "aex_01j9xk3m7q8r2s4t6v8w0y2z4e",
  "status": "queued",
  "filter": {
    "stream": "admin",
    "from": "2026-07-01T00:00:00Z",
    "to": "2026-10-01T00:00:00Z",
    "action": "user.",
    "category": null,
    "actor_type": null,
    "actor_id": null,
    "target_type": null,
    "target_id": null,
    "org_id": null,
    "outcome": null,
    "request_id": null,
    "correlation_id": null,
    "agent_only": false
  },
  "include_ip": false,
  "record_count": null,
  "file": null,
  "manifest_sha256": null,
  "failure_reason": null,
  "created_at": "2026-10-19T09:00:00Z",
  "started_at": null,
  "completed_at": null,
  "expires_at": null,
  "recorded_before": "2026-10-19T09:00:00Z",
  "requested_by": {"type": "api_key", "id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d"}
}

오류

모든 오류는 안정적인 code가 포함된 application/problem+json 본문으로 반환됩니다.

HTTP code 발생 조건
400 malformed_request Idempotency-Key가 없거나 형식이 잘못되었거나, 본문이 올바른 JSON이 아닙니다.
400 unknown_field 본문에 위에 나열되지 않은 필드가 있습니다.
400 invalid_filter 감사 서비스가 필터를 거부했습니다(예: 미래 시각의 to).
400 range_outside_retention from 또는 to가 요금제의 감사 보존 기간 밖에 있습니다.
422 validation_failed 필드가 유효하지 않습니다(잘못된 유형, 잘못된 타임스탬프, from보다 이전인 to, 알 수 없는 열거형 값, 형식이 잘못된 ID, 빈 문자열).
422 idempotency_key_reuse 다른 본문과 함께 Idempotency-Key를 재사용했습니다.
401 unauthenticated API 키가 없거나 유효하지 않거나 폐기되었습니다.
403 insufficient_permissions 키에 audit-exports:write 권한이 없거나, audit-events:read_ip 없이 include_ip를 사용했거나(required_permissions에 두 권한이 모두 표시됩니다), 호출자가 API 키가 아닙니다.
429 rate_limited 이 환경에서 실행 중인 작업이 너무 많거나 요청 한도를 초과했습니다. Retry-After를 준수하십시오.
503 service_unavailable 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오.

예시

curl https://api.eu.keenauth.com/v1/audit-exports \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"from": "2026-07-01T00:00:00Z", "to": "2026-10-01T00:00:00Z", "action": "user."}'
keenauth audit-exports create --from 2026-07-01T00:00:00Z --to 2026-10-01T00:00:00Z --action user.

개인정보

이 엔드포인트는 개인정보인 감사 이벤트를 다룹니다. KeenAuth API의 개인정보에서 저장되는 항목, 보관 기간 및 삭제 방법을 확인하십시오. 어떤 필드에도 특수 범주의 개인정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.