본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

데이터 액세스 로그 (Data Access Logs)

원문 보기 위키 갱신

R2 데이터 액세스 로그는 버킷에서 일어나는 객체 작업에 대한 요청별 기록을 제공해요. 이 로그는 jurisdiction이 없는 R2 버킷에서 일반적으로 사용할 수 있어요.

데이터 액세스 로그는 버킷 구성 변경을 기록하는 감사 로그(Audit Logs)와는 달라요. 또 요청과 스토리지 데이터를 집계해 보여주는 R2 메트릭과도 달라요.

출처: 문서

본문

지원되는 인터페이스 (Supported interfaces)

데이터 액세스 로그는 다음 인터페이스에서 발생한 요청을 기록해요.

| 인터페이스 | 출처 | | S3 | S3 호환 API를 통한 요청. | | API | Cloudflare 대시보드 또는 API를 통한 객체 작업. | | Workers | R2 바인딩(Binding)을 통한 객체 작업. 이 이벤트에는 Worker 스크립트 이름이 포함돼요. | | Public | r2.dev 또는 커스텀 도메인을 통한 공개 버킷 요청. 이 요청은 인증되지 않아요. |

기록되는 작업 (Logged operations)

데이터 액세스 로그는 다음 작업을 기록해요.

| 카테고리 | 작업 | | 읽기 (Read) | GetObject, HeadObject | | 쓰기 및 복사 (Write and copy) | PutObject, CopyObject | | 목록 (List) | ListObjectsV1, ListObjectsV2 | | 멀티파트 업로드 (Multipart upload) | CreateMultipartUpload, UploadPart, UploadPartCopy, CompleteMultipartUpload, AbortMultipartUpload, ListMultipartUploads, ListParts | | 삭제 (Delete) | DeleteObject, DeleteObjects, DeleteObjectsByPrefix |

버킷 및 구성 작업은 포함되지 않아요. HTTP 상태 코드가 400 이상인 실패한 요청도 포함되지 않아요.

데이터 액세스 로그 켜기 (Turn on Data Access Logs)

데이터 액세스 로그를 켠 뒤 R2는 새로 발생하는 지원 작업을 기록해요. 이전 작업이 소급해서 추가되지는 않아요.

데이터 액세스 로그는 7일간 보관돼요. 2026년 12월 1일부터는 Cloudflare Observability 가격 체계가 적용돼요.

데이터 액세스 로그 보기 (View Data Access Logs)

버킷 설정의 데이터 액세스 로그(Data Access Logs) 섹션에서 Workers Observability에서 로그 보기(View logs in Workers Observability) 를 선택해요. 이벤트(Events) 뷰가 r2 데이터셋과 현재 선택된 버킷을 기준으로 지난 1시간 동안 열려요.

쿼리 빌더(Query Builder)를 사용해 시간 범위를 바꾸거나 필터를 추가하거나 이벤트를 집계할 수 있어요.

데이터 액세스 로그 끄기 (Turn off Data Access Logs)

로그 필드 (Log fields)

각 이벤트에는 다음 필드가 포함될 수 있어요.

| 필드 | 설명 | | $metadata.timestamp | Unix 밀리초 단위의 이벤트 타임스탬프. | | $metadata.service | 서비스 이름으로 사용되는 버킷 이름. | | $metadata.namespace | 이벤트 네임스페이스. 값은 r2. | | action | R2 작업 이름. | | actor.type | 액터 유형: user 또는 service. 공개 버킷 요청은 service를 사용해요. | | actor.id | 인증된 액터의 식별자. 공개 버킷 요청은 public을 사용해요. | | actor.email | 사용자 액터의 이메일 주소. | | actor.accessKeyId | AWS Signature Version 4로 인증된 요청의 액세스 키 ID. | | bucket | 대상 버킷 이름. | | interface | 요청 인터페이스: S3, API, Workers 또는 Public. | | request.bytes | 바이트 단위의 요청 Content-Length 값. | | response.bytes | 바이트 단위의 응답 Content-Length 값. | | response.errorCode | 응답 오류 코드. 304 응답에서는 NotModified, 2xx 응답에서는 null. | | response.errorMessage | 응답 오류 메시지. 304 응답을 설명하며 2xx 응답에서는 null. | | requestMetadata.colo | Cloudflare 데이터 센터 코드. 데이터 센터를 사용할 수 없을 때는 XXX. |

S3 호환 API, Cloudflare API, 공개 버킷 이벤트에는 다음 필드도 포함될 수 있어요.

| 필드 | 설명 | | request.method | HTTP 요청 메서드. | | request.uri | 요청 경로. | | response.status | HTTP 응답 상태 코드. | | requestMetadata.ip | 클라이언트 IP 주소. | | requestMetadata.userAgent | 클라이언트 사용자 에이전트. |

Workers 바인딩 이벤트에는 다음 추가 필드가 포함돼요.

| 필드 | 설명 | | scriptName | 작업을 트리거한 Worker 스크립트의 이름. |

Workers 바인딩 이벤트에는 HTTP 메서드, URI, 응답 상태, 클라이언트 IP 주소, 사용자 에이전트가 포함되지 않아요.

이벤트에는 다음 작업별 필드가 포함될 수 있어요.

| 필드 | 설명 | | resource.key | 객체 키(Object key). | | resource.type | 리소스 유형: object 또는 multipart_upload. | | resource.size | 가능한 경우의 객체 크기(바이트). | | resource.uploadId | 멀티파트 업로드의 업로드 ID. | | sourceResource | 복사 작업을 위한 소스 버킷, 키, 리소스 유형. | | prefix | 목록 또는 접두사 삭제 작업에서 사용된 접두사. | | delimiter | 목록 작업에서 사용된 구분자. | | maxKeys | 객체 목록 작업에서 요청된 최대 키 수. | | maxUploads | 멀티파트 업로드 목록 작업에서 요청된 최대 업로드 수. | | objects | 일괄 삭제 작업에 포함된 객체 키. |

request.bytes와 response.bytes 필드는 실제 전송된 바이트 측정값이 아니라 Content-Length 값을 반영해요. 0인 바이트 수 또는 리소스 크기는 0바이트이거나, R2가 이벤트를 생성할 때 값을 알 수 없었음을 의미할 수 있어요.

더 알아보기 (Learn more)