
# 감사 이벤트 조회

`GET /v1/audit-events/{event_id}` · 권한 `audit-events:read`

두 스트림(`admin` 또는 `application`) 중 하나에서 감사 레코드 하나를 반환합니다.

## 요청

| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
| `event_id` | path | 예 | `evt_` 접두사가 붙은 감사 레코드 ID입니다. |

## 응답

`200 OK`와 함께 레코드를 반환합니다. 형식은 [감사 이벤트 목록 조회](list.md)의 항목과 같습니다. 비어 있는 필드는 `null`입니다.

`ip`와 `user_agent`는 키에 `audit-events:read_ip` 권한이 있는 경우에만 포함되며, 13개월 이내의 레코드에만 값이 채워집니다. 권한이 없으면 해당 필드는 전체가 생략됩니다.

```json
{
  "id": "evt_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "stream": "admin",
  "seq": 4182,
  "schema_version": 1,
  "action": "user.blocked",
  "category": "administration",
  "outcome": "success",
  "reason_code": null,
  "occurred_at": "2026-10-01T08:15:42.120Z",
  "received_at": "2026-10-01T08:15:42.131Z",
  "recorded_at": "2026-10-01T08:15:42.140Z",
  "clock_anomaly": false,
  "actor_type": "api_key",
  "actor_id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d",
  "act_chain": null,
  "session_id": null,
  "auth_context": null,
  "elevation_ref": null,
  "org_id": null,
  "targets": [
    {"type": "user", "id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p", "org_id": null, "name": null}
  ],
  "application_id": null,
  "ip": "203.0.113.7",
  "ip_prefix": "203.0.113.0/24",
  "ip_country": "DE",
  "ip_asn": 64500,
  "user_agent": "keenauth-go/1.4.0 (go/1.25.3)",
  "user_agent_family": "keenauth-go",
  "request_id": "0192a6c1-7d3e-7a10-9b2c-3d4e5f607182",
  "correlation_id": null,
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "producer_service": "directory",
  "policy_ref": "perm:users:write",
  "changes": {"status": {"old": "active", "new": "blocked"}},
  "metadata": null,
  "prev_hash": "n4bQgYhMfWWaL-qgxVrQFaO_TxsrC4Is0V1sFbDwCgg",
  "org_prev_hash": null,
  "record_hash": "LCa0a2j_xo_5m0U8HTBBNBNCLXBkg7-g-YpeiGJm564"
}
```

## 오류

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

| HTTP | `code` | 발생 조건 |
|---|---|---|
| 401 | `unauthenticated` | API 키가 없거나, 잘못되었거나, 폐기되었습니다. |
| 403 | `insufficient_permissions` | 키에 `audit-events:read` 권한이 없습니다. |
| 404 | `not_found` | 레코드가 존재하지 않거나, 다른 환경에 속하거나, 보존 기간 밖에 있거나, ID 형식이 잘못되었습니다. |
| 429 | `rate_limited` | 요청 한도를 초과했습니다. `Retry-After` 헤더를 존중하십시오. |
| 503 | `service_unavailable` | 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |

## 예시

```bash
curl https://api.eu.keenauth.com/v1/audit-events/evt_01j9xk3m7q8r2s4t6v8w0y2z4a \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth audit-events get evt_01j9xk3m7q8r2s4t6v8w0y2z4a
```

## 개인정보

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