View a markdown version of this page

Amazon S3 的日志记录选项 - Amazon Simple Storage Service

Amazon S3 的日志记录选项

您可以记录用户、角色或 AWS 服务对 Amazon S3 资源所采取的操作,并维护日志记录以满足审计和合规性目的。为此,您可以使用服务器访问日志记录、AWS CloudTrail 日志记录,或两者的组合。我们建议您使用 CloudTrail 为您的 Amazon S3 资源记录存储桶级和对象级操作的日志。请参阅下面几节,了解有关每个选项的更多信息:

Amazon S3 为服务器访问日志提供了两种传输路径:直接传输到 Amazon S3 通用存储桶,以及传输到 Amazon CloudWatch Logs。下表中的部分功能仅通过 Amazon CloudWatch Logs 传输路径应用于服务器访问日志,如下所示。

下表列出了 CloudTrail 日志和 Amazon S3 服务器访问日志的关键属性。要确保 CloudTrail 满足您的安全要求,请查看表和注释。

日志属性 AWS CloudTrail Amazon S3 服务器日志

可以转发到其他系统(Amazon CloudWatch Logs、Amazon CloudWatch Events)

支持

将日志传输到多个目标(例如,将相同的日志发送到两个不同的存储桶)

3

对对象的子级开启日志(前缀)

No

跨账户日志传输(不同账户拥有的目标和源存储桶)

3

使用数字签名或哈希对日志文件进行完整性验证

No

默认或选择加密日志文件

3

对象操作(使用 Amazon S3 API)

支持

存储桶操作(使用 Amazon S3 API)

支持

日志的可搜索 UI

3

对象锁定参数的字段,Amazon S3 选择日志记录的属性

No

日志记录的 Object SizeTotal TimeTurn-Around TimeHTTP Referer 的字段

生命周期转换,过期,还原

批处理删除操作中键的日志记录

支持

身份验证失败1

日志得到传输的账户

存储桶拥有者 2 以及请求者

存储桶所有者以及其它使用 Amazon CloudWatch Logs 传输的账户

Performance and Cost AWS CloudTrail Amazon S3 Server Logs

Price

管理事件(第一次传输)免费;数据事件引发费用,此外还有日志存储

除存储日志的费用外,Amazon S3 存储桶传输不收取额外费用;Amazon CloudWatch Logs 传输按 CloudWatch 提供的日志费率收费3

日志传输的速度

每 5 分钟传输数据事件;每 15 分钟传输管理事件

几个小时内

日志格式

JSON

用于传输到 Amazon S3 存储桶的以空格分隔的文本记录。用于传输到 Amazon CloudWatch Logs 的结构化 JSON3

备注
  1. CloudTrail 对于未通过身份验证(其中,提供的凭证无效)或由于重定向而失败(错误代码 301 Moved Permanently)的请求不传输日志。但是,对于授权失败的请求 (AccessDenied) 和匿名用户发出的请求,它的确包括日志。

  2. 当账户对请求中的此对象没有完全访问权限时,S3 存储桶拥有者将接收 CloudTrail 日志。有关更多信息,请参阅 跨账户情形中的 Amazon S3 对象级操作

  3. 除了直接传输到 Amazon S3 存储桶外,您还可以将 Amazon S3 服务器访问日志传输到 Amazon CloudWatch Logs。通过此传输路径,您可以获得更多功能,包括转发到其它目标、传输到多个目标、跨账户和跨区域聚合、AWS KMS 加密,以及使用 CloudWatch Logs Insights 进行交互式查询。您还可以将这些日志以 Apache Iceberg 格式传输到 Amazon S3 表类数据存储服务,以进行 SQL 分析。有关更多信息,请参阅 使用服务器访问日志记录来记录请求

  4. 对于 VPC 端点策略拒绝的 VPC 端点请求,或者对于在评估 VPC 策略之前失败的请求,S3 不支持向请求者或存储桶拥有者传输 CloudTrail 日志或服务器访问日志。