gcloud script
sets it up.
The service account only needs
roles/viewer + roles/iam.securityReviewer —
both read-only. TigerGate can never create, modify, or delete resources in
your project.Before you start
In TigerGate, go to Integrations → Cloud Providers, choose Add Provider → Google Cloud Platform. You’ll fill in two required values once the service account exists:| Field | What it is |
|---|---|
| Project ID | The GCP project TigerGate scans (e.g. my-project-12345). Read from the key’s own project_id if omitted here. |
| Service Account JSON | The downloaded key file for the service account created below — pasted in full. |
1. Create the service account
Grant the two read-only roles
roles/viewer covers general resource read access; roles/iam.securityReviewer
adds the IAM-policy read access the posture checks and exposure graph need.2. Connect it in TigerGate
Paste the Project ID + Service Account JSON
Under Integrations → Cloud Providers, add a Google Cloud Platform
connection: enter the Project ID and paste the full contents of
tigergate-cspm-key.json into Service Account JSON.Test
Click Test. TigerGate mints a token from the key and does a live Cloud
Resource Manager
projects.get call to confirm the connection works — or
tells you the exact reason (malformed key, disabled service account, wrong
project ID) so you can fix it before saving.Multiple projects (GCP organization)
To scan every project in an organization instead of one, bind the same two roles at the organization level and grant Cloud Asset Inventory read access so TigerGate can enumerate projects:organization_id / projects in the credentials), but the SaaS connect form
only exposes a single Project ID. To scan a whole organization, contact
support (or, if you’re self-hosting, set organization_id in the connection
credentials).
Alternative: impersonation / Application Default Credentials
The scanner can also skip a long-lived JSON key entirely — authenticating via Application Default Credentials (use_adc) and, optionally, an
impersonation target service account (impersonate_account). Neither is
exposed in the SaaS dashboard form; contact support if you’re running TigerGate
on-prem and want to use it.
Troubleshooting
| Scan/Test error | Cause | Fix |
|---|---|---|
PERMISSION_DENIED on the Cloud Resource Manager check | Role bindings missing or not yet propagated | Re-run the add-iam-policy-binding commands; IAM changes can take a minute to propagate |
Service Account JSON is not valid JSON / missing client_email or private_key | Key file was truncated or edited when pasted | Re-download the key with gcloud iam service-accounts keys create and paste the full file contents |
DECODER routines::unsupported or similar key-parsing error | The private key in the JSON is corrupted (partial copy/paste, wrong file) | Re-download a fresh key — don’t hand-edit the JSON |
| GCP project ID is required | Neither the form’s Project ID nor the key’s own project_id field is set | Fill in Project ID explicitly |
| Scan runs but few findings | Only roles/viewer bound, not roles/iam.securityReviewer | Bind both roles (step 2 above) |