

# S3 Metadata ジャーナルテーブルスキーマ
<a name="metadata-tables-schema"></a>

ジャーナルテーブルは、データに加えられた変更をほぼリアルタイムで記録するため、バケットにアップロードされた新しいデータの特定、最近削除されたオブジェクトの追跡、ライフサイクルの移行のモニタリングなどに役立ちます。ジャーナルテーブルには、新しいオブジェクトと、オブジェクトとそのメタデータに対する更新 (`PUT` または `DELETE` オペレーションを必要とする更新) が記録されます。このテーブルはクエリ可能であるため、単純な SQL クエリを使用してバケットへの変更を監査できます。

セキュリティ、監査、コンプライアンスのユースケースにジャーナルテーブルを使用して、バケット内のアップロード、削除、変更されたオブジェクトを追跡できます。例えば、ジャーナルテーブルにクエリを実行して、次のような質問に答えることができます。
+ S3 ライフサイクルによって過去 24 時間に削除されたオブジェクトはどれか。
+ 最新の `PUT` リクエストはどの IP アドレスから送信されたか。
+ 過去 7 日間に `PUT` リクエストに使用された AWS Key Management Service (AWS KMS) キーはどれか。
+ バケット内のどのオブジェクトが Amazon Bedrock によって過去 5 日間に作成されたものか。

Amazon S3 Metadata ジャーナルテーブルには行と列が含まれています。各行は、汎用バケット内のオブジェクトを作成、更新、または削除したミューテーションイベントを表します。これらのイベントの大部分はユーザーアクションの結果ですが、これらのイベントの一部は、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 | 汎用バケット名。詳細については、「[汎用バケットの命名規則](bucketnamingrules.md)」を参照してください。 | 
| `key` | はい | String | バケット内のオブジェクトを一意に識別するオブジェクトのキー名 (またはキー)。詳細については、「[Amazon S3 オブジェクトに命名する](object-keys.md)」を参照してください。 | 
| `sequence_number` | はい | String | シーケンス番号。特定のオブジェクトのレコードに含まれる序数です。同じバケットとキーのレコードを順に並べるには、`sequence_number` でソートできます。特定のバケットとキーについて、`sequence_number` 値が辞書順で大きいほど、レコードがより最近バケットに導入されたことを意味します。 | 
| `record_type` | はい | String | このレコードのタイプ。`CREATE`、`UPDATE_METADATA`、または `DELETE` のいずれかです。<br />`CREATE` レコードは、新しいオブジェクト (またはオブジェクトの新しいバージョン) がバケットに書き込まれたことを示します。<br />`UPDATE_METADATA` レコードは、ストレージクラスやタグなど、既存のオブジェクトの変更可能なメタデータへの変更をキャプチャします。<br />`DELETE` レコードは、このオブジェクト (またはオブジェクトのこのバージョン) が削除されたことを示します。バージョニングが有効になっている場合、`DELETE` レコードは削除マーカーまたは永続的な削除のいずれかを表します。オプションの `is_delete_marker` 列を参照することで、さらに曖昧さが解消されます。<br />詳細については、「[バージョニングが有効なバケットからのオブジェクトバージョンの削除](DeletingObjectVersions.md)」を参照してください。 永続的な削除では、`bucket`、`key`、`sequence_number`、`record_type`、`record_timestamp`、および `version_id` (つまり、必須とマークされた列) を*除く*すべての列に `NULL` が保持されます。  | 
| `record_timestamp` | はい | Timestamp NTZ (タイムゾーンなし) | このレコードに関連付けられているタイムスタンプ。 | 
| `version_id` | いいえ | String | オブジェクトのバージョン ID。バケットのバージョニングを有効にすると、Amazon S3 はバケットに追加されたオブジェクトにバージョン番号を割り当てます。詳細については、「[S3 バージョニングによる複数のバージョンのオブジェクトの保持](Versioning.md)」を参照してください。<br />バージョニング状態を設定する前にバケットに保存されたオブジェクトのバージョン ID は null です。 | 
| `is_delete_marker` | いいえ | ブール値 | オブジェクトの削除マーカーのステータス。削除マーカーである DELETE レコードの場合、この値は `TRUE` です。永続的な削除の場合、この値は省略されます (`NULL`)。他のレコードタイプ (CREATE および UPDATE\_METADATA) には値 `FALSE` があります。詳細については、「[削除マーカーの使用](DeleteMarker.md)」を参照してください。 削除マーカーに追加される行の `record_type` 値は `DELETE` ではなく `UPDATE_METADATA` です。S3 ライフサイクルの有効期限が切れた結果として削除マーカーが作成された場合、`requester` 値は `s3.amazonaws.com` です。  | 
| `size` | いいえ | Long | バイト単位のオブジェクトサイズ。不完全なマルチパートアップロードまたはオブジェクトメタデータのサイズは含まれません。`is_delete_marker` が `TRUE` の場合、サイズは `0` です。詳細については、「[システムで定義されたオブジェクトメタデータ](UsingMetadata.md#SysMetadata)」を参照してください。 | 
| `last_modified_date` | いいえ | Timestamp NTZ (タイムゾーンなし) | オブジェクト作成日または最終更新日のいずれか遅い方。マルチパートアップロードの場合、オブジェクトの作成日はマルチパートアップロードが開始された日付です。詳細については、「[システムで定義されたオブジェクトメタデータ](UsingMetadata.md#SysMetadata)」を参照してください。 | 
| `e_tag` | いいえ | String | エンティティタグ (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` | いいえ | String | オブジェクトの保存に使用されるストレージクラス。`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` | いいえ | String | 使用される暗号化キーの種類に応じた、オブジェクトのサーバー側の暗号化ステータス。Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS)、AWS KMS keys による二層式サーバー側の暗号化 (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` | いいえ | String | `encryption_status` が `SSE-KMS` または `DSSE-KMS` の行の場合、オブジェクトの暗号化に使用される KMS キーの Amazon リソースネーム (ARN)。オブジェクトが 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` | いいえ | String | オブジェクトのチェックサムを作成するために使用されるアルゴリズム。`CRC64NVME`、`CRC32`、`CRC32C`、`SHA1`、`SHA256`、`MD5`、`XXHASH64`、`XXHASH3`、`XXHASH128`、または `SHA512` のいずれかです。チェックサムが存在しない場合、この値は 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` | いいえ | String | リクエストを行ったリクエスタまたは AWS のサービスプリンシパルの AWS アカウント ID。例えば、リクエスタが S3 ライフサイクルの場合、この値は `s3.amazonaws.com` です。 | 
| `source_ip_address` | いいえ | String | リクエストの送信元 IP アドレス。ユーザーリクエストによって生成されたレコードの場合、この列にはリクエストの送信元 IP アドレスが含まれます。ユーザーに代わって Amazon S3 または別の AWS のサービスによって実行されたアクションの場合、この列には null 値が含まれます。 | 
| `request_id` | いいえ | String | リクエストに関連付けられたリクエスト ID。 | 