

# S3 Metadata 저널 테이블 스키마
<a name="metadata-tables-schema"></a>

저널 테이블은 거의 실시간으로 데이터에 대한 변경 사항을 기록하므로 버킷에 업로드된 새 데이터를 식별하고, 최근에 삭제된 객체를 추적하고, 수명 주기 전환을 모니터링하는 등의 작업을 수행할 수 있습니다. 저널 테이블은 새 객체를 기록하고 객체 및 해당 메타데이터를 업데이트합니다(`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` | 예 | 문자열 | 범용 버킷 이름입니다. 자세한 내용은 [범용 버킷 이름 지정 규칙](bucketnamingrules.md) 섹션을 참조하세요. | 
| `key` | 예 | 문자열 | 버킷에 있는 객체를 고유하게 식별하는 객체 키 이름(또는 키)입니다. 자세한 내용은 [Amazon S3 객체 이름 지정](object-keys.md) 섹션을 참조하세요. | 
| `sequence_number` | 예 | 문자열 | 주어진 객체의 레코드에 포함된 서수인 시퀀스 번호입니다. 동일한 버킷 및 키의 레코드를 정렬하려면 `sequence_number`를 기준으로 정렬할 수 있습니다. 주어진 버킷과 키에서 사전을 기준으로 `sequence_number` 값이 크면 레코드가 더 최근에 버킷에 기록되었음을 의미합니다. | 
| `record_type` | 예 | 문자열 | 이 레코드의 유형으로, `CREATE`, `UPDATE_METADATA` 또는 `DELETE` 중 하나입니다. `CREATE` 레코드는 새 객체(또는 객체의 새 버전)가 버킷에 기록되었음을 나타냅니다. `UPDATE_METADATA`는 스토리지 클래스 또는 태그와 같은 기존 객체의 변경 가능한 메타데이터에 대한 변경 사항을 캡처합니다. `DELETE`는 이 객체(또는 객체의 이 버전)가 삭제되었음을 나타냅니다. 버전 관리가 활성화된 경우 `DELETE`는 삭제 마커 또는 영구 삭제를 나타냅니다. 선택 사항인 `is_delete_marker` 열을 참조하여 더 명확하게 구분할 수 있습니다. 자세한 내용은 [버전 관리가 사용 설정된 버킷에서 객체 버전 삭제](DeletingObjectVersions.md) 섹션을 참조하세요.  영구 삭제는 `bucket`, `key`, `sequence_number`, `record_type`, `record_timestamp` 및 `version_id`(즉, 필수로 표시된 열)를 *제외한* 모든 열에서 `NULL`을 포함합니다.  | 
| `record_timestamp` | 예 | 타임스탬프 NTZ(표준 시간대 없음) | 이 레코드와 연결된 타임스탬프입니다. | 
| `version_id` | 아니요 | 문자열 |  객체의 버전 ID입니다. 버전 관리를 사용하는 버킷의 경우 Amazon S3는 버킷에 추가된 객체에 버전 번호를 지정합니다. 자세한 내용은 [S3 버전 관리로 여러 버전의 객체 유지](Versioning.md) 섹션을 참조하세요. 버전 관리 상태를 설정하기 전에 버킷에 저장된 객체의 버전 ID는 Null입니다.  | 
| `is_delete_marker` | 아니요 | 부울 |  객체의 삭제 마커 상태입니다. 삭제 마커인 DELETE 레코드의 경우 이 값은 `TRUE`입니다. 영구 삭제의 경우 이 값은 생략됩니다(`NULL`). 다른 레코드 유형(CREATE 및 UPDATE\$1METADATA)의 값은 `FALSE`입니다. 자세한 내용은 [삭제 마커를 통한 작업](DeleteMarker.md) 섹션을 참조하세요.  삭제 마커에 추가된 행의 `record_type` 값은 `UPDATE_METADATA`가 아니라 `DELETE`입니다. S3 수명 주기 만료의 결과로 삭제 마커가 생성된 경우 `requester` 값은 `s3.amazonaws.com`입니다.   | 
| `size` | 아니요 | Long | 객체 크기(바이트)를 나타내며, 불완전한 멀티파트 업로드 또는 객체 메타데이터의 크기는 포함되지 않습니다. `is_delete_marker`가 `TRUE`인 경우 크기는 `0`입니다. 자세한 내용은 [시스템 정의 객체 메타데이터](UsingMetadata.md#SysMetadata) 섹션을 참조하세요. | 
| `last_modified_date` | 아니요 | 타임스탬프 NTZ(표준 시간대 없음) | 객체 생성일 또는 최종 수정일 중 최근 날짜. 멀티파트 업로드의 경우 객체 생성 날짜는 멀티파트 업로드 시작 날짜입니다. 자세한 내용은 [시스템 정의 객체 메타데이터](UsingMetadata.md#SysMetadata) 섹션을 참조하세요. | 
| `e_tag` | 아니요 | 문자열 | 엔터티 태그(ETag)로, 객체의 해시입니다. ETag는 객체의 콘텐츠에 대한 변경 사항만 반영하고 메타데이터에 대한 변경을 반영하지 않습니다. ETag는 객체 데이터의 MD5 다이제스트일 수 있습니다. ETag가 MD5 다이제스트인지는 객체 생성 방식 및 암호화 방식에 달려 있습니다. 자세한 내용은 **Amazon S3 API 참조의 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html) 섹션을 참조하세요. | 
| `storage_class` | 아니요 | 문자열 | 객체 저장에 사용된 스토리지 클래스입니다. `STANDARD`, `REDUCED_REDUNDANCY`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `GLACIER`, `DEEP_ARCHIVE` 또는 `GLACIER_IR` 중 하나입니다. 자세한 내용은 [Amazon S3 스토리지 클래스 이해 및 관리](storage-class-intro.md) 섹션을 참조하세요. | 
| `is_multipart` | 아니요 | 부울 | 객체의 업로드 유형입니다. 객체가 멀티파트 업로드로 업로드된 경우 이 값은 `TRUE`입니다. 그렇지 않은 경우 `FALSE`입니다. 자세한 내용은 [Amazon S3에서 멀티파트 업로드를 사용한 객체 업로드 및 복사](mpuoverview.md) 섹션을 참조하세요. | 
| `encryption_status` | 아니요 | 문자열 | 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입니다. 자세한 내용은 [암호화로 데이터 보호](UsingEncryption.md) 섹션을 참조하세요. | 
| `is_bucket_key_enabled` | 아니요 | 부울 | 객체의 S3 버킷 키 활성화 상태입니다. 객체가 SSE-KMS에 S3 버킷 키를 사용하는 경우 이 값은 `TRUE`입니다. 그렇지 않은 경우 `FALSE`입니다. 자세한 내용은 [객체 수준에서 S3 버킷 키 구성](configuring-bucket-key-object.md) 섹션을 참조하세요. | 
| `kms_key_arn` | 아니요 | 문자열 |  객체 암호화에 사용된 KMS 키의 Amazon 리소스 이름(ARN)으로, `encryption_status`가 `SSE-KMS` 또는 `DSSE-KMS`인 행의 경우에 해당합니다. 객체가 SSE-KMS 또는 DSSE-KMS로 암호화되지 않은 경우 값은 Null입니다. 자세한 내용은 [AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용](UsingKMSEncryption.md) 및 [AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 사용](UsingDSSEncryption.md)(을)를 참조하세요.  행이 삭제 또는 덮어쓰기 이벤트가 처리된 시점에 더 이상 존재하지 않았던 객체 버전을 나타내는 경우 `encryption_status` 열 값이 `SSE-KMS` 또는 `DSSE-KMS`인 경우에도 `kms_key_arn`에는 Null 값이 포함됩니다.   | 
| `checksum_algorithm` | 아니요 | 문자열 | 객체에 대한 체크섬을 생성하는 데 사용되는 알고리즘으로, `CRC64NVME`, `CRC32`, `CRC32C`, `SHA1` 또는 `SHA256` 중 하나입니다. 체크섬이 없는 경우 이 값은 Null입니다. 자세한 내용은 [지원되는 체크섬 알고리즘 사용](checking-object-integrity-upload.md#using-additional-checksums) 섹션을 참조하세요. | 
| `object_tags` | 아니요 | Map <String, String> |  객체와 연결된 객체 태그입니다. 객체 태그는 키-값 페어의 맵으로 저장됩니다. 객체에 객체 태그가 없는 경우 빈 맵(`{}`)이 저장됩니다. 자세한 내용은 [태그를 사용하여 객체 분류](object-tagging.md) 섹션을 참조하세요.  `record_type` 값이 `DELETE`이면 `object_tags` 열에 Null 값이 포함됩니다. `record_type` 값이 `CREATE` 또는 `UPDATE_METADATA`인 경우 삭제 또는 덮어쓰기 이벤트가 처리된 시점에 더 이상 존재하지 않았던 객체 버전을 나타내는 행에는 `object_tags` 열에 Null 값이 포함됩니다.   | 
| `user_metadata` | 아니요 | Map <String, String> |  객체와 연결된 사용자 메타데이터입니다. 사용자 메타데이터는 키-값 페어의 맵으로 저장됩니다. 객체에 사용자 메타데이터가 없는 경우 빈 맵(`{}`)이 저장됩니다. 자세한 내용은 [사용자 정의 객체 메타데이터](UsingMetadata.md#UserMetadata) 섹션을 참조하세요.  `record_type` 값이 `DELETE`이면 `user_metadata` 열에 Null 값이 포함됩니다. `record_type` 값이 `CREATE` 또는 `UPDATE_METADATA`인 경우 삭제 또는 덮어쓰기 이벤트가 처리된 시점에 더 이상 존재하지 않았던 객체 버전을 나타내는 행에는 `user_metadata` 열에 Null 값이 포함됩니다.   | 
| `requester` | 아니요 | 문자열 | 요청을 수행한 요청자 또는 AWS 서비스 위탁자의 AWS 계정 ID입니다. 예를 들어, 요청자가 S3 수명 주기인 경우 이 값은 `s3.amazonaws.com`입니다. | 
| `source_ip_address` | 아니요 | 문자열 | 요청의 소스 IP 주소입니다. 사용자 요청에 의해 생성된 레코드의 경우 이 열에는 요청의 소스 IP 주소가 포함됩니다. 사용자를 대신해 Amazon S3 또는 다른 AWS 서비스가 수행한 작업의 경우 이 열에는 Null 값이 포함됩니다. | 
| `request_id` | 아니요 | 문자열 | 요청과 연결된 요청 ID입니다. | 