A system for distributing and managing secrets

What is Keywhiz?

Keywhiz is a secret management and distribution service that is now available for everyone. Keywhiz helps us with infrastructure secrets, including TLS certificates and keys, GPG keyrings, symmetric keys, database credentials, API tokens, and SSH keys for external services — and even some non-secrets like TLS trust stores. Automation with Keywhiz allows us to seamlessly distribute and generate the necessary secrets for our services, which provides a consistent and secure environment, and ultimately helps us ship faster.

Keywhiz is a tool in the Secrets Management category of a tech stack.

Keywhiz is an open source tool with 2.08K Github Stars and 163 Github Forks. Here’s a link to Keywhiz's open source repository on Github

Why people like Keywhiz

Here’s a list of reasons why companies and developers use Keywhiz.

Add a one-liner

Keywhiz's Features

  • Keywhiz Server provides JSON APIs for accessing and managing secrets. It is written in Java and based on Dropwizard.
  • KeywhizFs is a FUSE-based file system, providing secrets as if they are files in a directory. Transparently, secrets are retrieved from a Keywhiz Server using mTLS with a client certificate.
  • Presenting secrets as files makes Keywhiz compatible with nearly all software. Outside of Keywhiz administration, consumers of secrets only have to know how to read a file.
  • KeywhizFs stores all secrets in memory only and never persisted to disk. If KeywhizFs is unmounted or the server loses power, all secrets will be safely removed from that server.
  • To mitigate a Keywhiz Server outage, KeywhizFs maintains a local cache of previously accessed secrets. Unless the server is rebooted or KeywhizFs unmounted, applications can happily continue accessing secrets previously accessed.
  • Keywhiz CLI is a Java program for Keywhiz administration. Clients, secrets, and groups can be queried, added, removed, or associated with each other. Users can authenticate and use the CLI.
  • Keywhiz UI is web app for Keywhiz administration, similiar to Keywhiz CLI. The UI is built with AngularJS. Users can authenticate and use the UI.
  • Keywhiz makes heavy use of mTLS and X509 certificates. It can even help distribute and rotate them for other services! There is the assumption of a PKI system though. If one does not exist or a PKI is wanted for development consider certstrap for a simple, initial PKI.

Keywhiz's alternatives

  • Vault - Secure, store, and tightly control access to tokens, passwords, certificates, API keys, and other secrets in modern computing
  • Docker Secrets - Manage any sensitive data which a container needs at runtime but you don’t want to store in the image or in source control
  • AWS Secrets Manager - Store, Distribute, and Rotate Credentials Securely
  • Torus CLI - A secure, shared workspace for secrets
  • Confidant - An open-source secret management service from Lyft

See all alternatives to Keywhiz