Audit Log Service · View 19 of 40 · 4 · Data
Question 7 answered
- 486 tenants share containers with tenant as the first partition key, a per-tenant encryption scope and a per-tenant key in the HSM. 14 tenants with residency or contractual requirements get a dedicated storage account.
- Physical separation for all 500 would multiply locked-policy, key and lifecycle configuration by 500 and shatter the long tail into objects too small to be economic — the smallest tenants would produce segments of a few hundred kilobytes an hour.
- The shared arrangement makes a misrouted read return bytes the reader holds no key for, which is a structural answer rather than a filtering one.
What is never shared
- The hash chain, the proof path, the ingest quota and the index partition are per tenant on both sides of the split. A proof reveals no other tenant's existence, and one tenant provably cannot exhaust shared ingest capacity.
- Residency and retention can diverge per tenant in the dedicated group without changing anything for the other 486.
Residual risk
- One misconfigured locked policy on a shared container affects 486 tenants. Mitigated by policy-as-code, a CI scan over the IaC and a daily assertion that every container's policy is locked and its retention has not decreased — accepted, not eliminated.
- Small-object cost in the long tail is real and is handled by chain-preserving compaction rather than by longer seal windows, which would weaken the 60 s guarantee.