Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

服务器访问日志记录

概述

要跟踪针对您存储桶的访问请求,可以启用访问日志记录。每个访问日志记录都提供有关单个访问请求的详细信息,如请求者、存储桶名称、请求时间、请求操作、响应状态和错误代码 (如果有)。访问日志信息可能在安全和访问审核方面十分有用。它还可以帮助您了解您的客户群并了解您的 Amazon S3 账单。

注意

对 Amazon S3 存储桶启用服务器访问日志记录无需额外费用;但是,系统传输给您的任何日志文件都会产生普通存储费用。(您可以随时删除日志文件。) 日志文件传输不会产生数据传输费,但对已传输的日志文件的访问则与任何其他数据传输同等计费。

默认情况下,日志记录处于禁用状态。要启用访问日志记录,您必须执行以下操作:

  • 通过在希望 Amazon S3 传输其访问日志的存储桶上添加日志记录配置,打开日志传输。我们将此存储桶称为源存储桶

  • 向 Amazon S3 日志传输组授予对用于保存访问日志的存储桶的写入权限。我们将此存储桶称为目标存储桶

要打开日志传输,请提供以下日志记录配置信息:

  • 希望 Amazon S3 用于将访问日志保存为对象的目标存储桶的名称。您可以将日志传输到您拥有的任何存储桶,包括源存储桶。我们建议您将访问日志保存在不同存储桶中,以方便管理这些日志。如果您选择将访问日志保存在与源存储桶相同的存储桶中,建议您对所有日志对象键指定前缀,以方便识别日志对象。

    注意

    源存储桶和目标存储桶必须由同一个 AWS 账户拥有。

  • (可选) 供 Amazon S3 的分配给所有日志对象键的前缀。通过该前缀可方便查找日志对象。

    例如,如果您指定前缀值 logs/,则 Amazon S3 创建的每个日志对象的键都以 logs/ 前缀开头,如以下示例所示:

    Copy
    logs/2013-11-01-21-32-16-E568B2907131C0C0

    当您删除日志时,键前缀可以有所帮助。例如,您可以设置一个生命周期配置规则,让 Amazon S3 删除具有特定键前缀的对象。有关更多信息,请参阅 删除日志文件

  • (可选) 使其他人可以访问生成的日志的权限。默认情况下,存储桶拥有者始终拥有日志对象的完全访问权限。您可以选择向其他用户授予访问权限。

日志对象键格式

Amazon S3 将以下对象键格式用于在目标存储桶中上传的日志对象:

Copy
TargetPrefixYYYY-mm-DD-HH-MM-SS-UniqueString

传输日志文件时,键中的 YYYY、mm、DD、HH、MM 和 SS 分别表示年、月、日、小时、分钟和秒的位数。

在特定时间传输的日志文件可包含在该时间前的任何时刻编写的记录。无法知道是否已传输特定时间间隔内的所有日志记录。

键的 UniqueString 部分用于防止覆盖文件。它没有意义,日志处理软件应忽略它。

如何传输日志?

Amazon S3 定期收集访问日志记录,在日志文件中整合这些记录,然后将日志文件作为日志对象上传到目标存储桶。如果在标识同一个目标存储桶的多个源存储桶上启用日志记录,则该目标存储桶具有所有这些源存储桶的访问日志,但是每个日志对象将报告特定源存储桶的访问日志记录。

Amazon S3 使用特殊的日志传输账户 (称为日志传输组) 写入访问日志。这些写入受常规的访问控制限制。您需要通过在目标存储桶的访问控制列表 (ACL) 中添加授权条目,向日志传输组授予对该存储桶的写入权限。如果您使用 Amazon S3 控制台在存储桶上启用日志记录,则该控制台会同时在源存储桶上启用日志记录并在目标存储桶上更新 ACL,以便向日志传输组授予写入权限。

最大努力服务器日志传输

服务器访问日志记录会以最大努力进行传输。已正确配置日志记录的存储桶的大多数请求都会传输日志记录,并且大多数日志记录将在记录后的几小时内传输。

但是,不能保证服务器日志记录的完整性和即时性。特殊请求的日志记录可能会在实际处理了请求之后进行传输,也可能完全不会传输。服务器日志的用途在于向您提供有关存储桶流量性质方面的信息。这并不意味着会完整记录所有请求。丢失日志记录的情况十分少见,但是服务器日志记录不旨在完整记录所有请求。

根据服务器日志记录功能的最大努力性质,在 AWS 门户上提供的使用率报告 (AWS 管理控制台上的账单和成本管理报告) 中可能有一个或多个访问请求不会出现在传输的服务器日志中。

存储桶日志记录状态更改将逐渐生效

存储桶日志记录状态的更改需要一定时间才能实际影响日志文件的传输。例如,如果您为某个存储桶启用了日志记录,那么将记录在以下时间内发送的请求,而不会记录其他请求。如果您将日志记录的目标存储桶从存储桶 A 更改为存储桶 B,则在接下来的一个小时里仍可能有一些日志传输到存储桶 A,但其他日志则会传输到新的目标存储桶 B。无论如何,新的设置将最终生效,并且您无需执行任何操作。

有关服务器访问日志记录的更多信息,请参阅以下主题。

本页内容: