Overview
Google Workspace is an ownership and cloud resources platform.
Integrating Cortex with Google allows you to:
Automatically discover and track ownership of Google entities
Pull in Service Level Objectives (SLOs) from Google Cloud Observability, and view this information on entity pages
Create Scorecards that track progress and drive alignment on projects involving your Google resources and teams
For information on configuring Google SSO for logging in to Cortex, see the Google SSO documentation.
How to configure Google with Cortex
Prerequisites
Before getting started:
Prerequisite 1: Configure a Google service account and copy its client ID.
Create a Google service account.
In the Advanced settings, enable Domain-wide Delegation.
Under the Domain-wide Delegation setting, copy the client ID and store it in a secure location; you will need this in the next steps.
The service account should have the following permissions for each project to enable Google Cloud resources:
Google service account permissions
AI Platform → AI Platform Viewer, Dataform Viewer, Cloud Storage for Firebase Viewer, Data Catalog Viewer, Vision AI Viewer, Notebooks Viewer, Dataflow Viewer
Apigee → Cloud Api Hub Viewer
App Engine → App Engine Viewer
Artifact Registry → Artifact Registry Reader
BigQuery → BigQuery Metadata Viewer
BigQuery Connection → BigQuery Connection User
Cloud Asset → Cloud Asset Viewer
Cloud Asset → ListResource
Note: This permission is necessary to run services and jobs.
Cloud Functions → Cloud Functions Viewer
Cloud Pub/Sub → Pub/Sub Viewer
Cloud Resource Manager → Browser
Cloud Run → Cloud Run Viewer
Cloud SQL → Cloud SQL Viewer
Cloud Storage → Storage Admin
Composer → Composer User
Compute Engine, VM Instances → Compute Viewer
Kubernetes Engine → Kubernetes Engine Viewer
Memorystore Memcached → Cloud Memorystore Memcached Viewer
Memorystore Redis → Cloud Memorystore Redis Viewer
Monitoring → Monitoring Viewer
Service Accounts → View Service Accounts
Spanner → Cloud Spanner Viewer
VM Instances Vulnerabilities → OS VulnerabilityReport Viewer
VPC Serverless Connector → Serverless VPC Access Viewer
If you'd like to create a custom role with the minimum permissions required to enable this feature, add the following:
Prerequisite 2: Configure Google Admin SDK API
Enable the Google Admin SDK API.
Prerequisite 3: Configure Google Cloud resource project permissions
For Google Cloud resources, in each project, enable the following:
For each project in Vertex AI, enable the following:
Step 1: Configure the integration in Google
In the G Suite admin console, navigate to Security > API Controls > Manage Domain Wide Delegation. Click Add new.
Add the client ID you obtained in Prerequisite 1, and include the following scopes:
https://www.googleapis.com/auth/admin.directory.group.readonlyhttps://www.googleapis.com/auth/admin.directory.group.member.readonly
Navigate to the service account you created for this integration. Click Keys, then generate a key in JSON format.
Navigate to Admin Roles > Groups Reader and expand the "Admins" panel.
Click Assign service accounts then enter the email of the service account you created for this integration.
Step 2: Configure the integration in Cortex
In Cortex, navigate to the Google settings page:
Click Integrations from the main nav. Search for and select Google.
Click Add configuration.
Configure the Google integration form:
Domain: Enter your Google domain.
Service account email: Enter the email address for the service account.
Credentials JSON: Enter the service account JSON key you created in the previous steps.
Click Save.
By default, a service will have dependencies on any resource with Google Cloud tag label = "service" and tag value = the service's Cortex tag. After saving your integration, you may customize the tag key name here by entering a new name into the Custom label key field. Leave it blank to use "service" as the key name.
Supported Google entity types
Cortex supports pulling in the following entity types from Google:
Supported Google entity types
Google Cloud Vertex AI Batch Prediction Job
Google Cloud Vertex AI Dataset
Google Cloud Vertex AI Endpoint
Google Cloud Vertex AI Featurestore
Google Cloud Vertex AI Index
Google Cloud Vertex AI Model
Google Cloud Vertex AI Model Deployment Monitoring Job
Google Cloud Vertex AI Notebooks Instance
Google Cloud Vertex AI Pipeline Job
Google Cloud Vertex AI Platform Index Endpoint
Google Cloud Vertex AI Specialist Pool
Google Cloud Vertex AI Study
Google Cloud Vertex AI Tensorboard
Google Cloud Vertex AI Training Pipeline
Google Cloud Vertex AI Vision Application
Google Cloud Vertex AI Vision Cluster
Google Cloud Vertex AI Vision Index Point
Google Cloud Vertex AI Vision Operator
Google Cloud Vertex AI Vision Processor
Google Cloud Apigee Api
Google Cloud Apigee Instance
Google Cloud App Engine Service
Google Cloud Artifact Registry Repository
Google Cloud BigQuery Connection
Google Cloud BigQuery
Google Cloud Composer Environment
Google Cloud Functions
Google Cloud Kubernetes Engine Clusters
Google Cloud Kubernetes Engine Operations
Google Cloud IAM Service Account
Google Cloud Instance Group
Google Cloud HTTP(S) Load Balancing
Google Cloud Memorystore Memcached
Google Cloud Memorystore Redis
Google Cloud Project
Google Cloud Run Job
Google Cloud Run Service
Google Cloud Spanner Instance
Google Cloud Spanner Instance Config
Google Cloud SQL
Google Cloud Storage
Google Cloud Pub/Sub Topics
Google Cloud VM Instances
Google Cloud VPC Serverless Connector
How to connect Cortex entities to Google
Enable automatic import of Google entities
You can configure automatic import from Google Cloud. Note that this setting does not include team entities.
In Cortex, navigate to Settings > Entities > General.
Next to Auto import from AWS, Azure, and/or Google Cloud, click the toggle to enable the import.\

Import teams from Google
See the Create teams documentation for instructions on importing entities.
Automatic ownership of Google entities
Cortex can use Google Groups as an ownership provider, automatically syncing memberships from any Google Group mailing list.
Automatic Google dependency discovery
By default, Cortex will try to automatically discover dependencies between your entities and Google Cloud resources with a matching label. By default the label key that will be matched is service, however you can customize this key value in the Google Cloud Settings page.
If you'd like to explicitly define these Google Cloud dependencies, the x-cortex-dependency field should be a map, defined as follows:
Editing the entity descriptor
Groups
The value for name should be the full group email as defined in Google Groups.
Entities
Cortex uses the resource name and project ID to look up catalog entities in your Google Cloud account. Function resource names should be of the format location/function
SLOs
The serviceID value is the value of the Unique ID listed on the service page in Google Cloud Observability.
Using the Google integration
View Google Cloud Observability data in entity pages
After integrating with Google, you will see data from Google Cloud Observability on entity details pages:
On an entity's overview page, see an overview of SLOs for the entity.
Click Monitoring > Google in an entity's sidebar to see more information about Google SLOs, including the SLO name, its targets, its status, the current value for that entity, and the period of time the SLO is being calculated for. For example, if the time listed is "7 days ago," then the SLO is looking at the time range starting 7 days ago to now.
Scorecards and CQL
With the Google integration, you can create Scorecard rules and write CQL queries based on GCP details, Google Cloud Observability SLOs, and Google teams.
See more examples in the CQL Explorer in Cortex.
GCP details
Get the GCP details for the entity.
Definition: gcp.details()
Examples
A Scorecard might include a rule to verify that an entity has GCP details:
You might include a rule to check whether any labels on the GCP recourse are titled origin:
SLOs
SLOs associated with the entity via ID or tags. You can use this data to check whether an entity has SLOs associated with it, and if those SLOs are passing.
Definition: slos: List<SLO>
Example
In a Scorecard, you can use this expression to make sure an entity is passing its SLOs:
Use this expression to make sure latency Service Level Indicator (SLI) value is above 99.99%:
Ownership CQL
All ownership details
A special built-in type that supports a null check or a count check, used to enforce ownership of entities.
Definition: ownership: Ownership | Null
Example
An initial level in a security Scorecard might include a rule to ensure an entity has at least one team as an owner:
All owner details
List of owners, including team members and individual users, for each entity
Definition: ownership.allOwners()
Example
The Scorecard might include a rule to ensure that entity owners all have an email set:
Team details
List of teams for each entity
Definition: ownership.teams(): List<Team>
Example
The Scorecard might include a rule to ensure that an entity owners all have a description and are not archived:
View integration logs
This feature is available to Cortex cloud customers.
On the integration settings page, click the Logs tab to view logs from the last 7 days. Learn more in Troubleshooting with integration logs.
Background sync
Cortex conducts an ownership sync for Google teams every day at 9 a.m. UTC.
Troubleshooting and FAQ
The GCP integration only supports a single service account. Can I work around this?
By default, GCP service accounts are restricted to the project they were created in. If other projects don’t explicitly allow that service account to access their resources, Cortex can’t collect data from them. To work around this, you can configure a principal service account and associate it with multiple projects in GCP. Once the service account is linked to other projects, Cortex can use that service account to pull data from multiple GCP projects.
After creating a service account that is linked to a project, open your second project in GCP and go to IAM & Admin > IAM > Click +Add. Using the service account ID that you already created, add a principal to the project. Repeat these steps for each project.
Still need help?
The following options are available to get assistance from the Cortex Customer Engineering team:
Email: [email protected], or open a support ticket in the in app Resource Center
Slack: Users with a connected Slack channel will have a workflow added to their account. From here, you can either @CortexTechnicalSupport or add a
:ticket:reaction to a question in Slack, and the team will respond directly.
Don’t have a Slack channel? Talk with your Customer Success Manager.
Last updated
Was this helpful?