versioning_enabled
Enable versioning for the bucket. Keeps multiple variants of an object for accidental deletion and overwrite protection.
Overview
Versioning keeps multiple variants of an object in the same bucket. When enabled, every object modification creates a new version rather than overwriting.
Default Value
versioning_enabled = true
Benefits
- Accidental deletion protection: Recover deleted objects
- Overwrite protection: Restore previous versions
- Audit trail: Track all changes to objects
- Cross-region replication: Required for CRR
Considerations
- Storage costs: Multiple versions increase storage usage
- Cannot be disabled: Once enabled, can only be suspended
- Lifecycle rules: Use to manage old versions
Best Practices
- Enable for production data and compliance requirements
- Implement lifecycle rules to expire old versions
- Consider MFA Delete for critical buckets
- Use versioning with replication for disaster recovery
Full Module Example
module "s3_bucket" {
source = "registry.patterneddesigns.ca/essentials/s3-bucket/aws"
version = "0.1.0"
# versioning_enabled
versioning_enabled = "..."
# Other required inputs
bucket_name = "..."
}