AWS S3存储桶日志与AWS CloudTrail有何区别?

34

AWS S3日志和AWS CloudTrail之间有什么区别?在CloudTrail文档中我看到了这个:

CloudTrail为AWS已经提供的监控能力增加了另一个维度。它不会更改或替代您可能已经使用的日志记录功能。

5个回答

23
自从这个问题被提出后,AWS新增了一项功能,即CloudTrail Data事件。目前有三种可用的功能:
  1. CloudTrail:记录几乎所有存储桶级API调用 参考文献
  2. CloudTrail数据事件:记录几乎所有对象级API调用 参考文献
  3. S3服务器访问日志:记录几乎所有(最佳尽力日志传递)对S3对象的访问调用。 参考文献
现在,第二和第三个功能似乎是相似的功能,但它们有一些区别,这可能会提示用户使用其中一个或两个(在我们的情况下)!下面是我找到的区别:
  • 两者都在不同的细粒度级别上工作。例如,CloudTrail数据事件可以为AWS帐户中的所有S3存储桶或仅为S3存储桶中的某些文件夹设置。而S3服务器访问日志将在单个存储桶级别上设置
  • S3服务器访问日志似乎提供了更全面的日志信息,如BucketOwner、HTTPStatus、ErrorCode等。完整列表请参见此处
  • 在CloudTrail日志中无法获得但在服务器访问日志中可用的信息。请参见此处

    • 记录日志的对象大小、总时间、周转时间和HTTP Referer字段
    • 生命周期转换、过期、恢复
    • 批量删除操作中键的记录日志
    • 身份验证失败
    • CloudTrail不会传递无效凭据的请求的日志。然而,它包括授权失败(AccessDenied)和匿名用户发出的请求的日志。
    • 如果请求来自不同的AWS账户,则只有当存储桶所有者拥有或具有对请求中的对象的完全访问权限时,您才会在您的账户中看到CloudTrail日志。如果不是这种情况,该日志将仅在请求者账户中看到。相同请求的日志将以服务器访问日志的形式在您的账户中传递,不需要任何其他要求。
    AWS支持建议使用CloudTrail日志做出决策,如果您需要那些在CloudTrail日志中不可用的额外信息,则可以使用服务器访问日志。

    22

    CloudTrail追踪基础设施更改事件的API访问,对于S3,这意味着创建、删除和修改存储桶 (S3 CloudTrail文档)。它非常专注于修改存储桶的API方法。

    S3服务器访问日志提供了类似Web服务器的日志记录方式,记录对S3存储桶中对象的访问。此日志记录粒度到对象级别,包括只读操作,并包括像静态网站浏览这样的非API访问。


    31
    自2016年11月起,AWS CloudTrail支持"S3 Data Events",因此原先的说法不再正确。 - Jason
    2
    答案不再完整。可以启用S3对象级别的日志记录到CloudTrail https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-cloudtrail-events.html - skrii

    12

    使用CloudTrail日志而不是S3服务器访问日志有两个原因:

    1. 您对存储桶级别的活动日志感兴趣。CloudTrail具备此功能,而S3日志则没有。
    2. 您已经设置了一个涉及CloudWatch日志流的日志分析系统。基本的S3日志只是将日志事件存储到某个S3存储桶中的文件中,然后由您来处理它们(尽管大多数日志分析服务可以为您完成此操作)。

    底线:如果您有特定的需求场景,则需要额外付费使用CloudTrail。否则,“标准”的S3服务器访问日志就足够了。

    来自CloudTrail开发者指南使用AWS CloudTrail记录Amazon S3 API调用

    使用CloudTrail日志与Amazon S3服务器访问日志和CloudWatch日志
    您可以将AWS CloudTrail日志与Amazon S3的服务器访问日志一起使用。CloudTrail日志为您提供了Amazon S3存储桶级别和对象级别操作的详细API跟踪,而Amazon S3的服务器访问日志则为您提供了有关Amazon S3中数据对象级别操作的可见性。有关服务器访问日志的更多信息,请参阅Amazon S3服务器访问日志。
    您还可以将CloudTrail日志与CloudWatch一起使用Amazon S3。CloudTrail与CloudWatch日志的集成将由CloudTrail捕获的S3存储桶级别API活动传递到您指定的CloudWatch日志组中的CloudWatch日志流。您可以创建CloudWatch警报以监视特定API活动,并在发生特定API活动时接收电子邮件通知。有关监视特定API活动的CloudWatch警报的更多信息,请参阅AWS CloudTrail用户指南。有关使用CloudWatch与Amazon S3的更多信息,请参阅Amazon CloudWatch监控指标。

    0
    AWS CloudTrail是一项AWS服务,用于记录不同AWS资源上的所有帐户活动。它还跟踪IAM控制台登录等事项。启用CloudTrail服务后,您可以转到CloudTrail控制台查看所有活动,并应用过滤器。此外,在启用时,您可以选择记录这些活动并将数据发送到AWS CloudWatch。在AWS CloudWatch中,您可以应用过滤器并创建警报,以在发生某种类型的活动时通知您。
    S3日志记录是为您的S3存储桶/对象启用基本活动记录。

    -3

    CloudTrail记录访问您的AWS帐户的API调用。

    这些CloudTrail日志存储在Amazon S3 Bucket中。

    这两个提供不同的服务。

    您从CloudTrail Doc分享的定义: CloudTrail为AWS已经提供的监控功能增加了另一个维度。它不会更改或替换您可能已经使用的日志记录功能。

    这意味着您可能已经激活了其他AWS服务(如ELB日志记录等)提供的其他日志记录功能。 但是,当您启用CloudTrail监视时,您无需担心之前的日志记录功能,因为它们仍将保持活动状态。 您将从所有服务接收日志。 因此,通过启用CloudTrail日志记录,它不会更改或替换您可能已经使用的日志记录功能。

    希望对您有所帮助.. :)


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接