Cloud Audit Logging

Cloud Audit Logging maintains three audit logs for each project, folder, and organization: Admin Activity, System Events and Data Access. Google Cloud Platform services write audit log entries to these logs to help you answer the questions of "who did what, where, and when?" within your Google Cloud Platform projects.

For a list of GCP services that write audit logs, see Services producing audit logs. All Cloud Platform services will eventually write audit logs.

Admin Activity logs

Admin Activity logs contain log entries for API calls or other administrative actions that modify the configuration or metadata of resources. For example, the logs record when VM instances and App Engine applications are created and when permissions are changed. To view the logs, you must have the Cloud Identity and Access Management roles Logging/Logs Viewer or Project/Viewer.

Admin Activity logs are always enabled. There is no charge for your Admin Activity audit logs. For more information, see Logging usage limits.

System Event logs

System Event logs contain log entries for when Compute Engine performs a system event. For example, each live migration is recorded as a system event. To view the logs, you must have the Cloud Identity and Access Management roles Logging/Logs Viewer or Project/Viewer.

System Event logs are always enabled. There is no charge for your System Event audit logs. For more information, see Logging usage limits.

Data Access logs

Data Access audit logs record API calls that create, modify, or read user-provided data. To view the logs, you must have the Cloud Identity and Access Management roles Logging/Private Logs Viewer or Project/Owner.

Data Access audit logs do not record the above data-access operations on resources that are publicly shared (available to All Users or All Authenticated Users) or that can be accessed without logging into GCP.

Data Access audit logs are disabled by default because they can be quite large. Enabling the logs might result in your project being charged for the additional logs usage.

BigQuery Data Access logs are handled differently from other Data Access logs. BigQuery logs are enabled by default and cannot be disabled. They do not count against your logs allotment. To enable and configure Data Access logs, see Configuring Data Access Logs.

For more information about logs allotments, see Logging usage limits.

Viewing audit logs

You can view audit log entries in your GCP project's Activity page in the GCP Console, in the Logs Viewer, in the Stackdriver Logging API, and in the Cloud SDK. You can also export audit log entries to Stackdriver Logging, or Cloud Pub/Sub.

To view the logs, you must have the IAM roles Logging/Logs Viewer for Admin Activity logs and Logging/Private Logs Viewer for Data Access logs. For more information on Stackdriver Logging roles, see Access Control.

Audit log entry structure

All audit log entries contain the name of an audit log, a resource, and a service. You can use these names to filter audit log entries:

  • Log name: Audit log entries belong to logs within projects, folders, and organizations. The log names are listed below:
   projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity
   projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_event

   folders/[FOLDER_ID]/logs/cloudaudit.googleapis.com%2Factivity
   folders/[FOLDER_ID]/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/[FOLDER_ID]/logs/cloudaudit.googleapis.com%2Fsystem_event

   organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Factivity
   organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Fsystem_event

Within a project, folder, or organization, these log names are typically abbreviated activity, system_event, and data_access.

  • Resource: Each audit log entry includes a resource of some type. For example, you can view audit log entries from a single Compute Engine VM instance or from all VM instances. For the list of resource types, see Monitored resource types.

  • Service: Services are individual products, such as Compute Engine, Cloud SQL, or Cloud Pub/Sub. Each service is identified by name: Compute Engine is compute.googleapis.com, Cloud SQL is cloudsql.googleapis.com, and so forth.

    Resource types belongs to a single service, but a service can have several resource types. For a list of services and resources, see Mapping services to resources.

For more details, see Audit Log Datatypes.

Using the Activity page

You can view abbreviated audit log entries in your project's Activity page in the GCP Console. See the page, Home > Activity. Use Filter to select the entries you want to see. The actual audit log entries might contain more information than you see in the Activity page.

Go to the Activity page

Using the Logs Viewer

You can view the details of audit log entries using the Logs Viewer in the GCP Console.

Go to the Logs Viewer page

To view audit logs in the Logs Viewer's basic viewing interface, use the menus to select a resource or resource type and then choose the log activity or data_access. For example, if you are looking for the Data Access audit logs for your Cloud Functions service, then choose resource type Cloud Function and log name data_access.

In the Log Viewer's advanced filter interface, enter an advanced logs filter that chooses the audit log entries you want to see. Following are some examples:

  • Find all the audit log entries in your project:

    logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" OR
               "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access" OR
               "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_event")
    
  • Find the Admin Activity logs for a single Compute Engine VM instance:

    resource.type = "gce_instance" AND
    resource.labels.instance_id = "[INSTANCE_ID]" AND
    logName  = "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
    

To explore specific fields of an audit log entry, look at samples in the Logs Viewer or see Audit Log Datatypes.

For more information about log filters, see Advanced logs filters.

Using the API

To retrieve audit log entries, use the Stackdriver Logging API method entries.list. Pass a filter to the method to select your audit log entries.

Using the Cloud SDK

To read log entries, use the following Cloud SDK command:

gcloud logging read [FILTER]

Use [FILTER] to select the audit log entries you want. For example:

gcloud logging read "resource.type = gce_instance AND \
    resource.labels.instance_id=[INSTANCE_ID] AND \
    logName=folders/[FOLDER_ID]/logs/cloudaudit.googleapis.com%2Factivity"

For more information on the Stackdriver Logging command-line interface, see gcloud logging.

Exporting audit logs

To export audit log entries outside of Stackdriver Logging, create a logs sink. Give the sink a filter that selects the audit log entries you want to export.

Audit log retention

Individual audit log entries are kept for a specified length of time and are then deleted. The Stackdriver Logging Quota Policy explains how long log entries are retained. You cannot otherwise delete or modify audit logs or their entries.

Audit log type Retention period
Admin Activity 400 days
Data Access 30 days
System Events 400 days

For longer retention, you can export audit log entries like any other Stackdriver Logging log entries and keep them for as long as you wish.

User identities in audit logs

Audit logs record the identity of the user performing logged actions. The identity is held in the AuthenticationInfo field of AuditLog objects.

In the following circumstances, the user identity is unavailable or is redacted:

  • All audit logs: For privacy reasons, the principal email address is redacted for all read-only operations that fail with a "permission denied" error.

  • App Engine: Identities are not collected from the legacy App Engine API.

  • BigQuery: Identities and caller IP addresses are currently redacted from the audit logs, unless at least one of the following conditions are met:

    • This is not a read-only access.
    • The user is a service account that belongs to the project.
    • The user is a member of the domain associated with the project.

    Project domain in this context is a BigQuery setting. If you would like to change the domain associated with your project, please contact BigQuery support.

    There are additional rules that apply for cross-project access:

    Here, the billing project is the project issuing the request, and the data project is the project whose resources are also accessed during the job. An example is query job in a billing project that reads some table data from the data project.

    The billing project resource ID will be redacted from the data project log unless the projects have the same domain associated with them or are in the same organization.

    Identities and caller IP addresses will be redacted from the data project log unless one of the conditions above apply, or:

    • Billing project and data project have the same domain associated with them or are in the same organization, and billing project already includes the identity and caller IP address.
    • The user has permission to run queries in the project and the action is a job.insert action.

Services producing audit logs

The table below lists the Google Cloud Platform services that write Admin Activity or Data Access audit logs. GA indicates that a log type is Generally Available for a service; Beta indicates that a log type is available, but might be changed in backward-incompatible ways and is not subject to any SLA or deprecation policy.

Compute Engine is the only service that generates System Event audit logs.

For a list of Stackdriver Logging API service names, see Mapping services to resources.

To enable Data Access logs, see Configuring Data Access Logs.

Services with audit logs Admin
Activity
logs
Data
Access
logs
App Engine GA n/a1
Application Identity4 Beta n/a1
BigQuery GA GA2
Cloud AutoML Beta Beta
Cloud Bigtable Beta n/a1
Cloud Billing Beta n/a1
Cloud Composer GA n/a1
Cloud Dataflow GA n/a1
Cloud Dataproc GA GA
Cloud Datastore6 GA GA
Cloud Deployment Manager GA GA
Cloud Data Loss Prevention API GA GA
Cloud DNS GA GA
Cloud Functions Beta Beta
Cloud Genomics Beta Beta
Cloud Identity and Access Management GA GA
Cloud Identity-Aware Proxy n/a3 GA
Cloud IoT Core GA GA
Cloud Key Management Service GA GA
Cloud Memorystore Beta Beta
Cloud Machine Learning Beta Beta
Cloud Pub/Sub Beta Beta
Cloud Source Repositories Beta Beta
Cloud Spanner GA GA
Cloud SQL GA GA
Cloud Storage5 GA GA
Compute Engine GA GA
Compute Engine Serial Port Access GA n/a1
Cloud Build GA GA
Dialogflow Enterprise Edition n/a3 Beta
Google Kubernetes Engine Beta Beta
Service Management GA n/a1
Resource Manager GA GA
Stackdriver Debugger GA GA
Stackdriver Error Reporting GA GA
Stackdriver Logging GA GA
Stackdriver Monitoring GA GA
Stackdriver Trace n/a3 GA
Stackdriver Profiler n/a3 Beta

1: This service does not produce Data Access logs.
2: BigQuery data access logs are enabled by default and do not count against your logs allotment.
3: This service does not produce Admin Activity logs.
4: Audits OAuth 2.0 client IDs and brands.
5: Does not yet include request/response information.
6: Audits requests to start managed import or export operations. Audit does not include entity-specific read/write logs for those operations.

Was this page helpful? Let us know how we did:

Send feedback about...

Stackdriver Logging