S3 Metadata ジャーナルテーブルスキーマ - Amazon Simple Storage Service

S3 Metadata ジャーナルテーブルスキーマ

ジャーナルテーブルは、データに加えられた変更をほぼリアルタイムで記録するため、バケットにアップロードされた新しいデータの特定、最近削除されたオブジェクトの追跡、ライフサイクルの移行のモニタリングなどに役立ちます。ジャーナルテーブルには、新しいオブジェクトと、オブジェクトとそのメタデータに対する更新 (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

あり 文字列 汎用バケット名。詳細については、「汎用バケットの命名規則」を参照してください。

key

あり 文字列 バケット内のオブジェクトを一意に識別するオブジェクトのキー名 (またはキー)。詳細については、「Amazon S3 オブジェクトに命名する」を参照してください。

sequence_number

あり 文字列

シーケンス番号。特定のオブジェクトのレコードに含まれる序数です。同じバケットとキーのレコードを順に並べるには、sequence_number でソートできます。特定のバケットとキーについて、sequence_number 値が辞書順で大きいほど、レコードがより最近バケットに導入されたことを意味します。

record_type

あり 文字列

このレコードのタイプ。CREATEUPDATE_METADATA、または DELETE のいずれかです。

CREATE レコードは、新しいオブジェクト (またはオブジェクトの新しいバージョン) がバケットに書き込まれたことを示します。

UPDATE_METADATA レコードは、ストレージクラスやタグなど、既存のオブジェクトの変更可能なメタデータへの変更をキャプチャします。

DELETE レコードは、このオブジェクト (またはオブジェクトのこのバージョン) が削除されたことを示します。バージョニングが有効になっている場合、DELETE レコードは削除マーカーまたは永続的な削除のいずれかを表します。オプションの is_delete_marker 列を参照することで、さらに曖昧さが解消されます。

詳細については、「バージョニングが有効なバケットからのオブジェクトバージョンの削除」を参照してください。

注記

永続的な削除では、bucketkeysequence_numberrecord_typerecord_timestamp、および version_id (つまり、必須とマークされた列) を除くすべての列に NULL が保持されます。

record_timestamp

あり Timestamp NTZ (タイムゾーンなし)

このレコードに関連付けられているタイムスタンプ。

version_id

なし 文字列

オブジェクトのバージョン ID。バケットのバージョニングを有効にすると、Amazon S3 はバケットに追加されたオブジェクトにバージョン番号を割り当てます。詳細については、「S3 バージョニングによる複数のバージョンのオブジェクトの保持」を参照してください。

バージョニング状態を設定する前にバケットに保存されたオブジェクトのバージョン ID は null です。

is_delete_marker

なし ブール値

オブジェクトの削除マーカーのステータス。削除マーカーである DELETE レコードの場合、この値は TRUE です。永続的な削除の場合、この値は省略されます (NULL)。他のレコードタイプ (CREATE および UPDATE_METADATA) には値 FALSE があります。詳細については、「削除マーカーの使用」を参照してください。

注記

削除マーカーに追加される行の record_type 値は DELETE ではなく UPDATE_METADATA です。S3 ライフサイクルの有効期限が切れた結果として削除マーカーが作成された場合、requester 値は s3.amazonaws.com です。

size

なし Long

バイト単位のオブジェクトサイズ。不完全なマルチパートアップロードまたはオブジェクトメタデータのサイズは含まれません。is_delete_markerTRUE の場合、サイズは 0 です。詳細については、「システムで定義されたオブジェクトメタデータ」を参照してください。

last_modified_date

なし Timestamp NTZ (タイムゾーンなし)

オブジェクト作成日または最終更新日のいずれか遅い方。マルチパートアップロードの場合、オブジェクトの作成日はマルチパートアップロードが開始された日付です。詳細については、「システムで定義されたオブジェクトメタデータ」を参照してください。

e_tag

なし 文字列

エンティティタグ (ETag) は、オブジェクトのハッシュです。ETag は、変更をオブジェクトのコンテンツにのみ反映し、メタデータには反映しません。ETag は、オブジェクトデータの MD5 ダイジェストである場合があります。ETag が MD5 ダイジェストであるかどうかは、オブジェクトの作成方法と暗号化方法によって異なります。詳細については、「Amazon S3 API リファレンス」の「Object」を参照してください。

storage_class

なし 文字列

オブジェクトの保存に使用されるストレージクラス。STANDARDREDUCED_REDUNDANCYSTANDARD_IAONEZONE_IAINTELLIGENT_TIERINGGLACIERDEEP_ARCHIVEGLACIER_IR のいずれかです。詳細については、「Amazon S3 ストレージクラスの理解と管理」を参照してください。

is_multipart

なし ブール値

オブジェクトのアップロードタイプ。オブジェクトがマルチパートアップロードとしてアップロードされた場合、この値は TRUE です。それ以外の場合は、FALSE です。詳細については、「Amazon S3 でのマルチパートアップロードを使用したオブジェクトのアップロードとコピー」を参照してください。

encryption_status

なし 文字列

使用される暗号化キーの種類に応じた、オブジェクトのサーバー側の暗号化ステータス。Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS)、AWS KMS keys による二層式サーバー側の暗号化 (DSSE-KMS)、またはお客様が指定したキーによるサーバー側の暗号化 (SSE-C) のいずれかとなります。オブジェクトが暗号化されていない場合、この値は null です。可能な値は、SSE-S3SSE-KMSDSSE-KMSSSE-C、または null です。詳細については、「暗号化によるデータの保護」を参照してください。

is_bucket_key_enabled

なし ブール値

オブジェクトの S3 バケットキーの有効化ステータス。オブジェクトが SSE-KMS に S3 バケットキーを使用する場合、この値は TRUE です。それ以外の場合は、FALSE です。詳細については、「オブジェクトレベルで S3 バケットキーを設定する」を参照してください。

kms_key_arn

なし 文字列

encryption_statusSSE-KMS または DSSE-KMS の行の場合、オブジェクトの暗号化に使用される KMS キーの Amazon リソースネーム (ARN)。オブジェクトが 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

なし 文字列

オブジェクトのチェックサムを作成するために使用されるアルゴリズム。CRC64NVMECRC32CRC32CSHA1、または 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

なし 文字列

リクエストを行ったリクエスタまたは AWS のサービスプリンシパルの AWS アカウント ID。例えば、リクエスタが S3 ライフサイクルの場合、この値は s3.amazonaws.com です。

source_ip_address

なし 文字列

リクエストの送信元 IP アドレス。ユーザーリクエストによって生成されたレコードの場合、この列にはリクエストの送信元 IP アドレスが含まれます。ユーザーに代わって Amazon S3 または別の AWS のサービスによって実行されたアクションの場合、この列には null 値が含まれます。

request_id

なし 文字列

リクエストに関連付けられたリクエスト ID。