Cloud cost
Object Storage Lifecycle Exception Cleanup: Close Prefix Holds After Projects End
Object storage lifecycle exception cleanup starts when a bucket prefix, container path, or dataset folder remains excluded from archival or deletion rules after the project that requested the hold ended. The exception may be a single lifecycle rule, label, prefix list, or compliance note, but it can keep terabytes in a hotter storage class than the data deserves.
The useful result is a retention decision that separates current legal or audit need from forgotten project caution. Cost cleanup is only safe when the data owner, retention owner, and recovery owner agree on what still needs to be kept.
Key takeaways
- Review exception reason, prefix scope, data classification, last access, and retention policy together.
- Narrow broad prefix holds before removing them entirely.
- Preserve legal and audit holds until the authority that placed them closes the reason.
- Test lifecycle policy changes on a small prefix or report mode where possible.
- Prevent recurrence by making exceptions expire unless renewed.
Exception Inventory
| Field | Why it matters | Cleanup signal |
|---|---|---|
| Prefix or object set | Shows exactly what data escapes lifecycle rules | Scope is broader than the current need |
| Exception reason | Legal hold, audit, migration, rollback, analytics | Reason has ended or moved elsewhere |
| Data class | Sensitive, customer, telemetry, build artifact | Retention can follow normal class policy |
| Last access pattern | Reads, restores, exports, downstream jobs | No active consumer needs hot storage |
Do not use last modified date alone. Immutable logs and exports can be old by design.
Example Decision Record
lifecycle_exception_review:
prefix: reports/acquisition-2024/
current_rule: excluded_from_archive
original_reason: finance reconciliation
authority: finance_data_owner
proposed_change: apply standard 90_day_hot_then_archive_policy
This record shows who can approve the change. It does not replace policy simulation or restore testing for data with recovery obligations.
Safe Cleanup Moves
First, narrow the exception to the exact prefixes that still have an approved hold. Then move eligible objects to the normal lifecycle class rather than deleting them. Remove custom restore scripts, dashboards, and documentation that described the old exception. Measure both storage reduction and policy consistency.
Do not rush exceptions tied to litigation, customer contracts, regulatory retention, month-end close, or incident investigations. Do not rush when downstream systems read objects by prefix patterns that lifecycle movement could slow or change.
Prevention
Make lifecycle exceptions require owner, reason, data class, approval authority, and expiration date. Add an automated report for exceptions expiring in the next review cycle so storage cleanup is a governance habit instead of an annual surprise.
FAQ
Should stale exceptions be deleted or archived first?
Archive first when retention still matters. Deletion should follow the approved data policy, not the cleanup team’s impatience.
Is a broad bucket exception ever acceptable?
Sometimes during migrations or legal holds, but it should have a short review window and a path back to prefix-level policy.