Customer-Managed Keys (BYOK)
Bring Your Own Key (BYOK) is Orbit’s control plane for recording which encryption key — held in your external key-management system — governs your organization’s key-management posture. You register a reference to the key (an ARN, resource name, or vault path), then activate, rotate, and revoke it through the full lifecycle below.No key material ever leaves your KMS. Orbit stores only the key
reference and echoes back a truncated fingerprint — never the reference
itself — so a lower-privileged viewer can’t see the exact ARN or vault
path. Writes to this surface are restricted to organization owners and
admins.
https://api.orbit.devotel.io/api/v1/compliance/byok. The same lifecycle is
available in the dashboard at Settings → Compliance → Customer-Managed
Keys, guarded to owner/admin roles.
Lifecycle states
A registered key moves through this state machine:
Every register, activate, rotate, and revoke writes an audit-log entry — see
Auditing.
What enforce does — and does not do
The enforce flag (set at activation, or toggled later) records your
organization’s key-management policy for compliance evidence. It is a
control-plane assertion, and it matters that you understand its exact scope:
- It does not re-encrypt tenant data. Platform-managed field encryption (the encrypt-everything envelope Orbit applies to tenant data at rest) stays authoritative regardless of your BYOK config’s state.
- You cannot point it back off casually once on: revocation clears it, and subsequent BYOK-gated operations behave as below.
enforce is on, platform field-encryption calls that consult BYOK fail
closed — they refuse to proceed with a
409 BYOK_KEY_UNAVAILABLE — if the key is revoked, unprovisioned (no wrapped
data-encryption key yet), or its wrapped key cannot be recovered. They never
fall back silently to the platform key when your policy says a customer key
must govern.
Do not interpret an active, enforced BYOK config as “tenant data is encrypted
under my key” — today, tenant data at rest is protected by platform-managed
encryption, and BYOK records your policy and gates the field-encryption seam.
Provider setup
Pick your KMS provider, copy its canonical key reference, and register it either in the dashboard (Settings → Compliance → Customer-Managed Keys) or via the API. The provider catalog (GET /compliance/byok) returns the
exact expected format for each provider.
AWS KMS
Register a key or alias ARN:arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
Google Cloud KMS
Register the CryptoKey resource name:projects/acme/locations/europe-west1/keyRings/orbit/cryptoKeys/tenant-data
Azure Key Vault
Register the key identifier URL:https://acme-kv.vault.azure.net/keys/orbit-tenant-data
HashiCorp Vault (Transit)
Register the transit key path (optionally fully qualified):https://vault.acme.internal/v1/transit/keys/orbit-tenant-data
409 BYOK_INVALID_KEY_REFERENCE.
Read the current config
GET /compliance/byok returns the registered config (or null when unset),
the provider catalog, and the resolved posture. Available to any
authenticated user; never echoes the raw reference.
Activate
Mark apending key active once you have granted Orbit’s service identity
decrypt access. Pass enforce: true to record it as your organization’s
governing key-management policy.
404 BYOK_NOT_FOUND; if the
key is not pending it returns 409 BYOK_NOT_PENDING.
Rotate
Replace the registered key reference with a new one. The new reference is validated and re-fingerprinted; anactive key stays active and the
rotation count bumps. Rotation is refused on a revoked key — register anew
instead.
rotation_count for provenance. For an enforced
key it also re-wraps the internal data-encryption key under the new
reference; if the existing wrapped key can’t be recovered the rotation is
refused with 409 BYOK_REWRAP_FAILED rather than silently dropping
enforcement.
Revoke
Withdraw the customer key. Revocation clears enforcement from your recorded policy and destroys the wrapped data-encryption key, so it can never be recovered again. It does not re-encrypt or otherwise affect stored tenant data — platform-managed encryption stays authoritative throughout.409 BYOK_ALREADY_REVOKED. To
re-enable BYOK after revocation, register a key afresh with PUT.
Auditing
Every register, activate, rotate, and revoke writes an audit-log entry recording the provider, fingerprint, enforcement state, and (for revokes) your justification. Read it in the dashboard at Settings → Audit Log. For SOC 2 / ISO 27001 evidence, point auditors at the audit trail and cite the resolved BYOK posture in your Compliance Evidence Binder.Related
- Posture Overview — the compliance toggle map, including where BYOK shows up.
- Error Codes reference — the
BYOK_KEY_UNAVAILABLErow and every BYOK-specific conflict code. - HIPAA posture — how PHI encryption is handled alongside your key-management policy.