Your service mesh is humming along nicely. Then someone mentions rotating a TLS key and suddenly three people are editing YAML files at midnight. If that feels familiar, you’re probably overdue for a real relationship between Envoy and GCP Secret Manager.
Envoy handles traffic security and routing at runtime. GCP Secret Manager stores and versions the credentials, certificates, and keys you do not want in a repo. Together, they can give each proxy instance secure, just‑in‑time access to secrets without humans meddling in the pipeline. The trick is wiring them so permissions and refresh cycles work smoothly, not sporadically.
At a high level, the integration looks like this: Envoy fetches sensitive configuration data from an external secrets provider instead of mounting secrets directly in a container. GCP Secret Manager acts as that provider. Authentication flows through Google IAM; Envoy’s bootstrap includes a token exchange via a workload identity or a short‑lived service account credential. The result is a clean separation between configuration logic and secret distribution. Rotate a key in Secret Manager, and every Envoy instance pulls the new version automatically at the next fetch interval.
If you are wondering how to do it safely, keep to these baseline practices:
- Grant the Envoy service account only access to the specific secret versions it needs.
- Use IAM Conditions so older builds cannot touch new secrets.
- Rotate early and often; Secret Manager versions keep history for rollback.
- Monitor secret access events with Cloud Audit Logs. Treat unusual reads like a fire drill.
- Keep runtime traces in your observability stack. They double as instant troubleshooting data when a refresh fails.
Each bullet sounds trivial until you skip one. Then you get the “why is Envoy serving expired certs again?” moment.