Documentation Index
Fetch the complete documentation index at: https://docs.crewai.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This guide walks you through configuring Google Cloud Secret Manager as a secret provider for your CrewAI Platform organization, using service account credentials. By the end, CrewAI Platform will be able to read secrets stored in your Google Cloud project and inject them as environment variable values at runtime.This guide covers the static credentials path — secrets are resolved at deploy time and baked into the deployment image. Rotated values require a re-deploy. If you want rotation-aware secrets that update on every automation kickoff, see GCP Workload Identity Federation.
This guide covers the GCP-side configuration and the credential setup in CrewAI Platform. To then reference a secret from an environment variable, see Using the Secrets Manager.
Prerequisites
Before starting, make sure you have:
-
A Google Cloud project with the Secret Manager API enabled. Enable it in the APIs & Services console or via
gcloud: - Permission in the project to create service accounts, grant IAM roles, and (if needed) create secrets.
-
A CrewAI Platform organization where your user has the
secret_providers: managepermission. See Permissions (RBAC).
Step 1 — Create a Service Account
A service account is the GCP-side identity CrewAI Platform will authenticate as. In the IAM & Admin → Service Accounts console, click Create Service Account.- Service account name:
crewai-secrets-reader - Service account ID: auto-fills from the name (e.g.
crewai-secrets-reader@YOUR_PROJECT_ID.iam.gserviceaccount.com) - Description (optional): “Read-only access to Secret Manager for CrewAI Platform”
Step 2 — Grant Secret Manager Access
CrewAI Platform needs permission to list and read secrets in your project. Use one of two scopes — project-wide for simplicity, or per-secret for least privilege.- Project-wide (simpler)
- Per-secret (least privilege)
In the IAM console, click Grant Access and:
- New principals: the service account’s email from Step 1.
- Role: Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor).
gcloud:Step 3 — Create a Service Account Key
Open the service account from Step 1 in the IAM & Admin → Service Accounts console.- Click the Keys tab.
- Click Add Key → Create new key.
- Key type: JSON.
- Click Create. The browser downloads a JSON file — keep it secure; it cannot be re-downloaded.
gcloud:
Step 4 — Add the Credential in CrewAI Platform
In CrewAI Platform, navigate to Settings → Secret Provider Credentials and click Add Credential. Fill the form:- Name: A descriptive name, e.g.
gcp-prod. - Provider:
Google Cloud Secret Manager. - Project ID: Your GCP project ID (e.g.
my-crewai-prod). - Service Account JSON: Paste the entire contents of the JSON file you downloaded in Step 3.
- (Optional) Check Set as default credential for this provider. The default credential is used by environment variables that reference GCP secrets without specifying a credential explicitly.
Step 5 — Create at Least One Secret in GCP
If you don’t already have secrets in GCP Secret Manager, create one now so you can verify the connection in Step 6. In the Secret Manager console, click Create secret.- Name: A unique name, e.g.
openai-api-key. - Secret value: Either paste a raw value or upload a file.
- Leave the rotation, replication, and other settings at their defaults unless you have a specific requirement.
gcloud:
JSON-key reference syntax. GCP Secret Manager treats secret values as opaque blobs. If your secret value happens to be a JSON string, CrewAI Platform can extract a single field using the
secret-name#json_key syntax (e.g. database-credentials#password). See Using the Secrets Manager for details.Step 6 — Test the Connection
Back in CrewAI Platform, on the Secret Provider Credentials page, find the credential you just created and click Test Connection. A success toast confirms that CrewAI Platform can authenticate to GCP and read secrets from your project. If the test fails, check the most common causes:| Symptom | Likely cause |
|---|---|
PERMISSION_DENIED on listing secrets | Service account is missing roles/secretmanager.secretAccessor, or you scoped it per-secret (list is not granted). Re-check Step 2. |
PERMISSION_DENIED on secretmanager.secrets.access | Same as above, but for a specific secret. Confirm the service account has accessor role on the secret in question. |
unauthorized_client / invalid_grant | The pasted Service Account JSON is invalid, expired, or for a deleted service account. Re-create the key (Step 3) and re-paste. |
Project ID does not match | The Project ID field in CrewAI Platform doesn’t match the project that owns the service account / secrets. Re-check Step 4. |
API not enabled | Secret Manager API isn’t enabled on the project. See Prerequisites. |
Next Steps
Now that GCP is connected, head to Using the Secrets Manager to:- Grant org members the right permissions to use (or manage) Secrets Manager.
- Reference your GCP secrets from CrewAI Platform environment variables.
