Google Cloud
The google-cloud provider gives sandboxes native GCP credentials so
any Google Cloud SDK works out of the box — Cloud Storage, BigQuery, Drive,
Maps, Discovery Engine, or any other GCP API. A GCE metadata server emulator
on loopback provides credential placeholders that the
sandbox proxy resolves to real tokens at request time. The sandbox process
never holds a real GCP credential.
Quick Start
If you already have gcloud configured with Application Default Credentials,
create a provider with automatic credential refresh in one command:
--from-gcloud-adc reads your ADC file, configures OAuth2 refresh on the
gateway, and mints the first access token before the command returns. The
gateway rotates the token automatically — no manual refresh needed.
Authentication Flows
Two credential flows are supported. Choose based on your environment.
Application Default Credentials (gcloud ADC)
Use credentials from gcloud auth application-default login. The gateway
exchanges the refresh token for short-lived access tokens automatically.
Configure credential refresh with the ADC JSON fields:
Find these values in your ADC file at
~/.config/gcloud/application_default_credentials.json.
Trigger the first token mint:
Service Account Key
Use a GCP service account JSON key file. The gateway signs JWTs and
exchanges them for access tokens using the google-service-account-jwt
strategy.
Configuration Keys
Set these with --config key=value during provider creation:
How It Works
When a sandbox starts with the google-cloud provider attached:
- The gateway mints a fresh GCP access token and stores it in the sandbox proxy’s credential resolver.
- A loopback HTTP server on
127.0.0.1:8174emulates the GCE instance metadata API, serving credential placeholders (not real tokens) to GCP SDKs. The sandbox process never holds a real GCP credential. - When the SDK makes an API call, it sends the placeholder in the
Authorizationheader. The sandbox proxy TLS-terminates the outbound connection, resolves the placeholder to the real token, and forwards the request to GCP. - When the token approaches expiry, the gateway refreshes it. The proxy’s resolver is updated atomically — subsequent API calls use the new token automatically.
Configuration values (project_id, region, service_account_email)
are visible in plain text inside the sandbox — they appear as
environment variables and are served by the metadata endpoint. These are
non-secret identifiers, not credentials. Access tokens are never exposed;
only placeholders reach the sandbox process.
Injected Environment Variables
The provider automatically injects these into the sandbox. Non-secret vars are resolved to real values at process spawn time; token vars stay as placeholders for proxy-time resolution.
Using with GCP APIs
The metadata emulator serves tokens with the cloud-platform OAuth2 scope,
which grants access to any GCP API the underlying service account has IAM
permissions for. Add the target API hosts to your sandbox network policy:
Or update a live sandbox directly:
Network Policy
The google-cloud provider type does not include any network policy
endpoints by default. You must add endpoint rules to your sandbox policy
for each GCP API the sandbox needs to reach. See “Using with GCP APIs”
above for an example.