Create a Least-Privilege GCP Service Account for SigNoz

SigNoz Cloud - This page applies to SigNoz Cloud editions.
Self-Hosted Enterprise - This page applies to self-hosted SigNoz with an active license.

SigNoz needs a dedicated service account to act as the single identity for the resources the integration runs, so all the access it needs is granted and audited in one place. This guide enables the required APIs and creates that account. It is used by:

  • The OpenTelemetry Collector (step 3). The Cloud Run service runs as this account, so it authenticates to Google APIs automatically (no key files).
  • The Cloud Monitoring API. The Collector reads metrics as this account across every project you monitor, which is why it needs roles/monitoring.viewer on each.

Before you start, decide your Deployment Project ID (the project where the Collector will run) and the list of Projects to Monitor. These are two of the four connection fields you enter when you connect your GCP account.

Prerequisites

  • A GCP account with permission to enable APIs, create service accounts, and grant IAM roles in your deployment project and every project you want to monitor. The Owner or Editor role on those projects is sufficient. If you use custom roles, you need resourcemanager.projects.setIamPolicy, iam.serviceAccounts.create, and serviceusage.services.enable on the project, plus iam.serviceAccounts.actAs on the service account you create here (granted through Service Account User, roles/iam.serviceAccountUser) so you can attach it to the Cloud Run service in step 3.
  • The gcloud CLI installed and authenticated (gcloud auth login), if you prefer commands over the Console. You can also run every gcloud command from Cloud Shell in the browser.

Step 1: Enable the required APIs

Enable these APIs in your deployment project:

APIWhy it's needed
Cloud Run Admin API (run.googleapis.com)Deploy and run the Collector
Secret Manager API (secretmanager.googleapis.com)Store the Collector config the service reads at startup
Cloud Monitoring API (monitoring.googleapis.com)Read metrics into the Collector

In every monitored project that is not the deployment project, also enable the Cloud Monitoring API so its metrics are reachable.

  1. In the Google Cloud Console, select your deployment project in the project picker.
  2. Go to APIs & Services > Enabled APIs & services > + Enable APIs and services.
  3. Search for each API in the table above and click Enable.

See Enabling an API for details.

Step 2: Create the integration service account

Create one service account in your deployment project. The Collector runs as this account and authenticates to the Monitoring API with it.

  1. In your deployment project, go to IAM & Admin > Service Accounts > + Create service account.
  2. Set Service account name to signoz-integration. GCP generates the email signoz-integration@<deployment-project-id>.iam.gserviceaccount.com.
  3. Click Create and continue, then Done. You grant roles in the next step.

Step 3: Grant metrics permission on each monitored project

To read metrics through the Monitoring API, the service account needs the Monitoring Viewer role (roles/monitoring.viewer) on each project you want to monitor. This role is read-only: it grants monitoring.timeSeries.list and nothing that can modify your resources.

For each monitored project:

  1. Select the monitored project in the project picker.
  2. Go to IAM & Admin > IAM > + Grant access.
  3. In New principals, paste signoz-integration@<deployment-project-id>.iam.gserviceaccount.com.
  4. In Role, select Monitoring > Monitoring Viewer.
  5. Click Save.

Permission summary

After this guide, signoz-integration holds:

IdentityRoleScopePurpose
signoz-integration service accountroles/monitoring.viewerEach monitored projectRead metrics via the Monitoring API

One more role is granted later, in step 2 of Deploy the Collector:

IdentityRoleScopePurpose
signoz-integration service accountroles/secretmanager.secretAccessorThe Collector config secretRead the Collector config at startup

Next step

With APIs enabled and the service account ready, connect your GCP account in SigNoz.

Get Help

If you need help with the steps in this topic, please reach out to us on SigNoz Community Slack. If you are a SigNoz Cloud user, please use in product chat support located at the bottom right corner of your SigNoz instance or contact us at cloud-support@signoz.io.

Is this page helpful

Last updated—August 03, 2026

Edit on GitHub