Skip to content

Design question: are Glacier/Deep-Archive lifecycle and intelligent tiering the right defaults? #42

Description

@alphacrack

Two defaults in the S3 surface are cost tuning, not hardening, and can surprise users of a security library:

  • SecureBucket.defaultLifecycleRules() (src/resources/s3-bucket/secure-bucket.ts:130-150) transitions objects to IA at 30 days, Glacier at 90, Deep Archive at 365, and expires noncurrent versions at 365 days.
  • SecureBucketDefaults (the permissive injector) injects an intelligent-tiering configuration with archive tiers at 90/180 days.

Consequences a user might not expect from a "secure bucket": Glacier/Deep-Archive objects have retrieval latency (minutes to hours) and retrieval costs; noncurrent-version expiry silently deletes old versions after a year, which interacts with the versioning-as-a-security-control story (ransomware/deletion recovery).

Question to settle

  • Should lifecycle/tiering be opt-in (e.g. a costOptimization prop or a separate blueprint) rather than a default?
  • If they stay defaults, they should be documented loudly in the README with the retrieval/deletion consequences spelled out.

Filing as a design question — needs a maintainer decision before anyone codes anything.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requesteds3Relates to the S3 SecureBucket resource

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions