Skip to main content
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:
Policies can also limit access to working hours or to one service.

An enclave uses the secret

For irreversible secrets, such as an exchange withdrawal key. The secret never reaches a normal machine:
  1. Policy lets only one Turnkey Verifiable Cloud app export the secret, encrypted to that app’s enclave.
  2. Your service sends the app a request. The app checks it against your rules, such as an address allowlist.
  3. The app uses the secret inside the enclave, for example to sign the request, and returns or sends the result.
Your administrators approve every version of the app, so the code that holds the secret can’t change without them. See Enclave only secrets for the full setup.

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.
For short-lived cloud credentials, use your cloud’s workload identity instead of a stored secret. For certificates, use a managed private CA.

Get started

Contact us to plan a migration. We will help you sort your secrets and write the policies.