S3 Metadata 저널 테이블 스키마 - Amazon Simple Storage Service

S3 Metadata 저널 테이블 스키마

저널 테이블은 거의 실시간으로 데이터에 대한 변경 사항을 기록하므로 버킷에 업로드된 새 데이터를 식별하고, 최근에 삭제된 객체를 추적하고, 수명 주기 전환을 모니터링하는 등의 작업을 수행할 수 있습니다. 저널 테이블은 새 객체를 기록하고 객체 및 해당 메타데이터를 업데이트합니다(PUT 또는 DELETE 작업이 필요한 업데이트). 이 테이블은 쿼리가 가능하므로 간단한 SQL 쿼리를 통해 버킷의 변경 사항을 감사할 수 있습니다.

저널 테이블을 보안, 감사 및 규정 준수 사용 사례에 사용하여 버킷에서 업로드, 삭제 및 변경된 객체를 추적할 수 있습니다. 예를 들어 저널 테이블을 쿼리하여 다음과 같은 질문에 답할 수 있습니다.

  • 지난 24시간 동안 S3 수명 주기에 의해 삭제된 객체는 무엇인가?

  • 가장 최근 PUT 요청은 어떤 IP 주소에서 제출되었는가?

  • 지난 7일 동안 PUT 요청에 사용된 AWS Key Management Service(AWS KMS) 키는 무엇인가?

  • 지난 5일 동안 Amazon Bedrock에 의해 만들어진 버킷의 객체는 무엇인가?

Amazon S3 Metadata 저널 테이블에는 행과 열이 포함됩니다. 각 행은 범용 버킷에서 객체를 생성, 업데이트 또는 삭제한 변형 이벤트를 나타냅니다. 이러한 이벤트의 대부분은 사용자 작업의 결과이지만, 이러한 이벤트 중 일부는 Amazon S3 수명 주기 만료 또는 스토리지 클래스 전환과 같이 Amazon S3가 사용자를 대신하여 수행한 작업의 결과입니다.

S3 Metadata 저널 테이블은 범용 버킷에서 발생한 변경 사항과 최종적으로 일치합니다. 경우에 따라 객체가 만들어지거나 업데이트되었다는 알림이 S3 Metadata에 수신될 때쯤에는 해당 객체가 버킷에서 이미 덮어쓰였거나 삭제되었을 수 있습니다. 이러한 경우 객체를 더 이상 검색할 수 없으며, 일부 열에는 누락된 메타데이터 스키마를 나타내는 Null 값이 표시될 수 있습니다.

다음은 amzn-s3-demo-bucket:이라는 범용 버킷에 대한 저널 테이블의 예입니다.

bucket key sequence_number record_type record_timestamp version_id is_delete_marker size last_modified_date e_tag storage_class is_multipart encryption_status is_bucket_key_enabled kms_key_arn checksum_algorithm object_tags user_metadata requester source_ip_address request_id amzn-s3-demo-bucket Finance/statement1.pdf 80e737d8b4d82f776affffffffffffffff006737d8b4d82f776a00000000000000000000000000000000000000000000000072 CREATE 2024-11-15 23:26:44.899 FALSE 6223 11/15/2024 23:26 e131b86632dda753aac4018f72192b83 STANDARD FALSE SSE-KMS FALSE arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890df SSECRC32 {} {count -> Asia, customs -> false, family -> true, location -> Mary, name -> football, user -> United States} 111122223333 192.0.2.1 CVK8FWYRW0M9JW65 amzn-s3-demo-bucket s3-dg.pdf 80e737d8b4e39f1dbdffffffffffffffff006737d8b4e39f1dbd00000000000000000000000000000000000000000000000072 CREATE 2024-11-15 23:26:44.942 FALSE 3554 11/15/2024 23:26 9bb49efc2d92c05558ddffbbde8636d5 STANDARD FALSE DSSE-KMS FALSE arn:aws:kms:us-east-1:936810216292:key/0dcebce6-49fd-4cae-b2e2-5512ad281afd SSESHA1 {} {} 111122223333 192.0.2.1 CVKAQDRAZEG7KXAY amzn-s3-demo-bucket Development/Projects.xls 80e737d8b4ed9ac5c6ffffffffffffffff006737d8b4ed9ac5c600000000000000000000000000000000000000000000000072 CREATE 2024-11-15 23:26:44.966 FALSE 7746 11/15/2024 23:26 729a6863e47fb9955b31bfabce984908 STANDARD FALSE SSE-S3 FALSE NULL SSECRC32 {} {count -> Asia, customs -> Canada, family -> Billiards, filter -> true, location -> Europe, name -> Asia, user -> United States} 111122223333 192.0.2.1 CVK7Z6XQTQ90BSRV

저널 테이블에는 다음과 같은 스키마가 있습니다.

열 이름 필수? 데이터 유형

bucket

String 범용 버킷 이름입니다. 자세한 내용은 범용 버킷 이름 지정 규칙 섹션을 참조하세요.

key

String 버킷에 있는 객체를 고유하게 식별하는 객체 키 이름(또는 키)입니다. 자세한 내용은 Amazon S3 객체 이름 지정 섹션을 참조하세요.

sequence_number

String

주어진 객체의 레코드에 포함된 서수인 시퀀스 번호입니다. 동일한 버킷 및 키의 레코드를 정렬하려면 sequence_number를 기준으로 정렬할 수 있습니다. 주어진 버킷과 키에서 사전을 기준으로 sequence_number 값이 크면 레코드가 더 최근에 버킷에 기록되었음을 의미합니다.

record_type

String

이 레코드의 유형으로, CREATE, UPDATE_METADATA 또는 DELETE 중 하나입니다.

CREATE 레코드는 새 객체(또는 객체의 새 버전)가 버킷에 기록되었음을 나타냅니다.

UPDATE_METADATA는 스토리지 클래스 또는 태그와 같은 기존 객체의 변경 가능한 메타데이터에 대한 변경 사항을 캡처합니다.

DELETE는 이 객체(또는 객체의 이 버전)가 삭제되었음을 나타냅니다. 버전 관리가 활성화된 경우 DELETE는 삭제 마커 또는 영구 삭제를 나타냅니다. 선택 사항인 is_delete_marker 열을 참조하여 더 명확하게 구분할 수 있습니다.

자세한 내용은 버전 관리가 사용 설정된 버킷에서 객체 버전 삭제 섹션을 참조하세요.

참고

영구 삭제는 bucket, key, sequence_number, record_type, record_timestampversion_id(즉, 필수로 표시된 열)를 제외한 모든 열에서 NULL을 포함합니다.

record_timestamp

타임스탬프 NTZ(표준 시간대 없음)

이 레코드와 연결된 타임스탬프입니다.

version_id

아니요 String

객체의 버전 ID입니다. 버전 관리를 사용하는 버킷의 경우 Amazon S3는 버킷에 추가된 객체에 버전 번호를 지정합니다. 자세한 내용은 S3 버전 관리로 여러 버전의 객체 유지 섹션을 참조하세요.

버전 관리 상태를 설정하기 전에 버킷에 저장된 객체의 버전 ID는 Null입니다.

is_delete_marker

아니요

객체의 삭제 마커 상태입니다. 삭제 마커인 DELETE 레코드의 경우 이 값은 TRUE입니다. 영구 삭제의 경우 이 값은 생략됩니다(NULL). 다른 레코드 유형(CREATE 및 UPDATE_METADATA)의 값은 FALSE입니다. 자세한 내용은 삭제 마커를 통한 작업 섹션을 참조하세요.

참고

삭제 마커에 추가된 행의 record_type 값은 UPDATE_METADATA가 아니라 DELETE입니다. S3 수명 주기 만료의 결과로 삭제 마커가 생성된 경우 requester 값은 s3.amazonaws.com입니다.

size

아니요 Long

객체 크기(바이트)를 나타내며, 불완전한 멀티파트 업로드 또는 객체 메타데이터의 크기는 포함되지 않습니다. is_delete_markerTRUE인 경우 크기는 0입니다. 자세한 내용은 시스템 정의 객체 메타데이터 섹션을 참조하세요.

last_modified_date

아니요 타임스탬프 NTZ(표준 시간대 없음)

객체 생성일 또는 최종 수정일 중 최근 날짜. 멀티파트 업로드의 경우 객체 생성 날짜는 멀티파트 업로드 시작 날짜입니다. 자세한 내용은 시스템 정의 객체 메타데이터 섹션을 참조하세요.

e_tag

아니요 String

엔터티 태그(ETag)로, 객체의 해시입니다. ETag는 객체의 콘텐츠에 대한 변경 사항만 반영하고 메타데이터에 대한 변경을 반영하지 않습니다. ETag는 객체 데이터의 MD5 다이제스트일 수 있습니다. ETag가 MD5 다이제스트인지는 객체 생성 방식 및 암호화 방식에 달려 있습니다. 자세한 내용은 Amazon S3 API 참조의 Object 섹션을 참조하세요.

storage_class

아니요 String

객체 저장에 사용된 스토리지 클래스입니다. STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE 또는 GLACIER_IR 중 하나입니다. 자세한 내용은 Amazon S3 스토리지 클래스 이해 및 관리 섹션을 참조하세요.

is_multipart

아니요

객체의 업로드 유형입니다. 객체가 멀티파트 업로드로 업로드된 경우 이 값은 TRUE입니다. 그렇지 않은 경우 FALSE입니다. 자세한 내용은 Amazon S3에서 멀티파트 업로드를 사용한 객체 업로드 및 복사 섹션을 참조하세요.

encryption_status

아니요 String

Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3), AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS), AWS KMS keys KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS), 고객 제공 키를 사용한 서버 측 암호화(SSE-C) 등 사용되는 암호화 키의 종류에 따른 객체의 서버 측 암호화 상태입니다. 객체가 암호화되지 않은 경우 이 값은 Null입니다. 가능한 값은 SSE-S3, SSE-KMS, DSSE-KMS, SSE-C 또는 Null입니다. 자세한 내용은 암호화로 데이터 보호 섹션을 참조하세요.

is_bucket_key_enabled

아니요

객체의 S3 버킷 키 활성화 상태입니다. 객체가 SSE-KMS에 S3 버킷 키를 사용하는 경우 이 값은 TRUE입니다. 그렇지 않은 경우 FALSE입니다. 자세한 내용은 객체 수준에서 S3 버킷 키 구성 섹션을 참조하세요.

kms_key_arn

아니요 String

객체 암호화에 사용된 KMS 키의 Amazon 리소스 이름(ARN)으로, encryption_statusSSE-KMS 또는 DSSE-KMS인 행의 경우에 해당합니다. 객체가 SSE-KMS 또는 DSSE-KMS로 암호화되지 않은 경우 값은 Null입니다. 자세한 내용은 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 사용(을)를 참조하세요.

참고

행이 삭제 또는 덮어쓰기 이벤트가 처리된 시점에 더 이상 존재하지 않았던 객체 버전을 나타내는 경우 encryption_status 열 값이 SSE-KMS 또는 DSSE-KMS인 경우에도 kms_key_arn에는 Null 값이 포함됩니다.

checksum_algorithm

아니요 String

객체에 대한 체크섬을 생성하는 데 사용되는 알고리즘으로, CRC64NVME, CRC32, CRC32C, SHA1 또는 SHA256 중 하나입니다. 체크섬이 없는 경우 이 값은 Null입니다. 자세한 내용은 지원되는 체크섬 알고리즘 사용 섹션을 참조하세요.

object_tags

아니요 Map <String, String>

객체와 연결된 객체 태그입니다. 객체 태그는 키-값 페어의 맵으로 저장됩니다. 객체에 객체 태그가 없는 경우 빈 맵({})이 저장됩니다. 자세한 내용은 태그를 사용하여 객체 분류 섹션을 참조하세요.

참고

record_type 값이 DELETE이면 object_tags 열에 Null 값이 포함됩니다. record_type 값이 CREATE 또는 UPDATE_METADATA인 경우 삭제 또는 덮어쓰기 이벤트가 처리된 시점에 더 이상 존재하지 않았던 객체 버전을 나타내는 행에는 object_tags 열에 Null 값이 포함됩니다.

user_metadata

아니요 Map <String, String>

객체와 연결된 사용자 메타데이터입니다. 사용자 메타데이터는 키-값 페어의 맵으로 저장됩니다. 객체에 사용자 메타데이터가 없는 경우 빈 맵({})이 저장됩니다. 자세한 내용은 사용자 정의 객체 메타데이터 섹션을 참조하세요.

참고

record_type 값이 DELETE이면 user_metadata 열에 Null 값이 포함됩니다. record_type 값이 CREATE 또는 UPDATE_METADATA인 경우 삭제 또는 덮어쓰기 이벤트가 처리된 시점에 더 이상 존재하지 않았던 객체 버전을 나타내는 행에는 user_metadata 열에 Null 값이 포함됩니다.

requester

아니요 String

요청을 수행한 요청자 또는 AWS 서비스 위탁자의 AWS 계정 ID입니다. 예를 들어, 요청자가 S3 수명 주기인 경우 이 값은 s3.amazonaws.com입니다.

source_ip_address

아니요 String

요청의 소스 IP 주소입니다. 사용자 요청에 의해 생성된 레코드의 경우 이 열에는 요청의 소스 IP 주소가 포함됩니다. 사용자를 대신해 Amazon S3 또는 다른 AWS 서비스가 수행한 작업의 경우 이 열에는 Null 값이 포함됩니다.

request_id

아니요 String

요청과 연결된 요청 ID입니다.