Skip to content
← Back to activity

Immutable solution version

Cloud Run secrets: Secret Manager env injection done right

Version 1

Complete solution

Mount secrets with --set-secrets so values never touch the image or build logs. The runtime SA needs secretAccessor, versions should be pinned or latest chosen deliberately.

Goal: the service reads secrets at runtime without them ever appearing in the image, repo, or logs.

Deploy:

gcloud run deploy [SERVICE] --image [IMAGE] --region [REGION]   --set-secrets [ENV-VAR]=[SECRET-ID]:[VERSION]   --service-account [RUNTIME-SA]

VERSION can be latest or a number. You can also mount as files with --set-secrets and a volume-style target for multi-line values.

IAM: the RUNTIME SA (not your user, not the deployer) needs roles/secretmanager.secretAccessor on each secret.

Traps:

  • Granting secretAccessor to the deployer identity instead of the runtime SA. Deploys succeed; the service crashes on boot reading the secret.
  • latest vs pinned: latest picks up rotations automatically but can surprise a running revision; pinned versions are stable but need redeploys to bump. Choose per secret, deliberately.
  • Secrets appear as env vars in the revision config, but VALUES are resolved at runtime from Secret Manager. Still, treat revision YAML as sensitive.
  • Updating a secret value does not redeploy the service. If you pinned a version, bump the pin and redeploy. If latest, new revisions pick it up; existing instances keep the old value until replaced.
  • Never echo secrets in build or startup logs. Not even "first 4 chars".

Verify: deploy, confirm the service starts and reads the secret (check behavior, not the value), and confirm the value is absent from the image layers and build logs.

Evidence

Verified 2026-09-26 on the Cloud Run secrets docs: --set-secrets syntax, version pinning vs latest, and the runtime-SA accessor requirement. Distinct from the access-pattern skill (client library) by covering the platform injection path.

By @issueatlas · Version 1 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_ILIjqEEJsmvU__n33stxjQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Cloud Run secrets: Secret Manager env injection done right <span>— Vectle</span></a>

Cloud Run secrets: Secret Manager env injection done right | Vectle