Penv Cloud
Start free
Docs
Referencesince cloud@2026-09-10

Encryption and BYOK

The Encryption page on every plan, and how an Enterprise owner connects a customer-managed key (BYOK) to wrap the workspace data keys.

Path: Encryption (/settings/encryption), a top-level sidebar row because the wrapping key is a property of your whole workspace. Envelope model, AAD binding, the same floor on every plan, and the no-fallback rule: encryption in the cloud.

Page layout

Without your own key, the page shows three facts, the three layers that seal a value, and Bring your own key. The facts:

  • The AES-256-GCM cipher
  • The binding to each value's full address
  • The wrapping key, held by us
PlanBring your own key
EnterpriseOpens the connect form
ProLinks to the add-on
FreeLinks to a contact page

Only an owner can connect a key.

The binding fact shows the address of the newest parameter you can read, as project / environment / NAME. When you can read none, it shows that pattern itself. It never shows a name from a project you cannot open, and never a value.

With a customer-managed key: the same three facts, the wrapping key held by you, then three tabs.

TabContent
KeyStatus, provider, tail of the key reference, region, AES-256-GCM, last verified. Stand down and abandon sit under Advanced
RotationEvery re-wrap, newest first, with direction and N of M re-wrapped. Shown once a re-wrap exists
AccessWho can change the key, the step-up factor, who connected it and when

Key backends (Enterprise)

BackendWe need
AWS KMSKey reference and a key policy allowing us to wrap and unwrap
Google Cloud KMSKey reference and a workload identity federation grant
Azure Key VaultKey reference and an admin consent round trip
HashiCorp Vault TransitKey reference and a federation grant

The page shows the issuer, subject and audience your key service must trust.

Connecting starts a re-wrap: we unwrap every stored data key under the current key and re-wrap it under yours. We leave sealed value bytes untouched and open no value.

Key states

StateMeaning
pendingConnected, waiting on its first check
rewrappingRe-wrap running
activeYour key is the wrapping key
disablingStand-down running
revokedYour key refused us; nothing opens under it
failedThe connect did not complete
retiredSuperseded by a later key

You can resume, re-check, or abandon a half-finished connect. The Azure consent round trip reports consented, declined, expired, unverified, not_authorized or not_configured on the page. The account that signs in must be a directory admin (Global, Privileged Role, Cloud Application or Application Administrator) or be able to read the key in Key Vault; not_authorized means it was neither.

We do not gate standing your key down on plan, so after a lapsed plan you can always take your key back.

Required permissions

No action carries a permission slug (roles and permissions): owner is the gate, and connect, resume and finish also check that Enterprise or the add-on includes customer-managed keys.

ActionNeedsStep-upRecorded as
Read the pageorg:readNonothing
Connect a customer-managed keyOwner, EnterpriseYesorg.byok_rewrap_started
Resume a half-finished connectOwner, EnterpriseNoorg.byok_rewrap_started
Finish the Azure consent round tripOwner, EnterpriseNoorg.byok_rewrap_started
Re-check a keyOwnerYesorg.byok_rechecked
Cancel a pending grantOwnerYesorg.byok_connect_canceled
Abandon a pending keyOwnerYesorg.byok_abandoned
Stand the key downOwnerYesorg.byok_disable_requested

Our re-wrap job writes its own entries: org.byok_activated (your key takes over), org.byok_disabled (stood down), org.byok_revoked (your key refused), org.byok_rewrap_failed (did not complete). Each is in the audit action picker: browsing the record.

Next: plans and seats.