Hierarchical Key Trees
Deterministic derivation with namespace-scoped rules and cascade operations.
Open source · AGPL-3.0-or-later · Sovereign Key Management Service
KeyRack is an open-source key management coordination layer. It tracks key hierarchies, drives rotation, and delegates all cryptographic material to HSM backends. KeyRack never touches raw key material.
Put the open-source keyrack-aws-proxy in front of AWS KMS. Your
existing AWS SDK clients keep working unchanged — KeyRack records key metadata,
builds the dependency graph, and gives you a verifiable audit trail. Crypto still
runs on AWS; you gain visibility with zero code changes.
# Point any AWS SDK at the FOSS proxy — no code changes
AWS_ENDPOINT_URL=http://keyrack-aws-proxy:8080 keyrack-aws-proxy is AGPL and ships in the core repo. When you're
ready to move custody off AWS entirely, the commercial AWS KMS shim routes the same
SDK calls to KeyRack-managed keys. See commercial options →
Architecture
KeyRack coordinates between clients, HSM backends, policy engines, and storage — never touching raw key material.
Clients KeyRack Service HSM Backends AWS SDK ─────┐ OpenStack ─────┤ gRPC ─────┼────▶ ┌──────────────────┐ ────▶ PKCS#11 REST ─────┤ │ │ ────▶ KMIP WASM ─────┘ │ keyrack-service │ │ │ └────────┬─────────┘ │ ┌──────────────┼──────────────┐ ▼ ▼ ▼ External PDP Storage Audit Cedar / OPA PostgreSQL NATS / File SQLite Stdout
gRPC, REST, and WASM are open-source client surfaces. AWS SDK and OpenStack
clients connect through the FOSS keyrack-aws-proxy (AWS pass-through)
or the commercial AWS KMS / Barbican shims.
Key Features
Everything you need to run a production key management service.
Deterministic derivation with namespace-scoped rules and cascade operations.
Delegate authorization to Cedar, OPA, or any policy decision point.
All cryptographic operations happen inside your HSMs. No key material in memory.
Structured audit events via NATS, files, or stdout. Full operation traceability.
Route keys across software, PKCS#11, Vault Transit, and KMIP backends with tag-driven rules and per-version binding.
Tenants keep their own HSM. Disconnect it and derived keys go dark within a configurable cache TTL.
Deterministic key derivation trees with namespace-scoped rules. Disabling any key in the chain cascades downward.
Cross-provider re-encryption and rotation without big-bang data migration.
Route keys across BYOK and HYOK backends with tag-driven rules and per-version provider binding.
External PDP on every operation. Ed25519-signed audit events with BLAKE3 hash chain.
Algorithm abstraction and rotation framework. PQC algorithms are not shipped yet — see roadmap.
Disconnect a tenant HSM and derived keys become unusable within a configurable cache TTL.
keyrack-oss (AGPL-3.0-or-later): key lifecycle, gRPC + REST APIs, pluggable providers, Cedar authorization, NATS eventing. Proto definitions and client SDK are Apache-2.0.
keyrack-commercial (proprietary) adds enterprise features and AGPL-free embedding on top of the same core — without gating any core KMS functionality. See what's included →
Quickstart
Clone the repo, start the stack, create a key, encrypt and decrypt data.
# Clone and start the stack git clone https://github.com/KeyRack-io/keyrack.git cd keyrack docker compose up -d keyrack-service # Create a key and capture its ID KEY_ID=$(curl -s http://localhost:8080/v1/keys -X POST \ -H 'Content-Type: application/json' \ -d '{"key_spec": "AES_256", "description": "my first key"}' | jq -r '.lid') # Encrypt data (plaintext is base64-encoded) curl -s http://localhost:8080/v1/keys/$KEY_ID/actions-encrypt -X POST \ -H 'Content-Type: application/json' \ -d '{"plaintext": "aGVsbG8ga2V5cmFjaw=="}' | jq . # Decrypt data curl -s http://localhost:8080/v1/keys/$KEY_ID/actions-decrypt -X POST \ -H 'Content-Type: application/json' \ -d '{"ciphertext_blob": "...from above..."}' | jq .
Or run the full end-to-end demo: ./examples/quickstart.sh
Four FOSS Docker Compose demos plus a Kubernetes sidecar demo. AWS shim demos ship with commercial extensions.
View demos →NFR numbers from a pinned reference platform — methodology published for reproducibility. Results pending harness completion.
Benchmarks →
Every operation emits an Ed25519-signed, BLAKE3 hash-chained audit event —
tampering or deletion is detectable with keyrack audit verify.
Resources
Get started, contribute, read the docs, or report a security issue.