AWS CloudTrail
用户指南 (版本 1.0)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

CloudTrail 摘要文件结构

每个摘要文件均包含前一小时提交到您的 Amazon S3 存储桶的日志文件的名称,这些日志文件的哈希值,以及前一日志文件的数字签名。最新摘要文件的签名存储在摘要文件对象的元数据属性中。数字签名和哈希值用于验证日志文件和摘要文件本身的完整性。

摘要文件位置

摘要文件提交到 Amazon S3 存储桶位置,语法如下。

s3://s3-bucket-name/AWSLogs/aws-account-id/CloudTrail-Digest/ region/digest-end-year/digest-end-month/digest-end-date/ aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz

注意

对于组织跟踪,存储桶位置还包括组织单位 ID,如下所示:

s3://s3-bucket-name/AWSLogs/OU-ID/aws-account-id/CloudTrail-Digest/ region/digest-end-year/digest-end-month/digest-end-date/ aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz

示例摘要文件内容

下面的示例摘要文件包含 CloudTrail 日志的信息。

{ "awsAccountId": "111122223333", "digestStartTime": "2015-08-17T14:01:31Z", "digestEndTime": "2015-08-17T15:01:31Z", "digestS3Bucket": "S3-bucket-name", "digestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/17/111122223333_CloudTrail-Digest_us-east-2_your-trail-name_us-east-2_20150817T150131Z.json.gz", "digestPublicKeyFingerprint": "31e8b5433410dfb61a9dc45cc65b22ff", "digestSignatureAlgorithm": "SHA256withRSA", "newestEventTime": "2015-08-17T14:52:27Z", "oldestEventTime": "2015-08-17T14:42:27Z", "previousDigestS3Bucket": "S3-bucket-name", "previousDigestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/17/111122223333_CloudTrail-Digest_us-east-2_your-trail-name_us-east-2_20150817T140131Z.json.gz", "previousDigestHashValue": "97fb791cf91ffc440d274f8190dbdd9aa09c34432aba82739df18b6d3c13df2d", "previousDigestHashAlgorithm": "SHA-256", "previousDigestSignature": "50887ccffad4c002b97caa37cc9dc626e3c680207d41d27fa5835458e066e0d3652fc4dfc30937e4d5f4cc7f796e7a258fb50a43ac427f2237f6e505d4efaf373d156e15e3b68dea9f58111d395b62628d6bd367a9024d2183b5c5f6e19466d3a996b92df705bc997b8a0e13430f241d733cf95df4e41bb6c304c3f58363043572ea57a27085639ce187e679c0d81c7519b1184fa77fb7ab0b0e40a32dace6e1eefc3995c5ae182da49b62b26398cebb52a2201a6387b75b89c83e5570bcb9bba6c34a80f2f00a1c6ebe07d1ff149eccd812dc805bb3eeff6657db32a6cb48d2d096404eb76181877bc6ebb8cd0b23f823200155b2fd8848d428e46e8456328a", "logFiles": [ { "s3Bucket": "S3-bucket-name", "s3Object": "AWSLogs/111122223333/CloudTrail/us-east-2/2015/08/17/111122223333_CloudTrail_us-east-2_20150817T1445Z_9nYN7gp2eWAJHIfT.json.gz", "hashValue": "9bb6196fc6b84d6f075a56548feca262bd99ba3c2de41b618e5b6e22c1fc71f6", "hashAlgorithm": "SHA-256", "newestEventTime": "2015-08-17T14:52:27Z", "oldestEventTime": "2015-08-17T14:42:27Z" } ] }

摘要文件字段描述

下面是摘要文件中每个字段的描述:

awsAccountId

已提交的摘要文件的 AWS 账户 ID。

digestStartTime

摘要文件涉及的日志文件的起始 UTC 时间范围,它作为参考,采用 CloudTrail 已提交日志文件的时间。这意味着,如果时间范围是 [Ta, Tb],则摘要包含在 Ta 与 Tb 之间提交给客户的所有日志文件。

digestEndTime

摘要文件涉及的日志文件的结束 UTC 时间范围,它作为参考,采用 CloudTrail 已提交日志文件的时间。这意味着,如果时间范围是 [Ta, Tb],则摘要包含在 Ta 与 Tb 之间提交给客户的所有日志文件。

digestS3Bucket

已将最新摘要文件提交到的 Amazon S3 存储桶的名称。

digestS3Object

最新摘要文件的 Amazon S3 对象密钥(即,Amazon S3 存储桶位置)。字符串中的前两个区域显示摘要文件是从哪个区域提交的。最后的区域(your-trail-name 之后)是跟踪的主区域。主区域是创建跟踪的区域。在多区域跟踪的情况下,它可能不是提交摘要文件的发出区域。

newestEventTime

摘要的日志文件中的所有事件中最近事件的 UTC 时间。

oldestEventTime

摘要的日志文件中的所有事件中最早事件的 UTC 时间。

注意

如果摘要文件延迟提交,则 oldestEventTime 的值将早于 digestStartTime 的值。

previousDigestS3Bucket

将前一摘要文件提交到的 Amazon S3 存储桶。

previousDigestS3Object

前一摘要文件的 Amazon S3 对象密钥(即,Amazon S3 存储桶位置)。

previousDigestHashValue

前一摘要文件的未压缩内容的十六进制编码哈希值。

previousDigestHashAlgorithm

用于对前一摘要文件进行哈希处理的哈希算法的名称。

publicKeyFingerprint

与用于对摘要文件进行签名的私有密钥相匹配的公有密钥的十六进制编码指纹。您可以使用 AWS CLI 或 CloudTrail API 检索与摘要文件相对应的时间范围的公有密钥。对于返回的公有密钥,其指纹与此值匹配的公有密钥可用于验证摘要文件。有关检索摘要文件公有密钥的信息,请参阅 AWS CLI list-public-keys 命令或 CloudTrail ListPublicKeys API。

注意

CloudTrail 在每个区域中使用不同的私有/公有密钥对。每个摘要文件都使用对其区域唯一的私有密钥进行签名。因此,从特定区域验证摘要文件时,您必须在该区域中查找其相应的公有密钥。

digestSignatureAlgorithm

用于对摘要文件进行签名的算法。

logFiles.s3Bucket

日志文件所用的 Amazon S3 存储桶的名称。

logFiles.s3Object

最新日志文件的 Amazon S3 对象密钥。

logFiles.newestEventTime

日志文件中最近事件的 UTC 时间。此时间还与日志文件本身的时间戳相对应。

logFiles.oldestEventTime

日志文件中最早事件的 UTC 时间。

logFiles.hashValue

未压缩日志文件内容的十六进制编码哈希值。

logFiles.hashAlgorithm

用于对日志文件进行哈希处理的哈希算法。

启动摘要文件

启动日志文件完整性验证时,将生成一个启动摘要文件。重新启动日志文件完整性验证(通过禁用后重新启用日志文件完整性验证,或者通过停止记录然后在启用验证时重新启动记录)时,也将生成一个启动摘要文件。在启动摘要文件中,与前一摘要文件相关的以下字段将为空:

  • previousDigestS3Bucket

  • previousDigestS3Object

  • previousDigestHashValue

  • previousDigestHashAlgorithm

  • previousDigestSignature

“空”摘要文件

即使在摘要文件表示的一小时时间段内您的账户中没有 API 活动,CloudTrail 也将提交摘要文件。如果需要确定在摘要文件报告的小时内未提交日志文件,这非常有用。

下面的示例说明当未出现 API 活动时记录了 1 小时的摘要文件的内容。注意,摘要文件内容最后的 logFiles:[ ] 字段为空。

{ "awsAccountId": "111122223333", "digestStartTime": "2015-08-20T17:01:31Z", "digestEndTime": "2015-08-20T18:01:31Z", "digestS3Bucket": "example-bucket-name", "digestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/20/111122223333_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150820T180131Z.json.gz", "digestPublicKeyFingerprint": "31e8b5433410dfb61a9dc45cc65b22ff", "digestSignatureAlgorithm": "SHA256withRSA", "newestEventTime": null, "oldestEventTime": null, "previousDigestS3Bucket": "example-bucket-name", "previousDigestS3Object": "AWSLogs/111122223333/CloudTrail-Digest/us-east-2/2015/08/20/111122223333_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150820T170131Z.json.gz", "previousDigestHashValue": "ed96c4bac9eaa8fe9716ca0e515da51938be651b1db31d781956416a9d05cdfa", "previousDigestHashAlgorithm": "SHA-256", "previousDigestSignature": "82705525fb0fe7f919f9434e5b7138cb41793c776c7414f3520c0242902daa8cc8286b29263d2627f2f259471c745b1654af76e2073264b2510fd45236b3aea4d80c0e8e6455223d7bd54ff80af0edf22a5f14fa856626daec919f0591479aa4f213787ba1e1076328dcf8ff624e03a977fa5612dcf58594c590fd8c1c5b48bddf43fc84ecc00b41bedd0ff7f293c3e2de8dcdc78f98b03e17577f5822ba842399d69eb79921c0429773509520e08c8b518702d987dfbb3a4e5d8c5f17673ce1f989dfff82d4becf24e452f20d3bcac94ad50131f93e57f10155536acb54c60efbe9d57228c2b930bc6082b2318e3ccd36834a8e835b8d112dbf32145f445c11", "logFiles": [] }

摘要文件的签名

摘要文件的签名信息位于 Amazon S3 摘要文件对象的两个对象元数据属性中。每个摘要文件都有下面的元数据项:

  • x-amz-meta-signature

    摘要文件签名的十六进制编码值。下面是示例签名:

    3be472336fa2989ef34de1b3c1bf851f59eb030eaff3e2fb6600a082a23f4c6a82966565b994f9de4a5989d053d9d15d20fc5c43e66358652d93326550a4acc5c5f541bb52e9b455897ab723bd7cbabfe963a406a41d600f3658f7a3135e5ed9fcae7b79bb5857d1e5eb78fcce8595ce0ade2f3ad1d9f2d62be7bc4660d83166ce24586489b7da9ee9883eaf0b9efabb5dd3cbba565cc4aab5c9c46c9fa7e9cda310afcc5e8adcd9e48d0597ec5f8174a52c3bebb3e845eeb1d18904fbf4cc14cd117080098e10022ddf55e017a9431446acad8560de0ba1e477af9f8a3048bc6196350adad0cc0cb4ab99b5e7c9944437a3c674a038009220684ced7be07b4f 28f1cc237f372264a51b611c01da429565def703539f4e71009051769469231bc22232fa260df02740047af532229885ea2b0e95ecd353326b7104941e0cbddb076a391f1fcf2923c19565f4841770a78723451aeb732ff1b6162dc40e601fc6720bc5325987942ebd817783b322f0ac77698523bf742fdea7aa44f4911b3101221b7e1233387f16a52077610498f4a1254211258e37da0fb4cb207aef593b4c1baa13674e85acc52046b3adb889e63331a66abac5de7e42ffdd6952987c31ae871650e130bd2e63bfe145b22bbd39ea192210f6df64d49b888a321e02d3fc4cf126accae30d2857ccd6b2286a7c9feba6c35c44161b24147d645e6ca26844ba 05d3ffcb5d2dd5dc28f8bb5b7993938e8a5f912a82b448a367eccb2ec0f198ba71e23eb0b97278cf65f3c8d1e652c6de33a22ca8428821ffc95bf8b726ba9f37cfbc20c54dc5bd6159bdea1c4d951b68cb8e0528852c55bb0c5e499ea60560f7c2bb3af7f694407da863a2594f7a2f2838cb09254afbaf8003587746e719a0437f85eeffae534f283f3837eb939a9bccc3c71573500661245891051231b580ac92d9e0e68c6f47ad38975f493e2c40e7f303353c4adc7d563ef1e875977afac2e085f0c824045d998c9543d8a3293ad3c063b7a109d0bfd84b0b1e3f72c4f057e744e6a2cf9cc97727b08584f44bfa47799c5072b60f0b619aea88a17de585e9
  • x-amz-meta-signature-algorithm

    下面是用于生成摘要签名的算法示例值:

    SHA256withRSA

摘要文件链

每个摘要文件都包含对其前一摘要文件的引用,这样可实现一个“链”,使 AWS CLI 等验证工具可以检测摘要文件是否已删除。通过它,在指定时间范围内的摘要文件可以从最近开始往前连续检查。

注意

如果禁用日志文件完整性验证,一小时后摘要文件链会断开。CloudTrail 不会为在禁用日志文件完整性验证的时间段内提交的日志文件创建摘要文件。例如,如果您在 1 月 1 日中午启用日志文件完整性验证,在 1 月 2 日中午禁用它,在 1 月 10 日中午再次启用它,则不会为从 1 月 2 日中午到 1 月 10 日中午之间提交的日志文件创建摘要文件。只要停止 CloudTrail 记录或删除跟踪,这同样适用。

如果停止记录或删除跟踪,则 CloudTrail 将提交最终摘要文件。此摘要文件包含有关所有剩余日志文件的信息,所涵盖的事件直至(包含)StopLogging 事件。