S3 元数据日记表架构
日记表近乎实时地记录对数据所做的更改,有助于您识别上传到存储桶的新数据、跟踪最近删除的对象、监控生命周期转换等。日记表记录新对象以及对于对象及其元数据的更新(那些需要 PUT
或 DELETE
操作的更新)。由于此表是可查询的,因此可以通过简单的 SQL 查询来审计对存储桶的更改。
可以将日记表用于安全、审计和合规使用案例,以跟踪存储桶中已上传、删除和更改的对象。例如,可以查询日记表来回答如下问题:
-
S3 生命周期在过去 24 小时内删除了哪些对象?
-
最近的
PUT
请求来自哪些 IP 地址? -
在过去 7 天内,哪些 Amazon Key Management Service(Amazon KMS)密钥用于
PUT
请求? -
Amazon Bedrock 在过去五天内创建了存储桶中的哪些对象?
Amazon S3 元数据日记表包含行和列。每行代表一个突变事件,该事件在您的通用存储桶中创建、更新或删除了一个对象。这些事件中大多数是用户操作的结果,但其中一些事件是 Amazon S3 代表您执行的操作的结果,例如 S3 生命周期到期或存储类别转换。
S3 元数据日记表与通用存储桶中已发生的更改保持最终一致。在某些情况下,当 S3 元数据收到创建或更新对象的通知时,该对象可能已经在存储桶中被覆盖或删除。在此类情况下,将不再能够检索对象,并且某些列可能会显示一个 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
日记表具有以下架构:
列名称 | 必填? | 数据类型 | |
---|---|---|---|
|
是 | 字符串 | 通用存储桶名称。有关更多信息,请参阅 通用存储桶命名规则。 |
|
是 | 字符串 | 在存储桶中唯一地标识对象的对象键名称(或键)。有关更多信息,请参阅 为 Amazon S3 对象命名。 |
|
是 | 字符串 | 序列号,它是一个序数,包含在给定对象的记录中。要对相同存储桶和键的记录进行排序,您可以按 |
|
是 | 字符串 | 此记录的类型,为以下值之一:
有关更多信息,请参阅 从启用了版本控制的存储桶中删除对象版本。 注意永久删除在所有列中都带有 |
|
是 | 时间戳 NTZ(无时区) | 与此记录关联的时间戳。 |
|
否 | 字符串 |
对象的版本 ID。在存储桶上启用版本控制后,Amazon S3 会为添加到存储桶的对象指定版本号。有关更多信息,请参阅 使用 S3 版本控制保留对象的多个版本。 在您设置版本控制状态之前存储在存储桶中的对象的版本 ID 为 null。 |
|
否 | 布尔值 |
对象的删除标记状态。对于作为删除标记的 DELETE 记录,此值为 注意为删除标记添加的行的 |
|
否 | 长整型 | 以字节为单位的对象大小,不包括未完成的分段上传或对象元数据的大小。如果 |
|
否 | 时间戳 NTZ(无时区) | 对象创建日期或上次修改日期(以较晚者为准)。对于分段上传,对象创建日期是开始分段上传的日期。有关更多信息,请参阅 系统定义的对象元数据。 |
|
否 | 字符串 | 实体标签(ETag),这是对象的哈希。ETag 仅反映对于对象的内容的更改,而不反映对于对象的元数据的更改。ETag 可能是对象数据的 MD5 摘要。ETag 是否为 MD5 摘要取决于对象的创建方式及其加密方式。有关更多信息,请参阅《Amazon S3 API 参考》中的 Object。 |
|
否 | 字符串 | 用于存储对象的存储类。以下值之一: |
|
否 | 布尔值 | 对象的上传类型。如果对象以分段上传形式上传,则此值为 |
|
否 | 字符串 | 对象的服务器端加密状态,具体取决于使用哪种加密密钥:具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)、具有 Amazon Key Management Service(Amazon KMS)密钥的服务器端加密(SSE-KMS)、具有 Amazon KMS keys的双层服务器端加密(DSSE-C)或具有客户提供的密钥的服务器端加密(SSE-C)。如果对象未加密,则此值为 null。可能的值为 |
|
否 | 布尔值 | 对象的 S3 存储桶密钥启用状态。如果对象将 S3 存储桶密钥用于 SSE-KMS,则此值为 |
|
否 | 字符串 |
用于加密对象的 KMS 密钥的 Amazon 资源名称(ARN),适用于 注意如果某行代表的对象版本在处理删除或覆盖事件时不再存在,则即使 |
|
否 | 字符串 | 用于为对象创建校验和的算法,为以下值之一: |
|
否 | Map <String, String> |
与对象关联的对象标签。对象标签存储为键值对的映射。如果对象没有对象标签,则会存储空映射 ( 注意如果 |
|
否 | Map <String, String> |
与对象关联的用户元数据。用户元数据存储为键值对的映射。如果对象没有用户元数据,则会存储空映射 ( 注意如果 |
|
否 | 字符串 | 提出请求的请求者或 Amazon Web Services 服务 主体的 Amazon Web Services 账户 ID。例如,如果请求者是 S3 生命周期,则此值为 |
|
否 | 字符串 | 请求的源 IP 地址。对于由用户请求生成的记录,此列包含请求的源 IP 地址。对于 Amazon S3 或其它 Amazon Web Services 服务 代表用户采取的操作,此列包含 null 值。 |
|
否 | 字符串 | 与请求关联的请求 ID。 |