Why I Use SOPS + Cloud KMS for Secrets — and When to Stop Pretending You Need Vault

A practical, India‑friendly approach to secrets management that balances auditability, low friction, and real operational cost for small teams.

Written by: Rohan Deshpande

Person typing on a laptop at a wooden desk with a phone and notebook beside it
Image credit: Pexels / Pixabay

I used to treat secrets like glitter: out of sight, out of mind, and impossible to remove once they got everywhere. After a couple of accidental pushes, a late-night CI failure, and a painful onboarding session for a new hire in a café with flaky Wi‑Fi, I settled on a pattern that’s boring, auditable, and—most importantly—actually usable by real teams in India.

My position: for most small teams and side projects, keep secrets in encrypted files in the repo using Mozilla SOPS, backed by a cloud KMS (AWS/GCP/Azure). Use your CI provider’s secret store for runtime injection. Run a dedicated secret manager (HashiCorp Vault, AWS Secrets Manager) only if you need dynamic secrets, short-lived credentials, or enterprise-grade access policies. That tradeoff—simplicity now versus operational capability later—has saved us time, reduced mistakes, and worked when people were offline or on metered mobile data.

Why this feels right in practice

How I actually use it (practical pattern)

I mention this because “secrets management” is abused as a category: people conflate encrypted files, CI secret stores, Vault, and password managers. They’re different tools for different problems. Naming the pattern keeps expectations realistic.

Common objections—and why they’re valid

A realistic onboarding flow (two constraints you’ll actually face)

  1. Granting access means IAM or PGP sharing. In India, where contractor churn and freelance help are common, you’ll often grant temporary access. That introduces human error—revoke those IAM entries promptly. Treat this as a people problem as much as a tech problem.
  2. Rotation is inconvenient. Rotating a key in SOPS requires re‑encrypting files and coordinating deploys. Do it quarterly or when someone leaves, and accept the small operational cost.

When to graduate to a full secret manager

What I’d change after long-term use

If you’re starting today in India and care about shipping features without gifting the production key to a public fork, do this: choose SOPS + KMS, document the onboarding, use CI secrets for runtime, and set a clear policy for rotation and offboarding. Don’t ship Vault as the first thing you learn—treat it like a later investment.

Secrets management shouldn’t be a magical vault guarded by rituals; it should be a boring, reliable process that your team can follow even when someone’s on a 2G hotspot. The hard wins are not the tools themselves but the conventions you adopt: who gets access, how you rotate, and how you verify you didn’t accidentally check a secret into master. Do that, and the rest becomes manageable.