Loading

Google Workspace module

Prefer to use Elastic Agent for this use case?

Refer to the Elastic Integrations documentation.

This is a module for ingesting data from the different Google Workspace audit reports APIs.

Tip

Read the quick start to learn how to configure and run modules.

It is compatible with a subset of applications under the Google Reports API v1. As of today it supports:

Google Workspace Service Description
SAML api docs help View users’ successful and failed sign-ins to SAML applications.
User Accounts api docs help Audit actions carried out by users on their own accounts including password changes, account recovery details and 2-Step Verification enrollment.
Login api docs help Track user sign-in activity to your domain.
Admin api docs help View administrator activity performed within the Google Admin console.
Drive api docs help Record user activity within Google Drive including content creation in such as Google Docs, as well as content created elsewhere that your users upload to Drive such as PDFs and Microsoft Word files.
Groups api docs help Track changes to groups, group memberships and group messages.

In order for Filebeat to ingest data from the Google Reports API you must:

This module will make use of the following oauth2 scope:

  • https://www.googleapis.com/auth/admin.reports.audit.readonly

Once you have downloaded your service account credentials as a JSON file, you can set up your module:

- module: google_workspace
  saml:
    enabled: true
    var.jwt_file: "./credentials_file.json"
    var.delegated_account: "user@example.com"
  user_accounts:
    enabled: true
    var.jwt_file: "./credentials_file.json"
    var.delegated_account: "user@example.com"
  login:
    enabled: true
    var.jwt_file: "./credentials_file.json"
    var.delegated_account: "user@example.com"
  admin:
    enabled: true
    var.jwt_file: "./credentials_file.json"
    var.delegated_account: "user@example.com"
  drive:
    enabled: true
    var.jwt_file: "./credentials_file.json"
    var.delegated_account: "user@example.com"
  groups:
    enabled: true
    var.jwt_file: "./credentials_file.json"
    var.delegated_account: "user@example.com"

Every fileset has the following configuration options:

var.jwt_file
Specifies the path to the JWT credentials file.
var.delegated_account
Email of the admin user used to access the API.
var.http_client_timeout
Duration of the time limit on HTTP requests made by the module. Defaults to 60s.
var.interval
Duration between requests to the API. Defaults to 2h.
Note

Google Workspace defaults to a 2 hour polling interval because Google reports can go from some minutes up to 3 days of delay. For more details on this, you can read more here.

var.user_key
Specifies the user key to fetch reports from. Defaults to all.
var.initial_interval
It will poll events up to this time period when the module starts. This is to prevent polling too many or repeated events on module restarts. Defaults to 24h.

This is a list of Google Workspace Reports fields that are mapped to ECS.

| Google Workspace Reports | ECS Fields | |
| --- | --- | --- |
| items[].id.time | @timestamp | |
| items[].id.uniqueQualifier | event.id | |
| items[].id.applicationName | event.provider | |
| items[].events[].name | event.action | |
| items[].customerId | organization.id | |
| items[].ipAddress | source.ip, related.ip, source.as., source.geo.| | |items[].actor.email|source.user.email, source.user.name, source.user.domain| | |items[].actor.profileId|source.user.id` | |

These are the common ones to all filesets.

For a description of each field in the module, see the exported fields section.