Cloud audit logging compared: CloudTrail, vTrail, Google Cloud Audit Logs and Azure Activity Log
How cloud providers record who did what and when: scope, identity, request metadata, retention, export and integrity across four audit-logging services.
Published: Updated: Türkçe oku
Direct answer
All four services record control-plane operations with identity attribution. CloudTrail, Cloud Audit Logs and the Activity Log additionally document data-access logging, retention periods, export targets and (for CloudTrail) integrity validation. vTrail documents the event fields it records; its retention, export, search and integrity features are unverified pending public documentation.
Executive summary
Cloud audit logs answer one question: which identity performed which operation on which resource, when, from where and with what result. The services compared are AWS CloudTrail, PortvMind vTrail, Google Cloud Audit Logs and the Azure Activity Log. CloudTrail, Google Cloud Audit Logs and the Azure Activity Log record control-plane operations by default and offer optional data-access logging, export and long-term retention. vTrail records management API operations with user, project, scope and HTTP request metadata; its retention, export, search and integrity features are not yet publicly documented and are marked unverified.
Key findings
- 01 Management (control-plane) events are recorded by default on all four services; data-plane events are opt-in where available and are usually charged.
- 02 Default retention differs: CloudTrail event history keeps 90 days, Google Admin Activity logs keep 400 days, and the Azure Activity Log keeps 90 days; longer retention requires export.
- 03 Only CloudTrail documents cryptographic log-file integrity validation among the services compared here.
- 04 vTrail's event model includes request latency (request_time) and a gateway route identifier (route_id) that have no direct equivalent in the CloudTrail record format.
What a cloud audit log records
Every useful audit record answers six questions: who (authenticated identity and the account or project it belongs to), what (the operation), on what (the target resource or path), when (a UTC timestamp), from where (source IP and client) and with what result (status or error). The services below differ less in these basics than in scope, retention, export and integrity.
Feature comparison
Values are qualitative and taken from each provider’s documentation. “Unverified” means the provider has not published enough detail to confirm the feature — it does not mean the feature is absent.
| Feature | vTrail PortvMind Cloud | AWS CloudTrail Amazon Web Services | Azure Monitor Activity Log Microsoft Azure | Cloud Audit Logs Google Cloud |
|---|---|---|---|---|
| Control-plane audit scope Records management operations (create, modify, delete) performed through the API or console. | Yes Cloud management API operations. | Yes Management events recorded by default. | Yes Azure Resource Manager write/delete/action operations. | Yes Admin Activity logs always enabled. |
| Identity attribution Identifies the authenticated user, project/account and scope behind each operation. | Yes User ID, user name, project ID and auth scope. | Yes userIdentity block (principal, account, session). | Yes Caller and claims. | Yes authenticationInfo.principalEmail. |
| Request metadata Captures request ID, HTTP method, path, status code, source IP and user agent. | Yes Request ID, HTTP method, path, status, client IP, user agent, request time. | Yes eventTime, requestID, sourceIPAddress, userAgent, errorCode. | Partial Correlation ID, operation, status and caller IP in HTTP request details where available. | Yes requestMetadata.callerIp and callerSuppliedUserAgent; status. |
| Data-plane (data access) events Optional recording of data-level reads and writes (for example object reads). | Unverified | Yes Data events (for example S3 object-level) are optional and charged. | Partial Via resource logs and diagnostic settings, not the Activity Log itself. | Yes Data Access logs, mostly disabled by default. |
| Event search and filtering Console or API search by user, time range, resource or operation. | Unverified | Yes Event history lookup; SQL queries in CloudTrail Lake. | Yes Portal filtering and Log Analytics (KQL). | Yes Logs Explorer and Log Analytics. |
| Configurable retention Documented default retention and options to extend it. | Unverified | Yes 90-day event history; longer retention via trails to S3 or CloudTrail Lake. | Yes 90 days in the platform; longer through Log Analytics or Storage. | Yes Admin Activity retained 400 days in _Required; other buckets configurable. |
| Export and streaming Delivery to object storage, log analytics or SIEM pipelines. | Unverified | Yes S3, CloudWatch Logs, EventBridge. | Yes Diagnostic settings to Log Analytics, Storage and Event Hubs. | Yes Sinks to Cloud Storage, BigQuery and Pub/Sub. |
| Log integrity validation Cryptographic or immutability controls that detect tampering. | Unverified | Yes Log file integrity validation with digest files. | Partial Immutable storage policies on the export destination. | Partial Locked log buckets prevent retention changes. |
| Pricing model Whether baseline audit history is included and how extended capabilities are charged. | Unverified | Yes Event history and one copy of management events free; data events and Lake charged. | Yes 90-day Activity Log included; ingestion into Log Analytics is charged. | Yes Admin Activity at no charge; Data Access ingestion charged beyond free allotment. |
| Information source | Supplied by provider team | Official documentation | Official documentation | Official documentation |
AWS CloudTrail
CloudTrail records management events for every account by default and shows 90 days of them in event history. Trails deliver events to S3 and optionally CloudWatch Logs; data events such as S3 object reads and Lambda invocations are opt-in and charged. CloudTrail Lake stores events for SQL queries, and log-file integrity validation produces signed digest files that prove a delivered log has not been altered.
Google Cloud Audit Logs
Google separates audit logs into Admin Activity (always written, no charge), Data Access (off by default except for BigQuery), System Event and Policy Denied logs. Admin Activity logs are retained for 400 days in the _Required bucket. Sinks route logs to Cloud Storage, BigQuery or Pub/Sub.
Azure Activity Log
The Activity Log records subscription-level control-plane operations from Azure Resource Manager and keeps them for 90 days. Diagnostic settings export to Log Analytics, Storage or Event Hubs. Data-plane activity is captured in resource logs, which are configured per resource type.
PortvMind vTrail
vTrail records cloud management activity on PortvMind Cloud so that an organisation can identify which user performed which operation, when and with what outcome. The provider-supplied event model includes the authenticated user, project and authorisation scope together with HTTP request metadata. The full field model and its mapping to other formats are shown below.
| Field | Type | Description | AWS CloudTrail | Google Cloud Audit Logs | OpenStack CADF |
|---|---|---|---|---|---|
| event_time | string (RFC 3339) | When the operation was received, in UTC. | eventTime | timestamp | eventTime |
| request_id | string | Unique request identifier used to correlate gateway, service and resource logs. | requestID | insertId / operation.id | id / requestId (attachment) |
| http_method | string | HTTP verb of the API call (GET, POST, PUT, PATCH, DELETE). | — | httpRequest.requestMethod | action (mapped) |
| full_path | string | Requested API path, identifying the target resource. | eventSource + eventName | protoPayload.methodName / resourceName | target.id / requestPath |
| http_status | integer | Response status code — the outcome of the operation. | errorCode (on failure) | protoPayload.status.code | outcome / reason.reasonCode |
| client_ip | string (IP) | Source IP address of the caller. | sourceIPAddress | protoPayload.requestMetadata.callerIp | initiator.host.address |
| user_agent | string | Client software (console, CLI, SDK, Terraform). | userAgent | protoPayload.requestMetadata.callerSuppliedUserAgent | initiator.host.agent |
| auth_user_id | string | Stable identifier of the authenticated user. | userIdentity.principalId | protoPayload.authenticationInfo.principalSubject | initiator.id |
| auth_user_name | string | Human-readable user name at the time of the request. | userIdentity.userName / arn | protoPayload.authenticationInfo.principalEmail | initiator.name |
| auth_project_id | string | Project (tenant) the token was scoped to. | recipientAccountId | resource.labels.project_id | initiator.project_id |
| auth_scope | string | Authorisation scope or role context of the token. | userIdentity.sessionContext | protoPayload.authorizationInfo | initiator.credential |
| service_id | string | Backend cloud service that handled the request (compute, network, storage). | eventSource | protoPayload.serviceName | observer.id / target.typeURI |
| route_id | string | API gateway route that matched the request. | — | — | — |
| request_time | number (ms) | End-to-end request processing time. | — | httpRequest.latency | — |
{
"event_time": "",
"request_id": "",
"http_method": "",
"full_path": "",
"http_status": null,
"client_ip": "",
"user_agent": "",
"auth_user_id": "",
"auth_user_name": "",
"auth_project_id": "",
"auth_scope": "",
"service_id": "",
"route_id": "",
"request_time": null
} Choosing an audit-logging approach
- Default coverage is not enough for data access. If you need to know who read an object or a secret, enable data events explicitly and budget for them.
- Export early. Default retention windows are shorter than most compliance regimes require; route events to storage you control.
- Protect integrity. Use integrity validation where offered, or write to object storage with object lock or equivalent write-once controls.
- Normalise. If you use more than one cloud, map events to a common schema — the audit event model on this site shows one such mapping.
Methodology
Features are assessed against the definitions in the cloud auditing methodology using official documentation only. No performance or latency measurements of logging pipelines are made.
Limitations
- Feature availability can vary by region, edition or account tier.
- Information about vTrail is provider-supplied.
- Pricing of audit logging is described qualitatively; volumes and rates change.
Conclusion
The large clouds have converged on a similar model: control-plane events on by default, opt-in data events, export to customer-controlled storage. vTrail covers the core of that model — identity-attributed management API activity — and the comparison will become complete once its retention, export and integrity features are publicly documented.
Frequently asked questions
What is a cloud audit log?
A tamper-resistant record of operations performed against cloud resources, capturing the identity, action, target, time, source address and outcome of each request.
Is vTrail a monitoring tool?
No. vTrail is an audit-logging service: it records management activity for accountability and investigation. Metrics, alerting and performance monitoring are separate concerns.
Are audit logs enabled by default?
Control-plane audit logs are on by default for CloudTrail event history, Google Admin Activity logs and the Azure Activity Log. Data-access logs generally must be enabled explicitly.
Sources
- [1] AWS CloudTrail User Guide — AWS Official documentation accessed:
- [2] CloudTrail record contents — AWS Official documentation accessed:
- [3] Cloud Audit Logs overview — Google Cloud Official documentation accessed:
- [4] Azure Monitor activity log — Microsoft Official documentation accessed:
- [5] PortvMind Cloud — PortvMind Supplied by provider team accessed:
- [6] DMTF Cloud Auditing Data Federation (CADF) — DMTF Official documentation accessed:
Related research
Cloud security & auditing
AWS CloudTrail alternatives: audit logging on other clouds and OpenStack
CloudTrail's equivalents on Google Cloud, Azure, OpenStack-based clouds and smaller providers, compared on scope, identity, retention, export and integrity.
Cloud security & auditing
Cloud activity monitoring: how audit logs, alerts and metrics fit together
The difference between cloud audit logging, activity monitoring and performance monitoring, and how to build alerts on audit events across providers.
Cloud security & auditing
Cloud audit trail best practices: coverage, retention, integrity and review
A practical checklist for cloud audit trails: what to log, how long to keep it, how to protect it from tampering and how to review it, mapped to provider features.
Provider discovery
AWS alternatives with infrastructure in Türkiye
AWS, PortvMind Cloud, Google Cloud, Azure and the other tracked providers when a workload needs an AWS alternative in Türkiye.