A secret is any value that grants access on its own. The OWASP Secrets Management Cheat Sheet lists the usual set: API keys, database credentials, identity and access management permissions, SSH keys and certificates. It also observes that many organizations keep them hardcoded in plaintext in source code, and that services often share the same secret, which makes it hard to find the source of a leak (OWASP).
For a typical web product, the inventory looks like this:
| Type | Examples | Blast radius if leaked |
|---|---|---|
| Payment and billing keys | Payment processor secret keys, webhook signing secrets | Charges, refunds, customer data |
| Cloud credentials | Access keys, service account files | Everything in the account |
| Database credentials | Connection strings, admin passwords | All stored data |
| Third-party API keys | Email, SMS, search, AI model providers | Spend on your bill, data sent in your name |
| Signing material | JWT signing keys, TLS private keys, SSH keys | Impersonation of your service or users |
Not every value in a config file is a secret. Microsoft's Key Vault guidance draws the line clearly: store credentials, connection strings and access keys in the vault, and keep IP addresses, service names and feature flags in ordinary configuration (Microsoft Learn). Mixing the two makes the vault noisy and the config hard to change.



