Security teams should use envelope encryption with a hardware-backed root of trust, separate keys for each tenant, user, or attribute, and serverless execution for the decryption path. That combination limits blast radius, supports regional data localisation, and avoids placing raw secrets on the application layer. The goal is to make database compromise insufficient for mass exfiltration while keeping developer workflows simple.
Why This Design Reduces Exfiltration Blast Radius
Encrypted user storage is only meaningfully safer when the encryption boundary is smaller than the database boundary. Envelope encryption with a hardware-backed root of trust means the application can store and query data without ever holding the master secret in plain form, while separate keys per tenant, user, or attribute prevent one compromised path from exposing an entire dataset. That matters because bulk exfiltration is usually a scale problem, not just a confidentiality problem.
For teams trying to keep overhead low, the key design decision is to make compromise of the storage layer insufficient for mass decryption. If the database, object store, or backup set is stolen, the attacker should still face key separation, scoped decryption rights, and a control plane that limits where plaintext can appear. In practice, that also supports regional locality requirements because the decryption boundary can be aligned to the relevant jurisdiction or workload.
A useful comparison is to treat the data store as hostile by default, and to keep encryption operations narrow enough that application teams are not forced to manage raw secrets directly. NIST Cybersecurity Framework 2.0 is a good reference point for linking this design to governance, protection and recovery outcomes. In practice, teams often discover their encryption model is too coarse only after a storage backup or replication path is exposed.
How It Works in Practice
The practical pattern is to split duties across three layers. First, the data object is encrypted with a short-lived data key. Second, that data key is wrapped by a higher-order key managed in hardware or a managed key service. Third, the application receives plaintext only inside a tightly scoped execution path, ideally a serverless or similarly constrained decrypt routine. That keeps the decryption surface narrow and avoids long-lived secrets in app memory, build artifacts, or shared hosts.
- Use per-tenant keys when tenant isolation is the main business boundary.
- Use per-user or per-attribute keys when selective disclosure is the main risk.
- Limit decrypt permissions to the smallest service path that truly needs plaintext.
- Keep audit logs for key use, not just database access, so decryption activity is visible.
This approach is operationally lighter than treating every field as a bespoke cryptographic project, because teams manage policy and scope more than raw cryptographic material. It also reduces the chance that an engineer copies secrets into config files or deployment pipelines just to make an application work. Where the model breaks down is in high-throughput systems that need frequent cross-record joins or complex search over encrypted fields, because those requirements often push teams toward broader plaintext handling or weaker indexing shortcuts.
Common Variations and Edge Cases
Tighter key separation usually increases operational complexity, so teams have to balance blast-radius reduction against lookup latency, rotation effort and application changes. The best design is not always the most granular design, especially when the business needs fast analytics or cross-user workflows.
One common variation is to encrypt by tenant only, which is often enough for SaaS isolation but less effective if an insider or compromised service can enumerate many records inside one tenant. Another is attribute-level encryption for especially sensitive fields, which gives better selective disclosure but can complicate search, filtering and recovery. Current guidance suggests choosing the narrowest key boundary that still matches how data is owned, accessed and restored, rather than defaulting to a single organisation-wide key.
Hardware-backed roots of trust also differ in practice. Some teams use cloud key management services with hardware protection, while others need stricter separation for regulated data or regional residency. NIST SP 800-53 Rev 5 Security and Privacy Controls is useful here because it ties key management, auditability and access restrictions to control intent rather than implementation brand. The edge case to watch is backup and replication, because those paths often reintroduce the very bulk-exfiltration risk the encryption design was meant to remove.
Risk and Threat Considerations
The material risk is not simple data exposure, it is scale. If a single database, backup set, or storage account can be decrypted broadly, one compromise can become a mass exfiltration event even when access controls on the application look reasonable.
Failure mechanism: attackers target the weakest decryption boundary, such as shared keys, overly broad unwrap permissions, plaintext caches, or backup and replication pipelines that bypass the intended control plane. Once they reach a reusable secret or a decryption service with broad scope, bulk retrieval becomes feasible without needing to attack each record individually.
Impact: the organisation can lose confidentiality for many users at once, face regulatory exposure from locality failures, and inherit a difficult rotation problem because a single leaked key may protect a very large population of records.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
NIST CSF 2.0, CIS Controls v8 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST CSF 2.0 | PR.AC — Access Control | Limits decrypt access paths and reduces blast radius for stored data. |
| PR.DS — Data Security | Applies to protecting data at rest with scoped encryption and key management. | |
| Recommendation — Restrict decryption rights to the smallest required services and roles. Apply data-at-rest protections that keep plaintext off the storage layer. | ||
| CIS Controls v8 | 3 — Data Protection | Directly covers encryption and protection of sensitive stored data. |
| 6 — Access Control Management | Supports scoped permissions for decryption and key-use operations. | |
| Recommendation — Encrypt sensitive records and segment keys by trust boundary. Remove broad key access and enforce least-privilege decrypt permissions. | ||
| NIST Zero Trust (SP 800-207) | ID — Identity, Credentials, and Access Management | Supports narrow authorization for decrypt services and storage paths. |
| Recommendation — Authenticate and authorize every decrypt request through a constrained control plane. | ||
Practitioner Guidance
What to prioritise: define the blast-radius boundary first, then choose whether tenant-level, user-level or attribute-level keying is actually justified by the data sensitivity and access pattern. If the operational model cannot support frequent key rotation and scoped audit, the encryption design is too broad.
What to verify: confirm that backups, replicas, exports and support workflows follow the same decrypt policy as the primary application path. Also verify that plaintext only exists inside the constrained execution path and is never left behind in logs, caches, or shared middleware.
Decision rule: if a storage compromise would let an attacker decrypt more than one logical trust boundary, narrow the key scope before adding more monitoring. Monitoring helps, but it does not fix an over-broad decrypt path.
Practitioner takeaway: The right design keeps the decryptable unit smaller than the compromise domain, because the most effective exfiltration control is usually blast-radius reduction, not heavier handling of the same secrets.
Related resources from NHI Mgmt Group
- How should security teams reduce phishing risk in MFA without creating more user friction?
- How do security teams reduce authentication risk in Python without breaking user experience?
- How should security teams reduce password risk without relying only on user training?
- How should security teams reduce insider risk without relying on user behaviour?
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on September 14, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org