versioning_enabled

Type bool
Default true
Module s3-bucket

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 = "..."
}