Not every secret needs a Vault server
Introduces Mozilla SOPS + age as a GitOps-native alternative to Vault for secrets that don't need to be dynamic — encrypting values in place so a Kubernetes Secret manifest is genuinely safe to commit to git.
Speaker notes
- Set up the contrast honestly: everything so far in this module (Vault) assumes a team is willing to run and operate real infrastructure. A small team with a GitOps-based deploy pipeline and no dedicated platform engineer often doesn't have that operational capacity yet — SOPS is the answer for that team, not a lesser alternative.
- Explain the actual mechanism, since it's the interesting part: SOPS encrypts a file's values but deliberately leaves its keys and structure in plaintext. This means a git diff on an encrypted secrets file still shows a reviewer *which* key changed — 'yes, DB_PASSWORD was rotated in this PR' — without ever exposing the actual value. A fully-opaque encrypted blob would destroy that reviewability entirely.
- Land the honest comparison as the actual takeaway, not a sales pitch for either tool: SOPS doesn't eliminate the need to protect a credential somewhere — the age private key still has to live in exactly one place (a CI secret, typically). What it does is concentrate that protection into one purpose-built location instead of leaving the real secret value spread across every clone of a git repository that was never designed to be a secrets store. That's a real, meaningful reduction in exposure, worth stating precisely rather than overselling as 'problem solved.'
- If pushed on when to migrate off SOPS toward Vault: the concrete trigger is needing dynamic, auto-expiring, per-instance credentials (this module's earlier slide) or centralized real-time audit of who accessed what — SOPS structurally can't provide either, since its secrets are still static once decrypted.
Deck map
01
Make security everyone's job
02
Six modules, one continuous defense
03
Security stops being a gate at the end
04
Shift-left: catch it while it's still cheap
05
Think like an attacker, on purpose
06
The cloud secures the cloud, you secure what's inside it
07
Turn the policy PDF into an enforced rule
08
Tooling alone doesn't make you DevSecOps
09
SAST, DAST, SCA: three different questions
10
SAST reads your code without ever running it
11
DAST attacks the running app like a real attacker would
12
The vulnerability three packages deep
13
CVSS tells you how bad, not whether it can reach you
14
No single tool covers the whole OWASP Top 10
15
A container image is more than your app
16
One image scan doesn't see your whole cluster
17
Five changes separate a throwaway image from a liability
18
A container is not a lightweight VM
19
What's inside the image isn't how it's run
20
Kubernetes adds a new set of who-can-do-what questions
21
Kubernetes trusts every pod by default
22
Enforce it automatically, then watch for what slips through
23
Two more names worth knowing: Kyverno and kube-bench
24
One leaked secret bypasses every other control
25
Catch it before the commit, know what to do if it leaks anyway
26
Why environment variables aren't a secrets manager
27
Every app instance gets its own credential, and it expires on its own
28
Not every secret needs a Vault server
29
Long-lived keys are a secret you have to store somewhere
30
Something has to be the first credential
31
Why attack a thousand customers when you can attack one build system
32
A misconfigured trigger can hand your secrets to a stranger's fork
33
A mutable version tag is a promise the maintainer can break
34
Scan the infrastructure definition before it's ever provisioned
35
Know exactly what's inside, prove exactly where it came from
36
One diagram, every module, in the order it runs
37
Passing an audit is not the same as being secure
38
Turn the compliance checklist into a real, running scan
39
Five functions, and which framework to start with
40
ISO 27001 asks for a system, PCI-DSS asks for specific controls
41
Compliance is largely DevSecOps, formalized
42
Every tool from this course, in one place
43
Sixty seconds before the interview
44
What you should be able to explain now