guide
Granting Telaron access to a Google Cloud project, and what it can do once you have. The first step is configuration in your project, because nothing else can succeed before it exists.
Telaron stores no credential of yours, and there is no field anywhere to paste one into. If you are looking for where the service-account key goes, that is why you cannot find it.
Instead, Telaron holds an identity of its own and mints a short-lived token scoped to your tenant. You configure your project to trust that token, and to let it act as a service account you choose. Access is something you grant and can withdraw, in your own project, with your own audit trail — rather than a secret you hand over and hope is looked after.
What this means in practice
Setup is a configuration task on your side, not an exchange of keys. Until the trust exists, every Telaron operation against the project will fail — including the validation check, which is the point of doing this first.
In your project, add a workload identity pool with an OIDC provider pointing at Telaron’s issuer. The provider’s full resource name is the audience Telaron must present, and you will give it to Telaron in the next section. Ask us for the issuer URL and the claim to match on — those are ours to give you rather than yours to guess.
Create one, or nominate an existing one. This is the identity that does the work in your project, so what it can do is exactly what Telaron can do. A dedicated account is easier to reason about and easier to revoke than reusing one that already has other jobs.
Grant the pool principal the ability to obtain tokens for the service account. Without this the exchange still succeeds and lands on a pool identity that can do nothing — which is the most common way a setup looks configured and is not.
Scope it to what you want Telaron to manage. Creating gateway instances, attaching spokes by network peering, programming routes and provisioning a load balancer each need their own permissions, so the grant follows from which of those you want rather than from a single fixed role. Grant the subset you are using and add to it later.
Both halves, or neither
An audience with no impersonation grant mints a token nothing will accept. An impersonation grant with no provider cannot be reached at all. A half-configured trust is the state worth avoiding, because it fails at a later and less obvious step than the one you got wrong.
Tell Telaron which project this is and where to go in it. A cloud account carries the provider, a name of your choosing, the project id, and two trust references: the audience your provider expects, and the service account to act as. The trust references point at things in your project. They are not secrets.
curl -X POST https://api.dev.telaron.io/api/v1/cloud-accounts/ \
-H "Authorization: Bearer $TELARON_API_KEY" \
-H "X-Tenant-ID: $TELARON_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"cloud": "gcp",
"name": "production",
"account_id": "my-gcp-project-id",
"federation_audience": "//iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/telaron/providers/telaron",
"federation_principal": "telaron-fabric@my-gcp-project-id.iam.gserviceaccount.com"
}'The audience takes the project number, not the project id
This is the one most people get wrong. The audience is the provider’s resource path, starting //iam.googleapis.com/projects/ followed by the numeric project number — not the project id you use everywhere else, and not an https:// URL. The principal, by contrast, uses the project id, because it is the service account’s email.
Command Center does the same thing with a form. Each rule below is a refusal you would otherwise meet cold:
Validation is not a formality. Telaron exchanges its own token for the pool identity, impersonates the service account you nominated, and reads the project back. A pass means the whole path works. A failure means that identity genuinely cannot see that project, or that the trust references do not match what you configured.
The message says the identity cannot read the project, and deliberately does not distinguish a project that does not exist from one it is not allowed to see. Google answers those differently and it is not Telaron’s place to tell you which of someone else’s projects exist.
Region checks are real too
A region is verified against what your project can actually use, and must be up rather than merely spelled correctly. A region that exists but is down would accept a placement and then fail it, which is worse than being told now.
Today, two things: it validates the credentials as described above, and it checks a region against what your project can use.
Building in your project is written but not running
The GCP integration can create gateway instances, provision their load balancer, peer a spoke and programme the route that steers its traffic. Nothing in the running service calls those operations yet. Registering a spoke on GCP is refused with 501 until they are. Until that changes, the single-cluster blueprint sets out the path by hand, and which step of it is not yet possible.
Separately, enrolment, policy compilation and distribution, and identity resolution work as described elsewhere in this documentation — those are the same on any cloud, because they run between the control plane and your gateways rather than against a provider API.