Your first 100 secrets are free. To store more, contact sales.
One store, one access model
Most teams keep every secret in one store: a vault server, a password manager, or a cloud secrets service. A chat webhook and an exchange withdrawal key sit side by side. Anyone who administers the store can usually read both. Turnkey gives each secret the controls it needs. Secrets are encrypted inside secure enclaves, every release is checked by policy and logged, and each release is encrypted to one recipient.Sort secrets by blast radius
What changes
Using secrets in practice
Three patterns cover most secrets. Pick one per tier.A service fetches its own secret
For pivot secrets. Each service signs in as its own Turnkey user and fetches its secrets at startup. The secret is encrypted to a key the service generates, so only that service can read it.People approve each release
For root secrets. The request waits until enough people approve. Approvers see the request, not the secret. Production database credentials need two SREs and a ticket:An enclave uses the secret
For irreversible secrets, such as an exchange withdrawal key. The secret never reaches a normal machine:- Policy lets only one Turnkey Verifiable Cloud app export the secret, encrypted to that app’s enclave.
- Your service sends the app a request. The app checks it against your rules, such as an address allowlist.
- The app uses the secret inside the enclave, for example to sign the request, and returns or sends the result.
Migration
1
Sort
List your secrets, without values. Give each one a tier, an owner, and the services that use it.
2
Set up
Create a Turnkey organization, enroll administrators with security keys, and create a user for each service. Keep the root quorum at 1 while you test, and raise it, such as to 3 of 5, before you move production secrets.
3
Move the critical secrets first
Import root and irreversible secrets with approval policies. This proves the model where it matters most.
4
Move the rest
Import the remaining secrets with a script, and switch each service to fetch its secrets at startup. See API key storage for the code.
5
Turn the old store off
When the old store shows no reads, delete its secrets and shut it down.