Skip to main content

SaaS security audit logs: what to record, protect and review

Plan useful SaaS audit logging for sign-ins, permission changes, exports and administrator actions while limiting sensitive data and controlling access.

In this guide

What should a SaaS security audit log contain?

An audit log is a structured record that helps an authorised reviewer understand a meaningful action: who acted, what changed, which tenant or object was involved, when it happened and whether it succeeded. It supports investigations and customer accountability, but it is not a complete security programme. OWASP recommends deciding what events matter, protecting logs from tampering and limiting sensitive information in them.

Prioritise events that change access or customer data

Start with authentication outcomes, role and policy changes, account recovery, API-key creation or revocation, data exports and deletions, billing-setting changes, security configuration and privileged support access. Add product-specific actions when a customer or investigator would need to explain them later. Avoid recording every low-value click by default.

Sources for this point: OWASP Cheat Sheet: Logging

Capture enough context to reconstruct the event

Use a consistent event name, timestamp, actor identifier, tenant identifier, target object reference, outcome, request or correlation ID and a reason or source when relevant. Record a before-and-after summary for important changes, while excluding secret values and unnecessary personal data. Use stable identifiers that support investigation without exposing names in dashboards.

Sources for this point: OWASP Cheat Sheet: Logging

Separate an audit trail from diagnostic application logs

Operational logs help engineers diagnose failures; an audit trail explains security- or business-relevant actions. They can share infrastructure, but define different access, integrity, retention and search expectations. A high-volume debug stream is a poor substitute for a durable, queryable record of a permission change or data export.

Sources for this point: OWASP Cheat Sheet: Logging
Audit event design worksheet
EventActor and tenant contextTarget / outcomeSensitive fields excludedReader and retention owner
Role changed
Customer data exported
Support access granted

How do you protect SaaS audit logs?

Restrict who can read, change or delete records

Grant log access to named operational or security roles and review it periodically. Prevent ordinary application users and the account being investigated from silently editing their own history. Separate the permission to view evidence from the permission to administer the logging pipeline.

Sources for this point: OWASP Cheat Sheet: Logging

Detect gaps, tampering and delayed delivery

Use access controls, integrity checks or protected central storage appropriate to the risk. Alert if a critical event stream stops, a sink rejects records or an unexpected principal changes logging settings. Test that an event from a high-risk action reaches the searchable store and that an investigator can locate it.

Sources for this point: OWASP Cheat Sheet: Logging

Choose retention for purpose and applicable obligations

Write down why each log is retained, who approves the period and what happens at expiry. A longer period can help an investigation but also increases privacy, breach and storage exposure. Check contracts, sector rules and current local law before applying one global period; retain evidence under a documented legal hold only through an authorised process.

Sources for this point: OWASP Cheat Sheet: Logging

How should a team use audit logs during operations?

Make important events searchable by tenant and request

Give authorised responders filters for time, event, actor, tenant and correlation ID. Keep cross-tenant search permission narrow and record who uses it. Do not put customer names, email addresses or secret material into a shared alert merely to make an event easier to recognise.

Sources for this point: OWASP Cheat Sheet: Logging

Create alerts for a small set of actionable patterns

Examples include repeated failed privileged sign-ins, a role escalation followed by a large export, or logging being disabled. Set an owner and response step for each alert. Review false positives and missed cases so the system stays useful rather than generating noise no one investigates.

Sources for this point: OWASP Cheat Sheet: Logging

Test the complete evidence path

Trigger representative actions in a test environment, then check the event fields, tenant context, ordering, access policy, alert behaviour and retention handling. Include failed actions and retries. A log schema change should be reviewed alongside the application event so a release cannot silently remove evidence responders rely on.

Sources for this point: OWASP Cheat Sheet: Logging

SaaS audit logging questions

Should audit logs contain the full before-and-after record?

Usually not by default. Record the changed fields needed to explain the action, and exclude credentials, payment data and unrelated personal information. If a full snapshot is genuinely required, assess access, encryption, retention and disclosure risk first.

Sources for this point: OWASP Cheat Sheet: Logging

Are application logs enough for a compliance audit?

That depends on the requirement and the evidence the reviewer expects. Diagnostic logs may be incomplete, mutable or retained briefly. Map each required control to an event, owner, storage location, access policy and tested retrieval process instead of assuming every log is an audit record.

How long should SaaS audit logs be kept?

There is no universal duration for every SaaS log. Set it from the purpose, applicable law, contracts, investigation needs and privacy risk, then document the decision and deletion process. Check current sector-specific duties with qualified counsel.

Can a tenant administrator see audit events?

Often they need a scoped view of their own workspace's security events, but the product should define which event details are appropriate. Enforce tenant scoping on the server and avoid exposing platform-wide events or internal investigative notes.

Sources for this point: OWASP Cheat Sheet: Authorization