
In the S3 server access logging vs CloudTrail data events choice, AWS recommends CloudTrail data events for bucket and object actions. Server access logs still record two things CloudTrail skips: requests that fail authentication and lifecycle actions. If you need a complete audit trail, run both.
TL;DR:
Updated Oct 19, 2026: new title and opening, a side-by-side table, and the CloudTrail data-event price from the AWS pricing page (checked Oct 19, 2026).
Both record who did what to your S3 resources, but they are separate tools with separate coverage. AWS says you can "use server-access logging, AWS CloudTrail logging, or a combination of both." The table below condenses the comparison on AWS's logging options page.
| Property | CloudTrail data events | S3 server access logs |
|---|---|---|
| Log only a subset of objects (prefix) | Yes | No |
| Log file integrity validation | Yes | No |
| Object Lock and S3 Select fields | Yes | No |
| Authentication failures | No | Yes |
| Lifecycle transitions, expirations, restores | No | Yes |
| Delivery speed | Data events every 5 minutes | Within a few hours |
| Format | JSON | Space-delimited text (JSON in CloudWatch Logs) |
| Price | Data events billed, plus log storage | No charge beyond log storage when delivered to a bucket |
AWS recommends CloudTrail "for logging bucket-level and object-level actions for your Amazon S3 resources." Two features explain most of that advice. You can turn on CloudTrail logs for a prefix, so you log only the objects that matter. CloudTrail also validates log files "by using digital signature or hashing," which lets you prove nobody edited the logs. Server access logs offer neither.
Speed matters if you want to react while something is still happening. CloudTrail delivers "data events every 5 minutes, management events every 15 minutes." S3 server access logs arrive "within a few hours." For an alerting pipeline, that gap decides whether you catch an incident in progress or read about it the next morning.
AWS states that "CloudTrail does not deliver logs for requests that fail authentication," meaning requests with invalid credentials. Server access logs do record them. The comparison table shows the same split for "lifecycle transitions, expirations, restores," which appear only in server access logs.
So if you rely on CloudTrail alone, you have two blind spots. You won't see someone probing your bucket with bad keys, and you won't see objects that a lifecycle rule moved or deleted. Note that CloudTrail does log requests that fail authorization, such as an Access Denied on valid credentials.
The two pricing models differ enough to matter on a busy bucket. For CloudTrail, AWS says "management events (first delivery) are free; data events incur a fee, in addition to storage of logs." The CloudTrail pricing page puts that fee at $0.10 per 100,000 data events delivered. Server access logs delivered to a bucket have "no cost" beyond the storage of the logs.
Object-level reads and writes are data events. A bucket serving 10 million GET requests a month would add about $10 in CloudTrail data-event charges, before log storage. Server access logs avoid that fee, at the price of slower delivery and the missing features above.
Use CloudTrail data events when you need an audit trail for security or a compliance review. Prefix scoping keeps the bill down, integrity validation proves nobody edited the logs, and 5-minute delivery lets you alert on events. Turn on server access logs as well if you need to see failed authentication attempts or lifecycle deletions.
Server access logs alone fit a lower bar, such as traffic analysis, cost checks or debugging, where an occasional missing record is acceptable. AWS says server access log records are delivered "on a best-effort basis" and that "the completeness and timeliness of server logging is not guaranteed." That rules them out as your only security record.
If you already pay for CloudTrail data events on a busy bucket, check whether you need every object logged. A prefix such as uploads/ may cover the objects you audit for a fraction of the events.
The AIOZ Storage documentation doesn't describe server access logging, a CloudTrail-style audit service or any request-level log. If your workload needs a record of who read or changed each object, plan for that gap up front. Who is allowed to act on a bucket is a separate question, covered by AIOZ Storage access grants.
What's the difference between S3 access logs and CloudTrail?
Both record activity on S3 resources, but they capture different events at different speeds. CloudTrail is AWS's recommended option for bucket and object actions. Server access logs still catch authentication failures and lifecycle events that CloudTrail does not record.
Which one does AWS recommend?
CloudTrail, for both bucket-level and object-level actions. AWS's own comparison table still shows two gaps in CloudTrail that server access logs fill.
How fast do the logs arrive?
CloudTrail delivers data events about every 5 minutes and management events every 15 minutes. S3 server access logs arrive "within a few hours," which is too slow for anything time-sensitive.
Does CloudTrail log everything server access logs do?
No. CloudTrail doesn't capture authentication failures (invalid credentials) or lifecycle transitions, expirations and restores. Server access logs record all of them.
Which option costs more?
CloudTrail, once you log data events. They cost $0.10 per 100,000 events delivered, plus log storage. Server access logs delivered to a bucket cost nothing beyond storing the logs.
Can you use both at the same time?
Yes. AWS supports server access logging, CloudTrail, or both. Running both closes each tool's blind spots.
Does AIOZ Storage offer S3-style access logging or a CloudTrail equivalent?
Not according to its documentation, which describes no request-logging or audit-trail feature.

Distributed storage keeps data on many independent nodes that act as one system. See how it works, replication vs erasure coding, its types and trade-offs.

Egress fees are charges for data leaving a storage provider's network. See what triggers them, how to estimate them, and what AIOZ Storage's docs say.

An object storage vector database keeps vectors in the storage layer, not a cluster. See how it differs, when to pick it, and where AIOZ Storage fits in.

AIOZ Storage vector database pricing line by line: upload, storage, queries, data searched and data returned, with a worked monthly example you can reuse.

Create a bucket and upload a file on AIOZ Storage in five steps: sign up, set a passphrase, add credits, and upload. Plus what the passphrase cannot recover.

The AIOZ Storage rate limit is 100 requests per second. See what the docs do and don't say, and how to stay under it with boto3 retries and a limiter.