验证 CloudTrail 日志文件完整性
要确定日志文件经 CloudTrail 提交后是否已修改、删除或未更改,可以使用 CloudTrail 日志文件完整性验证。该功能是使用业界标准算法构建的:哈希采用 SHA-256,数字签名采用带 RSA 的 SHA-256。这样,要修改、删除或伪造 CloudTrail 日志文件而不被检测到在计算上是不可行的。您可以使用 Amazon CLI 在 CloudTrail 将这些文件传送到的位置验证这些文件。
为什么使用它?
在安全和事故调查中,经验证的日志文件非常重要。例如,通过经验证的日志文件,您可以十分确定日志文件本身未更改,或者特定用户凭证执行了特定 API 活动。通过 CloudTrail 日志文件完整性验证过程,您还可以知道日志文件是否已删除或更改,或者可以十分确定在给定时间段内未向您的账户提交任何日志文件。
工作方式
如果启用日志文件完整性验证,CloudTrail 会为其提交的每个日志文件创建一个哈希。CloudTrail 还每小时创建和提交一个文件,该文件引用上一小时的日志文件,包含每一个文件的哈希。此文件称为摘要文件。CloudTrail 使用公钥和私钥对的私钥对每个摘要文件进行签名。完成提交后,您可以使用公有密钥验证摘要文件。CloudTrail 对每个 Amazon Web Services 区域 区域使用不同的密钥对。
将摘要文件提交到与您的跟踪所关联的 Simple Storage Service(Amazon S3)存储桶,这也是您的 CloudTrail 日志文件所关联到的存储桶。如果日志文件是从所有区域或从多个账户提交到单个 Amazon S3 存储桶,则 CloudTrail 将摘要文件从这些区域和账户提交到同一存储桶中。
摘要文件放在与日志文件不同的文件夹中。摘要文件与日志文件分开放置,您就可以执行细粒度安全策略,允许现有日志处理解决方案继续运行,无需进行修改。每个摘要文件还包含之前摘要文件(如果存在)的数字签名。当前摘要文件的签名位于摘要文件 Simple Storage Service(Amazon S3)对象的元数据属性中。有关摘要文件内容的更多信息,请参阅CloudTrail 摘要文件结构。
存储日志文件和摘要文件
您可以将 CloudTrail 日志文件和摘要文件安全、持久、低成本、无限期地存储在 Simple Storage Service(Amazon S3)或 S3 Glacier 中。为增强存储在 Simple Storage Service(Amazon S3)中的摘要文件的安全性,您可以使用 Simple Storage Service(Amazon S3)MFA 删除。
启用验证并验证文件
要启用日志文件完整性验证,您可以使用 Amazon Web Services Management Console、Amazon CLI 或 CloudTrail API。启用日志文件完整性验证允许 CloudTrail 将摘要日志文件传送到您的 Amazon S3 存储桶,但是不会验证文件的完整性。有关更多信息,请参阅 启用 CloudTrail 的日志文件完整性验证。
要验证 CloudTrail 日志文件的完整性,您可以使用 Amazon CLI 或创建自己的解决方案。Amazon CLI 将在 CloudTrail 将文件提交到的位置验证文件。如果您要验证已移到其他位置(Simple Storage Service(Amazon S3)或别处)的日志,您可以创建自己的验证工具。
有关通过 Amazon CLI 验证日志的信息,请参阅使用 Amazon CLI 验证 CloudTrail 日志文件完整性。有关开发 CloudTrail 日志文件验证自定义实现的信息,请参阅 CloudTrail 日志文件完整性验证的自定义实现。